aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog24
-rw-r--r--bfd/ChangeLog4
-rwxr-xr-xbfd/configure20
-rw-r--r--bfd/elf32-hppa.c88
-rw-r--r--bfd/elf64-s390.c42
-rw-r--r--bfd/elflink.c32
-rw-r--r--bfd/elfnn-aarch64.c2
-rw-r--r--bfd/elfnn-loongarch.c665
-rw-r--r--bfd/elfxx-riscv.c33
-rw-r--r--bfd/linker.c2
-rw-r--r--bfd/po/bfd.pot2966
-rw-r--r--bfd/version.h2
-rw-r--r--bfd/version.m42
-rw-r--r--binutils/BRANCHES1
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/NEWS9
-rw-r--r--binutils/README-how-to-make-a-release52
-rwxr-xr-xbinutils/configure20
-rw-r--r--binutils/objcopy.c282
-rw-r--r--binutils/po/binutils.pot3966
-rw-r--r--binutils/testsuite/binutils-all/mips/mips.exp2
-rw-r--r--binutils/testsuite/binutils-all/mips/mips32-mt-alias.d634
-rw-r--r--binutils/testsuite/binutils-all/mips/mips32-mt-noalias.d634
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp12
-rw-r--r--binutils/testsuite/binutils-all/strip-13.d3
-rw-r--r--binutils/testsuite/binutils-all/strip-16.d12
-rw-r--r--binutils/testsuite/lib/binutils-common.exp3
-rwxr-xr-xconfig.guess11
-rwxr-xr-xconfig.sub29
-rwxr-xr-xconfigure2
-rw-r--r--configure.ac2
-rw-r--r--cpu/ChangeLog6
-rw-r--r--elfcpp/ChangeLog6
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/NEWS18
-rw-r--r--gas/app.c135
-rw-r--r--gas/as.c8
-rw-r--r--gas/as.h4
-rw-r--r--gas/config/bfin-lex.l1
-rw-r--r--gas/config/bfin-parse.y10
-rw-r--r--gas/config/tc-aarch64-ginsn.c963
-rw-r--r--gas/config/tc-aarch64.c60
-rw-r--r--gas/config/tc-aarch64.h33
-rw-r--r--gas/config/tc-arm.c17
-rw-r--r--gas/config/tc-bfin.c2
-rw-r--r--gas/config/tc-i386-intel.c4
-rw-r--r--gas/config/tc-i386.c592
-rw-r--r--gas/config/tc-i386.h20
-rw-r--r--gas/config/tc-mips.c36
-rw-r--r--gas/config/tc-riscv.c29
-rwxr-xr-xgas/configure20
-rw-r--r--gas/doc/as.texi52
-rw-r--r--gas/doc/c-aarch64.texi4
-rw-r--r--gas/doc/c-mips.texi10
-rw-r--r--gas/doc/c-riscv.texi6
-rw-r--r--gas/gen-sframe.c246
-rw-r--r--gas/gen-sframe.h2
-rw-r--r--gas/input-file.c15
-rw-r--r--gas/input-scrub.c5
-rw-r--r--gas/po/gas.pot4525
-rw-r--r--gas/read.c343
-rw-r--r--gas/read.h68
-rw-r--r--gas/sb.c2
-rw-r--r--gas/scfi.c9
-rw-r--r--gas/symbols.c8
-rw-r--r--gas/testsuite/gas/aarch64/bfloat16-1.d1
-rw-r--r--gas/testsuite/gas/aarch64/bfloat16-2-invalid.d1
-rw-r--r--gas/testsuite/gas/aarch64/sme-4-illegal.l2
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-2-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-2-bad.l62
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-2-bad.s48
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-2.d87
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-2.s87
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-3-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-3-bad.l30
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-3-bad.s20
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-3.d26
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-3.s19
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-4-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-4-bad.l76
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-4-bad.s48
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-4.d53
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-4.s48
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-5-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-5-bad.l103
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-5-bad.s54
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-5.d54
-rw-r--r--gas/testsuite/gas/aarch64/sme2p1-5.s54
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-5-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-5-invalid.l27
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-5-invalid.s8
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-5.d18
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-5.s8
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-6-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-6-invalid.l78
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-6-invalid.s36
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-6.d58
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-6.s53
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-7-invalid.d3
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-7-invalid.l118
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-7-invalid.s76
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-7.d64
-rw-r--r--gas/testsuite/gas/aarch64/sve2p1-7.s63
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d3
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l17
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d17
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s13
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg.d5
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg.s5
-rw-r--r--gas/testsuite/gas/all/base64-bad.d5
-rw-r--r--gas/testsuite/gas/all/base64-bad.l11
-rw-r--r--gas/testsuite/gas/all/base64-bad.s10
-rw-r--r--gas/testsuite/gas/all/base64.d16
-rw-r--r--gas/testsuite/gas/all/base64.s8
-rw-r--r--gas/testsuite/gas/all/gas.exp5
-rw-r--r--gas/testsuite/gas/all/multibyte3.l10
-rw-r--r--gas/testsuite/gas/all/multibyte3.s11
-rw-r--r--gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s2
-rw-r--r--gas/testsuite/gas/arm/group-reloc-ldrs.s2
-rw-r--r--gas/testsuite/gas/arm/mve-vcvt-3.d136
-rw-r--r--gas/testsuite/gas/bfin/allinsn16.s8
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d2
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d2
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d2
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d6
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d6
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d6
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d6
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d4
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d9
-rw-r--r--gas/testsuite/gas/cfi-sframe/common-empty-1.d4
-rw-r--r--gas/testsuite/gas/cfi-sframe/common-empty-2.d4
-rw-r--r--gas/testsuite/gas/cfi-sframe/common-empty-3.d3
-rw-r--r--gas/testsuite/gas/i386/bundle-lock.s2
-rw-r--r--gas/testsuite/gas/i386/bundle.s14
-rw-r--r--gas/testsuite/gas/i386/curly.d28
-rw-r--r--gas/testsuite/gas/i386/curly.s26
-rw-r--r--gas/testsuite/gas/i386/i386.exp1
-rw-r--r--gas/testsuite/gas/i386/noreg-intel64.l14
-rw-r--r--gas/testsuite/gas/i386/noreg64-data16.d7
-rw-r--r--gas/testsuite/gas/i386/noreg64-data16.e16
-rw-r--r--gas/testsuite/gas/i386/noreg64-evex-data16.d81
-rw-r--r--gas/testsuite/gas/i386/noreg64-evex-data16.e19
-rw-r--r--gas/testsuite/gas/i386/noreg64-evex.d7
-rw-r--r--gas/testsuite/gas/i386/noreg64-evex.e76
-rw-r--r--gas/testsuite/gas/i386/noreg64-evex.s139
-rw-r--r--gas/testsuite/gas/i386/noreg64-rex64.d7
-rw-r--r--gas/testsuite/gas/i386/noreg64.d7
-rw-r--r--gas/testsuite/gas/i386/noreg64.l14
-rw-r--r--gas/testsuite/gas/i386/noreg64.s7
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.d6
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.s5
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d165
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-cfcmov.d165
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-cfcmov.s58
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-inval.l11
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-inval.s3
-rw-r--r--gas/testsuite/gas/i386/x86-64-bundle.s14
-rw-r--r--gas/testsuite/gas/i386/x86-64-gottpoff.d4
-rw-r--r--gas/testsuite/gas/i386/x86-64-gottpoff.s10
-rw-r--r--gas/testsuite/gas/i386/x86-64-pseudos-apx.d177
-rw-r--r--gas/testsuite/gas/i386/x86-64-pseudos-apx.s45
-rw-r--r--gas/testsuite/gas/i386/x86-64.exp4
-rw-r--r--gas/testsuite/gas/ia64/pcrel.s12
-rw-r--r--gas/testsuite/gas/mips/allegrex@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/allegrex@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/allegrex@mul.d (renamed from gas/testsuite/gas/mips/mul-ilocks.d)23
-rw-r--r--gas/testsuite/gas/mips/allegrex@trap-opt.d6
-rw-r--r--gas/testsuite/gas/mips/break-opt.d115
-rw-r--r--gas/testsuite/gas/mips/brtr-opt.l7
-rw-r--r--gas/testsuite/gas/mips/brtr-opt.s46
-rw-r--r--gas/testsuite/gas/mips/div-ilocks.d110
-rw-r--r--gas/testsuite/gas/mips/div-trap.d80
-rw-r--r--gas/testsuite/gas/mips/div.d159
-rw-r--r--gas/testsuite/gas/mips/div.s10
-rw-r--r--gas/testsuite/gas/mips/div64-trap.d28
-rw-r--r--gas/testsuite/gas/mips/div64.d30
-rw-r--r--gas/testsuite/gas/mips/div64.s10
-rw-r--r--gas/testsuite/gas/mips/micromips@break-opt.d134
-rw-r--r--gas/testsuite/gas/mips/micromips@div-trap.d83
-rw-r--r--gas/testsuite/gas/mips/micromips@div.d102
-rw-r--r--gas/testsuite/gas/mips/micromips@div64-trap.d29
-rw-r--r--gas/testsuite/gas/mips/micromips@div64.d34
-rw-r--r--gas/testsuite/gas/mips/micromips@mul-trap.d52
-rw-r--r--gas/testsuite/gas/mips/micromips@mul.d65
-rw-r--r--gas/testsuite/gas/mips/micromips@mul64-trap.d26
-rw-r--r--gas/testsuite/gas/mips/micromips@mul64.d33
-rw-r--r--gas/testsuite/gas/mips/micromips@trap-opt.d94
-rw-r--r--gas/testsuite/gas/mips/mips.exp34
-rw-r--r--gas/testsuite/gas/mips/mips16-32@mips16-insn-e.l4
-rw-r--r--gas/testsuite/gas/mips/mips16-64@mips16-insn-e.l4
-rw-r--r--gas/testsuite/gas/mips/mips16-insn-e.l4
-rw-r--r--gas/testsuite/gas/mips/mips16e-32@mips16-insn-e.l4
-rw-r--r--gas/testsuite/gas/mips/mips16e2-32@mips16-insn-e.l4
-rw-r--r--gas/testsuite/gas/mips/mips16e2-interaptiv-mr2@mips16-insn-e.l4
-rw-r--r--gas/testsuite/gas/mips/mips1@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips1@div.d102
-rw-r--r--gas/testsuite/gas/mips/mips1@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips1@mul.d71
-rw-r--r--gas/testsuite/gas/mips/mips1@trap-opt.d107
-rw-r--r--gas/testsuite/gas/mips/mips2@div-trap.d98
-rw-r--r--gas/testsuite/gas/mips/mips2@div.d5
-rw-r--r--gas/testsuite/gas/mips/mips2@mul-trap.d74
-rw-r--r--gas/testsuite/gas/mips/mips2@mul.d5
-rw-r--r--gas/testsuite/gas/mips/mips32-mt.d66
-rw-r--r--gas/testsuite/gas/mips/mips3@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips3@div.d5
-rw-r--r--gas/testsuite/gas/mips/mips3@div64-trap.d31
-rw-r--r--gas/testsuite/gas/mips/mips3@div64.d34
-rw-r--r--gas/testsuite/gas/mips/mips3@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips3@mul.d5
-rw-r--r--gas/testsuite/gas/mips/mips3@mul64-trap.d38
-rw-r--r--gas/testsuite/gas/mips/mips3@mul64.d33
-rw-r--r--gas/testsuite/gas/mips/mips4@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips4@div.d5
-rw-r--r--gas/testsuite/gas/mips/mips4@div64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips4@div64.d5
-rw-r--r--gas/testsuite/gas/mips/mips4@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips4@mul.d5
-rw-r--r--gas/testsuite/gas/mips/mips4@mul64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips4@mul64.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@div.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@div64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@div64.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@mul.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@mul64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/mips5@mul64.d5
-rw-r--r--gas/testsuite/gas/mips/mul-trap.d52
-rw-r--r--gas/testsuite/gas/mips/mul.d129
-rw-r--r--gas/testsuite/gas/mips/mul.s10
-rw-r--r--gas/testsuite/gas/mips/mul64-trap.d26
-rw-r--r--gas/testsuite/gas/mips/mul64.d29
-rw-r--r--gas/testsuite/gas/mips/mul64.s10
-rw-r--r--gas/testsuite/gas/mips/octeon@mul64-trap.d25
-rw-r--r--gas/testsuite/gas/mips/octeon@mul64.d29
-rw-r--r--gas/testsuite/gas/mips/r10000@c0.d5
-rw-r--r--gas/testsuite/gas/mips/r10000@c1.d5
-rw-r--r--gas/testsuite/gas/mips/r10000@cp0c.d5
-rw-r--r--gas/testsuite/gas/mips/r10000@mul-trap.d54
-rw-r--r--gas/testsuite/gas/mips/r10000@mul.d5
-rw-r--r--gas/testsuite/gas/mips/r10000@mul64-trap.d26
-rw-r--r--gas/testsuite/gas/mips/r10000@mul64.d30
-rw-r--r--gas/testsuite/gas/mips/r10000@save-sub.d5
-rw-r--r--gas/testsuite/gas/mips/r3000@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r3000@div.d5
-rw-r--r--gas/testsuite/gas/mips/r3000@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r3000@mul.d5
-rw-r--r--gas/testsuite/gas/mips/r3000@trap-opt.d6
-rw-r--r--gas/testsuite/gas/mips/r3900@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r3900@div.d5
-rw-r--r--gas/testsuite/gas/mips/r3900@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r3900@mul.d5
-rw-r--r--gas/testsuite/gas/mips/r3900@trap-opt.d6
-rw-r--r--gas/testsuite/gas/mips/r4000@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r4000@div.d5
-rw-r--r--gas/testsuite/gas/mips/r4000@div64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r4000@div64.d5
-rw-r--r--gas/testsuite/gas/mips/r4000@mul-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r4000@mul.d5
-rw-r--r--gas/testsuite/gas/mips/r4000@mul64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/r4000@mul64.d5
-rw-r--r--gas/testsuite/gas/mips/r5900@mul-trap.d52
-rw-r--r--gas/testsuite/gas/mips/r5900@mul.d60
-rw-r--r--gas/testsuite/gas/mips/trap-opt.d99
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-1.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-2.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-micromips-1.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-micromips-2.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-mips16-1.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-mips16-2.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-r6-1.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-r6-2.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-r6-3.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-branch-r6-4.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-jump-1.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-jump-2.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-jump-micromips-1.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-jump-micromips-2.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-jump-mips16-1.s4
-rw-r--r--gas/testsuite/gas/mips/unaligned-jump-mips16-2.s4
-rw-r--r--gas/testsuite/gas/mips/vr5400@div-trap.d5
-rw-r--r--gas/testsuite/gas/mips/vr5400@div.d5
-rw-r--r--gas/testsuite/gas/mips/vr5400@div64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/vr5400@div64.d5
-rw-r--r--gas/testsuite/gas/mips/vr5400@mul-trap.d70
-rw-r--r--gas/testsuite/gas/mips/vr5400@mul.d69
-rw-r--r--gas/testsuite/gas/mips/vr5400@mul64-trap.d5
-rw-r--r--gas/testsuite/gas/mips/vr5400@mul64.d33
-rw-r--r--gas/testsuite/gas/riscv/fixup-local-norelax.d45
-rw-r--r--gas/testsuite/gas/riscv/fixup-local-relax.d76
-rw-r--r--gas/testsuite/gas/riscv/fixup-local.s28
-rw-r--r--gas/testsuite/gas/riscv/imply-zicsr-zifencei-i2p0-misa-spec-2p2.d (renamed from gas/testsuite/gas/riscv/march-imply-i2p0-02.d)2
-rw-r--r--gas/testsuite/gas/riscv/imply-zicsr-zifencei-i2p1-misa-spec-20191213.d (renamed from gas/testsuite/gas/riscv/march-imply-i2p1-01.l)4
-rw-r--r--gas/testsuite/gas/riscv/imply-zicsr-zifencei.s (renamed from gas/testsuite/gas/riscv/march-imply-i.s)0
-rw-r--r--gas/testsuite/gas/riscv/imply.d94
-rw-r--r--gas/testsuite/gas/riscv/imply.s104
-rw-r--r--gas/testsuite/gas/riscv/march-help.l20
-rw-r--r--gas/testsuite/gas/riscv/march-imply-a.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-b.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-d.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-f.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-g.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-h.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-i2p0-01.d7
-rw-r--r--gas/testsuite/gas/riscv/march-imply-i2p1-01.d3
-rw-r--r--gas/testsuite/gas/riscv/march-imply-i2p1-02.d7
-rw-r--r--gas/testsuite/gas/riscv/march-imply-q.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-smcsrind.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-smstateen.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-unsupported.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-v.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-zcd.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-zcf.d6
-rw-r--r--gas/testsuite/gas/scfi/README23
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.l40
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.s19
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.l30
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.s16
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.l101
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.s53
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.l48
-rw-r--r--gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.s33
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-aarch64.exp74
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.d57
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.s50
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.d57
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.s50
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cb-1.d20
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cb-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cb-1.s14
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.d31
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.s46
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.d40
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.s42
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.d32
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.s34
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.d41
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.s41
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.d20
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.s13
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-diag-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-diag-1.s6
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-diag-2.l3
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-diag-2.s25
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-diag-3.l3
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-diag-3.s8
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.d59
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.s52
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.d33
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.s26
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.d39
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.s30
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-strp-1.d39
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-strp-1.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s37
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-strp-2.d35
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-strp-2.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-strp-2.s30
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.l4
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.s31
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.l2
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.s8
-rw-r--r--gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d11
-rw-r--r--gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d11
-rw-r--r--gas/testsuite/gas/sparc/asi-arch-error.l2
-rw-r--r--gas/testsuite/gas/tilepro/t_constants.s2
-rw-r--r--gdb/NEWS5
-rw-r--r--gdb/ada-exp.y4
-rw-r--r--gdb/ada-lang.c4
-rw-r--r--gdb/ada-tasks.c2
-rw-r--r--gdb/annotate.c2
-rw-r--r--gdb/arc-tdep.c2
-rw-r--r--gdb/arch-utils.c2
-rw-r--r--gdb/auto-load.c4
-rw-r--r--gdb/breakpoint.c58
-rw-r--r--gdb/build-id.c174
-rw-r--r--gdb/c-exp.y3
-rw-r--r--gdb/cli/cli-cmds.c19
-rw-r--r--gdb/command.h2
-rw-r--r--gdb/compile/compile.c4
-rw-r--r--gdb/d-exp.y3
-rw-r--r--gdb/doc/gdb.texinfo11
-rw-r--r--gdb/dwarf2/loc.c2
-rw-r--r--gdb/event-top.c2
-rw-r--r--gdb/frame.c2
-rw-r--r--gdb/gdb-gdb.py.in2
-rw-r--r--gdb/go-exp.y4
-rw-r--r--gdb/guile/guile-internal.h28
-rw-r--r--gdb/guile/scm-objfile.c2
-rw-r--r--gdb/inf-child.c15
-rw-r--r--gdb/inf-child.h2
-rw-r--r--gdb/infcall.c2
-rw-r--r--gdb/infcmd.c13
-rw-r--r--gdb/infrun.c2
-rw-r--r--gdb/jit.c4
-rw-r--r--gdb/linespec.c68
-rw-r--r--gdb/macroscope.c6
-rw-r--r--gdb/mi/mi-cmd-file.c4
-rw-r--r--gdb/nat/aarch64-mte-linux-ptrace.c4
-rw-r--r--gdb/nat/fork-inferior.h7
-rw-r--r--gdb/nat/linux-namespaces.c2
-rw-r--r--gdb/objfiles.c135
-rw-r--r--gdb/objfiles.h59
-rw-r--r--gdb/p-exp.y4
-rw-r--r--gdb/parse.c7
-rw-r--r--gdb/printcmd.c4
-rw-r--r--gdb/progspace.c4
-rw-r--r--gdb/python/py-objfile.c2
-rw-r--r--gdb/python/python-internal.h5
-rw-r--r--gdb/python/python.c2
-rw-r--r--gdb/record-full.c1
-rw-r--r--gdb/remote-sim.c3
-rw-r--r--gdb/remote.c93
-rw-r--r--gdb/solib-frv.c2
-rw-r--r--gdb/solib-svr4.c6
-rw-r--r--gdb/solib.c26
-rw-r--r--gdb/solib.h4
-rw-r--r--gdb/source.c20
-rw-r--r--gdb/source.h7
-rw-r--r--gdb/symfile.c37
-rw-r--r--gdb/symtab.c14
-rw-r--r--gdb/target.c41
-rw-r--r--gdb/target.h20
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_field.exp50
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_field/foo.adb47
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c9
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind.c9
-rw-r--r--gdb/testsuite/gdb.base/build-id-seqno.c22
-rw-r--r--gdb/testsuite/gdb.base/build-id-seqno.exp133
-rw-r--r--gdb/testsuite/gdb.base/complex-parts.exp81
-rw-r--r--gdb/testsuite/gdb.base/sysroot-debug-lookup.exp13
-rw-r--r--gdb/testsuite/gdb.dap/rust-slices.exp6
-rw-r--r--gdb/testsuite/gdb.gdb/python-helper.exp15
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp-lib.c22
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp.c66
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp.exp126
-rw-r--r--gdb/testsuite/gdb.reverse/step-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.server/build-id-seqno.c22
-rw-r--r--gdb/testsuite/gdb.server/build-id-seqno.exp200
-rw-r--r--gdb/tid-parse.c2
-rw-r--r--gdb/tid-parse.h2
-rw-r--r--gdb/top.h2
-rw-r--r--gdb/tui/tui-disasm.c6
-rw-r--r--gdb/tui/tui-hooks.c3
-rw-r--r--gdb/tui/tui-source.c5
-rw-r--r--gdb/tui/tui-winsource.c10
-rw-r--r--gdb/utils.c2
-rw-r--r--gdb/xml-support.c4
-rw-r--r--gdb/xml-support.h5
-rw-r--r--gdbserver/gdbreplay.cc2
-rw-r--r--gdbserver/hostio.cc38
-rw-r--r--gdbserver/server.cc2
-rw-r--r--gdbserver/utils.cc2
-rw-r--r--gdbsupport/common-exceptions.cc2
-rw-r--r--gdbsupport/common-exceptions.h27
-rw-r--r--gdbsupport/errors.h28
-rw-r--r--gold/ChangeLog4
-rw-r--r--gold/po/gold.pot96
-rw-r--r--gold/testsuite/x86_64_ie_to_le.s1
-rwxr-xr-xgold/testsuite/x86_64_ie_to_le.sh1
-rw-r--r--gprof/ChangeLog4
-rwxr-xr-xgprof/configure20
-rw-r--r--gprof/po/gprof.pot2
-rw-r--r--gprofng/common/core_pcbe.c8
-rw-r--r--gprofng/common/cpuid.c27
-rw-r--r--gprofng/common/gp-defs.h5
-rw-r--r--gprofng/common/hwc_cpus.h8
-rw-r--r--gprofng/common/hwcdrv.c32
-rw-r--r--gprofng/common/hwcentry.h1
-rw-r--r--gprofng/common/hwcfuncs.c6
-rw-r--r--gprofng/common/hwcfuncs.h1
-rw-r--r--gprofng/common/hwctable.c12
-rwxr-xr-xgprofng/configure24
-rw-r--r--gprofng/configure.ac4
-rw-r--r--gprofng/doc/version.texi8
-rwxr-xr-xgprofng/libcollector/configure20
-rw-r--r--gprofng/libcollector/hwprofile.h10
-rw-r--r--gprofng/libcollector/libcol_util.c9
-rw-r--r--gprofng/libcollector/libcol_util.h2
-rw-r--r--gprofng/libcollector/unwind.c11
-rw-r--r--gprofng/src/DbeSession.cc2
-rw-r--r--gprofng/src/Disasm.cc2
-rw-r--r--gprofng/src/Experiment.cc2
-rw-r--r--gprofng/src/checks.cc4
-rw-r--r--gprofng/src/collctrl.cc8
-rw-r--r--gprofng/src/dbe_types.h3
-rw-r--r--gprofng/src/hwc_intel_icelake.h1171
-rw-r--r--include/ChangeLog4
-rw-r--r--include/bfdlink.h3
-rw-r--r--include/opcode/aarch64.h66
-rw-r--r--include/opcode/mips.h474
-rw-r--r--include/sframe.h22
-rw-r--r--ld/ChangeLog4
-rw-r--r--ld/NEWS2
-rwxr-xr-xld/configure20
-rw-r--r--ld/emulparams/elf64loongarch.sh1
-rw-r--r--ld/pdb.c2
-rw-r--r--ld/plugin.c11
-rw-r--r--ld/po/ld.pot4652
-rw-r--r--ld/testsuite/config/default.exp4
-rw-r--r--ld/testsuite/ld-elf/dwarf.exp5
-rw-r--r--ld/testsuite/ld-elf/shared.exp2
-rw-r--r--ld/testsuite/ld-i386/i386.exp4
-rw-r--r--ld/testsuite/ld-loongarch-elf/abssym.s3
-rw-r--r--ld/testsuite/ld-loongarch-elf/abssym_pie.d6
-rw-r--r--ld/testsuite/ld-loongarch-elf/abssym_shared.d6
-rw-r--r--ld/testsuite/ld-loongarch-elf/ifunc-reloc.d19
-rw-r--r--ld/testsuite/ld-loongarch-elf/ifunc-reloc.s55
-rw-r--r--ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp15
-rw-r--r--ld/testsuite/ld-loongarch-elf/protected-func.d6
-rw-r--r--ld/testsuite/ld-loongarch-elf/protected-func.s17
-rw-r--r--ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.d4
-rw-r--r--ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.s3
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-addend.d11
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-addend.s17
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-align.d22
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-align.s106
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-data-pie.d18
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-data-shared.d18
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-data.s71
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-discard-pie.d8
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-discard-shared.d11
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-discard.ld13
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-discard.s61
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-got-pie.d15
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-got-shared.d15
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-got.s27
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-relocs.ld24
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-text-pie.d14
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-text-shared.d14
-rw-r--r--ld/testsuite/ld-loongarch-elf/relr-text.s10
-rw-r--r--ld/testsuite/ld-mips-elf/unaligned-data.s2
-rw-r--r--ld/testsuite/ld-mips-elf/unaligned-insn.s2
-rw-r--r--ld/testsuite/ld-mips-elf/unaligned-text.s2
-rw-r--r--ld/testsuite/ld-pe/pdb-strings.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-syms1-globals.d73
-rw-r--r--ld/testsuite/ld-pe/pdb-syms1-records.d4
-rw-r--r--ld/testsuite/ld-pe/pdb-syms1-symbols1.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-syms1-symbols2.d26
-rw-r--r--ld/testsuite/ld-pe/pdb-syms1a.s1
-rw-r--r--ld/testsuite/ld-pe/pdb-syms2-symbols1.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types1-hashlist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types1-skiplist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types1-typelist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types2-hashlist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types2-skiplist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types2-typelist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types3-hashlist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types3-skiplist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb-types3-typelist.d2
-rw-r--r--ld/testsuite/ld-pe/pdb1-publics.d2
-rw-r--r--ld/testsuite/ld-pe/pdb1-sym-record.d2
-rw-r--r--ld/testsuite/ld-pe/pdb2-section-contrib.d2
-rw-r--r--ld/testsuite/ld-pe/pdb3-c13-info1.d2
-rw-r--r--ld/testsuite/ld-pe/pdb3-c13-info2.d2
-rw-r--r--ld/testsuite/ld-pe/pdb3-source-info.d2
-rw-r--r--ld/testsuite/ld-plugin/libdep.exp2
-rw-r--r--ld/testsuite/ld-plugin/lto.exp18
-rw-r--r--ld/testsuite/ld-plugin/pr31956a.c3
-rw-r--r--ld/testsuite/ld-plugin/pr31956b.c23
-rw-r--r--ld/testsuite/ld-s390/s390.exp5
-rw-r--r--ld/testsuite/ld-s390/weakundef-1.dd6
-rw-r--r--ld/testsuite/ld-s390/weakundef-1.s1
-rw-r--r--ld/testsuite/ld-s390/weakundef-2.dd17
-rw-r--r--ld/testsuite/ld-s390/weakundef-2.s17
-rw-r--r--ld/testsuite/ld-sframe/discard.s1
-rw-r--r--ld/testsuite/ld-x86-64/sframe-plt-1.d9
-rw-r--r--ld/testsuite/ld-x86-64/sframe-simple-1.d17
-rw-r--r--ld/testsuite/ld-x86-64/tlsbindesc.dd12
-rw-r--r--ld/testsuite/ld-x86-64/tlsbindesc.rd36
-rw-r--r--ld/testsuite/ld-x86-64/tlsbindesc.s4
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp11
-rw-r--r--ld/testsuite/lib/ld-lib.exp9
-rw-r--r--libctf/ChangeLog4
-rw-r--r--libiberty/ChangeLog45
-rw-r--r--libiberty/dyn-string.c2
-rw-r--r--libiberty/hashtab.c23
-rw-r--r--libiberty/pex-unix.c2
-rw-r--r--libiberty/regex.c2
-rw-r--r--libiberty/vprintf-support.c65
-rw-r--r--libsframe/Makefile.in7
-rwxr-xr-xlibsframe/configure208
-rw-r--r--libsframe/configure.ac3
-rw-r--r--libsframe/doc/sframe-spec.texi222
-rw-r--r--libsframe/sframe-dump.c18
-rw-r--r--opcodes/ChangeLog4
-rw-r--r--opcodes/aarch64-asm-2.c108
-rw-r--r--opcodes/aarch64-asm.c47
-rw-r--r--opcodes/aarch64-asm.h1
-rw-r--r--opcodes/aarch64-dis-2.c1042
-rw-r--r--opcodes/aarch64-dis.c55
-rw-r--r--opcodes/aarch64-dis.h1
-rw-r--r--opcodes/aarch64-gen.c19
-rw-r--r--opcodes/aarch64-opc-2.c9
-rw-r--r--opcodes/aarch64-opc.c105
-rw-r--r--opcodes/aarch64-opc.h6
-rw-r--r--opcodes/aarch64-sys-regs.def5
-rw-r--r--opcodes/aarch64-tbl.h310
-rwxr-xr-xopcodes/configure20
-rw-r--r--opcodes/i386-dis-evex-prefix.h4
-rw-r--r--opcodes/i386-dis-evex.h4
-rw-r--r--opcodes/i386-dis.c45
-rw-r--r--opcodes/i386-mnem.h3966
-rw-r--r--opcodes/i386-opc.h2
-rw-r--r--opcodes/i386-opc.tbl5
-rw-r--r--opcodes/i386-tbl.h1494
-rw-r--r--opcodes/micromips-opc.c70
-rw-r--r--opcodes/mips-opc.c405
-rw-r--r--opcodes/po/opcodes.pot368
-rw-r--r--opcodes/riscv-opc.c204
623 files changed, 29648 insertions, 13871 deletions
diff --git a/ChangeLog b/ChangeLog
index 5faf5c5..0075a25 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
+2024-07-15 Nick Clifton <nickc@redhat.com>
+
+ Import the following upstream commits to the config files:
+ commit 948ae97ca5703224bd3eada06b7a69f40dd15a02
+ Update copyright years
+ commit 471d8141d3a9fd845fe2ddd20b10569ab6437bc9
+ config.sub: recognize nanoMIPS CPUs
+ commit ee6ea2f13ba4dc0836665d3c50099135bba36287
+ config.guess: recognize ironclad OS
+ commit 5e2f254bcb505da063ba541b25df2c3f567b5517
+ config.sub: recognize ironclad OS
+ commit 0e4a5b3a1ec551bf3cf4d432f4506ef02d1674c5
+ config.sub: recognize *-*-uefi
+ commit d21518c6c819d285c6d9ec0c39c55615d0dde19c
+ Recognize the VideoCore 4 processor
+ commit a9a369e97a39a49e675712aee4035ed662d24d71
+ config.guess: detect LLVM-libc via features.h
+ commit 5b83c2ff5da15451cb566e1837253d0f60543dd7
+ config.sub: add LLVM-libc support
+
2024-03-20 Simon Marchi <simon.marchi@efficios.com>
* .pre-commit-config.yaml: Bump black hook to 24.3.0
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 97d0c58..8360590 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-01-15 Nick Clifton <nickc@redhat.com>
* 2.42 branch point.
diff --git a/bfd/configure b/bfd/configure
index 6458974..b50cb75 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for bfd 2.42.50.
+# Generated by GNU Autoconf 2.69 for bfd 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bfd'
PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='bfd 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='bfd 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1411,7 +1411,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures bfd 2.42.50 to adapt to many kinds of systems.
+\`configure' configures bfd 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1482,7 +1482,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of bfd 2.42.50:";;
+ short | recursive ) echo "Configuration of bfd 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1627,7 +1627,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-bfd configure 2.42.50
+bfd configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2221,7 +2221,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by bfd $as_me 2.42.50, which was
+It was created by bfd $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3204,7 +3204,7 @@ fi
# Define the identity of the package.
PACKAGE='bfd'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -18093,7 +18093,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by bfd $as_me 2.42.50, which was
+This file was extended by bfd $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18159,7 +18159,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-bfd config.status 2.42.50
+bfd config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index 3a959a0..4d00432 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -3432,48 +3432,62 @@ final_link_relocate (asection *input_section,
break;
}
- r_format = bfd_hppa_insn2fmt (input_bfd, insn);
- switch (r_format)
+ switch (r_type)
{
- case 10:
- case -10:
- if (val & 7)
- {
- _bfd_error_handler
- /* xgettext:c-format */
- (_("%pB(%pA+%#" PRIx64 "): displacement %#x for insn %#x "
- "is not a multiple of 8 (gp %#x)"),
- input_bfd,
- input_section,
- (uint64_t) offset,
- val,
- insn,
- (unsigned int) elf_gp (input_section->output_section->owner));
- bfd_set_error (bfd_error_bad_value);
- return bfd_reloc_notsupported;
- }
+ case R_PARISC_DIR32:
+ case R_PARISC_SECREL32:
+ case R_PARISC_SEGBASE:
+ case R_PARISC_SEGREL32:
+ case R_PARISC_PLABEL32:
+ /* These relocations apply to data. */
+ r_format = howto->bitsize;
break;
- case -11:
- case -16:
- if (val & 3)
+ default:
+ r_format = bfd_hppa_insn2fmt (input_bfd, insn);
+ switch (r_format)
{
- _bfd_error_handler
- /* xgettext:c-format */
- (_("%pB(%pA+%#" PRIx64 "): displacement %#x for insn %#x "
- "is not a multiple of 4 (gp %#x)"),
- input_bfd,
- input_section,
- (uint64_t) offset,
- val,
- insn,
- (unsigned int) elf_gp (input_section->output_section->owner));
- bfd_set_error (bfd_error_bad_value);
- return bfd_reloc_notsupported;
- }
- break;
+ case 10:
+ case -10:
+ if (val & 7)
+ {
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%pB(%pA+%#" PRIx64 "): displacement %#x for insn %#x "
+ "is not a multiple of 8 (gp %#x)"),
+ input_bfd,
+ input_section,
+ (uint64_t) offset,
+ val,
+ insn,
+ (unsigned int) elf_gp (input_section->output_section->owner));
+ bfd_set_error (bfd_error_bad_value);
+ return bfd_reloc_notsupported;
+ }
+ break;
- default:
+ case -11:
+ case -16:
+ if (val & 3)
+ {
+ _bfd_error_handler
+ /* xgettext:c-format */
+ (_("%pB(%pA+%#" PRIx64 "): displacement %#x for insn %#x "
+ "is not a multiple of 4 (gp %#x)"),
+ input_bfd,
+ input_section,
+ (uint64_t) offset,
+ val,
+ insn,
+ (unsigned int) elf_gp (input_section->output_section->owner));
+ bfd_set_error (bfd_error_bad_value);
+ return bfd_reloc_notsupported;
+ }
+ break;
+
+ default:
+ break;
+ }
break;
}
insn = hppa_rebuild_insn (insn, val, r_format);
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 05dd4e8..f9d9902 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -2399,6 +2399,43 @@ elf_s390_relocate_section (bfd *output_bfd,
/* We didn't make a PLT entry for this symbol. This
happens when statically linking PIC code, or when
using -Bsymbolic. */
+
+ /* Replace relative long addressing instructions of weak
+ symbols, which will definitely resolve to zero, with
+ either a load address of 0 or a trapping insn.
+ This prevents the PLT32DBL relocation from overflowing in
+ case the binary will be loaded at 4GB or more. */
+ if (h->root.type == bfd_link_hash_undefweak
+ && !h->root.linker_def
+ && (bfd_link_executable (info)
+ || ELF_ST_VISIBILITY (h->other) != STV_DEFAULT)
+ && r_type == R_390_PLT32DBL
+ && rel->r_offset >= 2)
+ {
+ void *insn_start = contents + rel->r_offset - 2;
+ uint16_t op = bfd_get_16 (input_bfd, insn_start) & 0xff0f;
+ uint8_t reg = bfd_get_8 (input_bfd, insn_start + 1) & 0xf0;
+
+ /* NOTE: The order of the if's is important! */
+ /* Replace load address relative long (larl) with load
+ address (lay) */
+ if (op == 0xc000)
+ {
+ /* larl rX,<weak sym> -> lay rX,0(0) */
+ bfd_put_16 (output_bfd, 0xe300 | reg, insn_start);
+ bfd_put_32 (output_bfd, 0x71, insn_start + 2);
+ continue;
+ }
+ /* Replace branch relative and save long (brasl) with a trap. */
+ else if (op == 0xc005)
+ {
+ /* brasl rX,<weak sym> -> jg .+2 (6-byte trap) */
+ bfd_put_16 (output_bfd, 0xc0f4, insn_start);
+ bfd_put_32 (output_bfd, 0x1, insn_start + 2);
+ continue;
+ }
+ }
+
break;
}
if (s390_is_ifunc_symbol_p (h))
@@ -2517,10 +2554,9 @@ elf_s390_relocate_section (bfd *output_bfd,
- store halfword relative long (sthrl)
- execute relative long (exrl)
- compare (logical) relative long (crl, clrl, cgrl, clgrl, cgfrl, clgfrl)
- - compare (logical) halfword relative long (chrl, cghrl, clhrl, clghrl)
- - branch relative on count high (brcth) */
+ - compare (logical) halfword relative long (chrl, cghrl, clhrl, clghrl) */
else if (op == 0xc005 || (op & 0xff00) == 0xc400
- || (op & 0xff00) == 0xc600 || op == 0xcc06)
+ || (op & 0xff00) == 0xc600)
{
/* Emit a 6-byte trap: jg .+2 */
bfd_put_16 (output_bfd, 0xc0f4, insn_start);
diff --git a/bfd/elflink.c b/bfd/elflink.c
index cca0c67..a180e59 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -2247,16 +2247,19 @@ _bfd_elf_export_symbol (struct elf_link_hash_entry *h, void *data)
/* Return the glibc version reference if VERSION_DEP is added to the
list of glibc version dependencies successfully. VERSION_DEP will
- be put into the .gnu.version_r section. */
+ be put into the .gnu.version_r section. GLIBC_MINOR_BASE is the
+ pointer to the glibc minor base version. */
static Elf_Internal_Verneed *
elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
Elf_Internal_Verneed *glibc_verref,
- const char *version_dep)
+ const char *version_dep,
+ int *glibc_minor_base)
{
Elf_Internal_Verneed *t;
Elf_Internal_Vernaux *a;
size_t amt;
+ int minor_version = -1;
if (glibc_verref != NULL)
{
@@ -2272,8 +2275,6 @@ elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
}
else
{
- bool is_glibc;
-
for (t = elf_tdata (rinfo->info->output_bfd)->verref;
t != NULL;
t = t->vn_nextref)
@@ -2287,7 +2288,6 @@ elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
if (t == NULL)
return t;
- is_glibc = false;
for (a = t->vn_auxptr; a != NULL; a = a->vna_nextptr)
{
/* Return if VERSION_DEP dependency has been added. */
@@ -2296,12 +2296,24 @@ elf_link_add_glibc_verneed (struct elf_find_verdep_info *rinfo,
return t;
/* Check if libc.so provides GLIBC_2.XX version. */
- if (!is_glibc && startswith (a->vna_nodename, "GLIBC_2."))
- is_glibc = true;
+ if (startswith (a->vna_nodename, "GLIBC_2."))
+ {
+ minor_version = strtol (a->vna_nodename + 8, NULL, 10);
+ if (minor_version < *glibc_minor_base)
+ *glibc_minor_base = minor_version;
+ }
}
/* Skip if it isn't linked against glibc. */
- if (!is_glibc)
+ if (minor_version < 0)
+ return NULL;
+ }
+
+ /* Skip if 2.GLIBC_MINOR_BASE includes VERSION_DEP. */
+ if (startswith (version_dep, "GLIBC_2."))
+ {
+ minor_version = strtol (version_dep + 8, NULL, 10);
+ if (minor_version <= *glibc_minor_base)
return NULL;
}
@@ -2333,10 +2345,12 @@ _bfd_elf_link_add_glibc_version_dependency
const char *version_dep[])
{
Elf_Internal_Verneed *t = NULL;
+ int glibc_minor_base = INT_MAX;
do
{
- t = elf_link_add_glibc_verneed (rinfo, t, *version_dep);
+ t = elf_link_add_glibc_verneed (rinfo, t, *version_dep,
+ &glibc_minor_base);
/* Return if there is no glibc version reference. */
if (t == NULL)
return;
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 0005646..94c9a01 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -5990,8 +5990,6 @@ elfNN_aarch64_final_link_relocate (reloc_howto_type *howto,
{
/* Don't emit a relative relocation that is packed, only
apply the addend. */
- if (globals->no_apply_dynamic_relocs)
- return bfd_reloc_ok;
return _bfd_final_link_relocate (howto, input_bfd, input_section,
contents, rel->r_offset, value,
signed_addend);
diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index da84aab..db6d419 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -84,6 +84,12 @@ struct _bfd_loongarch_elf_obj_tdata
&& elf_tdata (bfd) != NULL \
&& elf_object_id (bfd) == LARCH_ELF_DATA)
+struct relr_entry
+{
+ asection *sec;
+ bfd_vma off;
+};
+
struct loongarch_elf_link_hash_table
{
struct elf_link_hash_table elf;
@@ -104,8 +110,51 @@ struct loongarch_elf_link_hash_table
/* The data segment phase, don't relax the section
when it is exp_seg_relro_adjust. */
int *data_segment_phase;
+
+ /* Array of relative relocs to be emitted in DT_RELR format. */
+ bfd_size_type relr_alloc;
+ bfd_size_type relr_count;
+ struct relr_entry *relr;
+
+ /* Sorted output addresses of above relative relocs. */
+ bfd_vma *relr_sorted;
+
+ /* Layout recomputation count. */
+ bfd_size_type relr_layout_iter;
+};
+
+struct loongarch_elf_section_data
+{
+ struct bfd_elf_section_data elf;
+
+ /* &htab->relr[i] where i is the smallest number s.t.
+ elf_section_data (htab->relr[i].sec) == &elf.
+ NULL if there exists no such i. */
+ struct relr_entry *relr;
};
+/* We need an additional field in elf_section_data to handle complex
+ interactions between DT_RELR and relaxation. */
+static bool
+loongarch_elf_new_section_hook (bfd *abfd, asection *sec)
+{
+ if (!sec->used_by_bfd)
+ {
+ struct loongarch_elf_section_data *sdata;
+ size_t amt = sizeof (*sdata);
+
+ sdata = bfd_zalloc (abfd, amt);
+ if (!sdata)
+ return false;
+ sec->used_by_bfd = sdata;
+ }
+
+ return _bfd_elf_new_section_hook (abfd, sec);
+}
+
+#define loongarch_elf_section_data(x) \
+ ((struct loongarch_elf_section_data *) elf_section_data (x))
+
/* Get the LoongArch ELF linker hash table from a link_info structure. */
#define loongarch_elf_hash_table(p) \
(elf_hash_table_id (elf_hash_table (p)) == LARCH_ELF_DATA \
@@ -181,6 +230,44 @@ struct loongarch_elf_link_hash_table
} \
while (0)
+/* TL;DR always use it in this file instead when you want to type
+ SYMBOL_REFERENCES_LOCAL.
+
+ It's like SYMBOL_REFERENCES_LOCAL, but it returns true for local
+ protected functions. It happens to be same as SYMBOL_CALLS_LOCAL but
+ let's not reuse SYMBOL_CALLS_LOCAL or "CALLS" may puzzle people.
+
+ We do generate a PLT entry when someone attempts to la.pcrel an external
+ function. But we never really implemented "R_LARCH_COPY", thus we've
+ never supported la.pcrel an external symbol unless the loaded address is
+ only used for locating a function to be called. Thus the PLT entry is
+ a normal PLT entry, not intended to be a so-called "canonical PLT entry"
+ on the ports supporting copy relocation. So attempting to la.pcrel an
+ external function will just break pointer equality, even it's a
+ STV_DEFAULT function:
+
+ $ cat t.c
+ #include <assert.h>
+ void check(void *p) {assert(p == check);}
+ $ cat main.c
+ extern void check(void *);
+ int main(void) { check(check); }
+ $ cc t.c -fPIC -shared -o t.so
+ $ cc main.c -mdirect-extern-access t.so -Wl,-rpath=. -fpie -pie
+ $ ./a.out
+ a.out: t.c:2: check: Assertion `p == check' failed.
+ Aborted
+
+ Thus handling STV_PROTECTED function specially just fixes nothing:
+ adding -fvisibility=protected compiling t.c will not magically fix
+ the inequality. The only possible and correct fix is not to use
+ -mdirect-extern-access.
+
+ So we should remove this special handling, because it's only an
+ unsuccessful workaround for invalid code and it's penalizing valid
+ code. */
+#define LARCH_REF_LOCAL(info, h) \
+ (_bfd_elf_symbol_refs_local_p ((h), (info), true))
/* Generate a PLT header. */
@@ -712,7 +799,7 @@ loongarch_tls_transition_without_check (struct bfd_link_info *info,
struct elf_link_hash_entry *h)
{
bool local_exec = bfd_link_executable (info)
- && SYMBOL_REFERENCES_LOCAL (info, h);
+ && LARCH_REF_LOCAL (info, h);
switch (r_type)
{
@@ -812,6 +899,7 @@ loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
unsigned int r_type;
unsigned int r_symndx;
struct elf_link_hash_entry *h;
+ bool is_abs_symbol = false;
Elf_Internal_Sym *isym = NULL;
r_symndx = ELFNN_R_SYM (rel->r_info);
@@ -830,6 +918,7 @@ loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (isym == NULL)
return false;
+ is_abs_symbol = isym->st_shndx == SHN_ABS;
if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
{
h = elfNN_loongarch_get_local_sym_hash (htab, abfd, rel, true);
@@ -848,6 +937,7 @@ loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
while (h->root.type == bfd_link_hash_indirect
|| h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
+ is_abs_symbol = bfd_is_abs_symbol (&h->root);
}
/* It is referenced by a non-shared object. */
@@ -889,6 +979,20 @@ loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (rel + 1 != relocs + sec->reloc_count
&& ELFNN_R_TYPE (rel[1].r_info) == R_LARCH_RELAX)
r_type = loongarch_tls_transition (abfd, info, h, r_symndx, r_type);
+
+ /* I don't want to spend time supporting DT_RELR with old object
+ files doing stack-based relocs. */
+ if (info->enable_dt_relr
+ && r_type >= R_LARCH_SOP_PUSH_PCREL
+ && r_type <= R_LARCH_SOP_POP_32_U)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB: stack based reloc type (%u) is not "
+ "supported with -z pack-relative-relocs"),
+ abfd, r_type);
+ return false;
+ }
+
switch (r_type)
{
case R_LARCH_GOT_PC_HI20:
@@ -1036,10 +1140,31 @@ loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
only_need_pcrel = 1;
break;
- case R_LARCH_JUMP_SLOT:
case R_LARCH_32:
+ if (ARCH_SIZE > 32
+ && bfd_link_pic (info)
+ && (sec->flags & SEC_ALLOC) != 0)
+ {
+ if (!is_abs_symbol)
+ {
+ _bfd_error_handler
+ (_("%pB: relocation R_LARCH_32 against non-absolute "
+ "symbol `%s' cannot be used in ELFCLASS64 when "
+ "making a shared object or PIE"),
+ abfd, h ? h->root.root.string : "a local symbol");
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
+ }
+
+ /* Fall through. */
+ case R_LARCH_JUMP_SLOT:
case R_LARCH_64:
+ /* Resolved to const. */
+ if (is_abs_symbol)
+ break;
+
need_dynreloc = 1;
/* If resolved symbol is defined in this object,
@@ -1081,6 +1206,20 @@ loongarch_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
return false;
break;
+ case R_LARCH_ALIGN:
+ /* Check against irrational R_LARCH_ALIGN relocs which may cause
+ removing an odd number of bytes and disrupt DT_RELR. */
+ if (rel->r_offset % 4 != 0)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (
+ _("%pB: R_LARCH_ALIGN with offset %" PRId64 " not aligned "
+ "to instruction boundary"),
+ abfd, (uint64_t) rel->r_offset);
+ return false;
+ }
+ break;
+
default:
break;
}
@@ -1197,7 +1336,7 @@ loongarch_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
{
if (h->plt.refcount <= 0
|| (h->type != STT_GNU_IFUNC
- && (SYMBOL_REFERENCES_LOCAL (info, h)
+ && (LARCH_REF_LOCAL (info, h)
|| (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
&& h->root.type == bfd_link_hash_undefweak))))
{
@@ -1692,9 +1831,10 @@ local_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
ifunc dynamic relocs. */
static bool
-elfNN_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, void *inf)
+elfNN_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h,
+ struct bfd_link_info *info,
+ bool ref_local)
{
- struct bfd_link_info *info;
/* An example of a bfd_link_hash_indirect symbol is versioned
symbol. For example: __gxx_personality_v0(bfd_link_hash_indirect)
-> __gxx_personality_v0(bfd_link_hash_defined)
@@ -1710,20 +1850,18 @@ elfNN_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, void *inf)
if (h->root.type == bfd_link_hash_warning)
h = (struct elf_link_hash_entry *) h->root.u.i.link;
- info = (struct bfd_link_info *) inf;
-
/* Since STT_GNU_IFUNC symbol must go through PLT, we handle it
here if it is defined and referenced in a non-shared object. */
if (h->type == STT_GNU_IFUNC && h->def_regular)
{
- if (SYMBOL_REFERENCES_LOCAL (info, h))
+ if (ref_local && LARCH_REF_LOCAL (info, h))
return local_allocate_ifunc_dyn_relocs (info, h,
&h->dyn_relocs,
PLT_ENTRY_SIZE,
PLT_HEADER_SIZE,
GOT_ENTRY_SIZE,
false);
- else
+ else if (!ref_local && !LARCH_REF_LOCAL (info, h))
return _bfd_elf_allocate_ifunc_dyn_relocs (info, h,
&h->dyn_relocs,
PLT_ENTRY_SIZE,
@@ -1735,6 +1873,22 @@ elfNN_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, void *inf)
return true;
}
+static bool
+elfNN_allocate_ifunc_dynrelocs_ref_local (struct elf_link_hash_entry *h,
+ void *info)
+{
+ return elfNN_allocate_ifunc_dynrelocs (h, (struct bfd_link_info *) info,
+ true);
+}
+
+static bool
+elfNN_allocate_ifunc_dynrelocs_ref_global (struct elf_link_hash_entry *h,
+ void *info)
+{
+ return elfNN_allocate_ifunc_dynrelocs (h, (struct bfd_link_info *) info,
+ false);
+}
+
/* Allocate space in .plt, .got and associated reloc sections for
ifunc dynamic relocs. */
@@ -1750,7 +1904,7 @@ elfNN_allocate_local_ifunc_dynrelocs (void **slot, void *inf)
|| h->root.type != bfd_link_hash_defined)
abort ();
- return elfNN_allocate_ifunc_dynrelocs (h, inf);
+ return elfNN_allocate_ifunc_dynrelocs_ref_local (h, inf);
}
/* Set DF_TEXTREL if we find any dynamic relocs that apply to
@@ -1781,6 +1935,343 @@ maybe_set_textrel (struct elf_link_hash_entry *h, void *info_p)
}
static bool
+record_relr (struct loongarch_elf_link_hash_table *htab, asection *sec,
+ bfd_vma off, asection *sreloc)
+{
+ struct relr_entry **sec_relr = &loongarch_elf_section_data (sec)->relr;
+
+ /* Undo the relocation section size accounting. */
+ BFD_ASSERT (sreloc->size >= sizeof (ElfNN_External_Rela));
+ sreloc->size -= sizeof (ElfNN_External_Rela);
+
+ BFD_ASSERT (off % 2 == 0 && sec->alignment_power > 0);
+ if (htab->relr_count >= htab->relr_alloc)
+ {
+ if (htab->relr_alloc == 0)
+ htab->relr_alloc = 4096;
+ else
+ htab->relr_alloc *= 2;
+
+ htab->relr = bfd_realloc (htab->relr,
+ htab->relr_alloc * sizeof (*htab->relr));
+ if (!htab->relr)
+ return false;
+ }
+ htab->relr[htab->relr_count].sec = sec;
+ htab->relr[htab->relr_count].off = off;
+ if (*sec_relr == NULL)
+ *sec_relr = &htab->relr[htab->relr_count];
+ htab->relr_count++;
+ return true;
+}
+
+static bool
+record_relr_local_got_relocs (bfd *input_bfd, struct bfd_link_info *info)
+{
+ bfd_vma *local_got_offsets = elf_local_got_offsets (input_bfd);
+ char *local_tls_type = _bfd_loongarch_elf_local_got_tls_type (input_bfd);
+ Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (input_bfd);
+ struct loongarch_elf_link_hash_table *htab =
+ loongarch_elf_hash_table (info);
+
+ if (!local_got_offsets || !local_tls_type || !bfd_link_pic (info))
+ return true;
+
+ for (unsigned i = 0; i < symtab_hdr->sh_info; i++)
+ {
+ bfd_vma off = local_got_offsets[i];
+
+ /* FIXME: If the local symbol is in SHN_ABS then emitting
+ a relative relocation is not correct, but it seems to be wrong
+ in loongarch_elf_relocate_section too. */
+ if (local_tls_type[i] == GOT_NORMAL
+ && !record_relr (htab, htab->elf.sgot, off, htab->elf.srelgot))
+ return false;
+ }
+
+ return true;
+}
+
+static bool
+record_relr_dyn_got_relocs (struct elf_link_hash_entry *h, void *inf)
+{
+ struct bfd_link_info *info = (struct bfd_link_info *) inf;
+ struct loongarch_elf_link_hash_table *htab =
+ loongarch_elf_hash_table (info);
+
+ if (h->root.type == bfd_link_hash_indirect)
+ return true;
+ if (h->type == STT_GNU_IFUNC && h->def_regular)
+ return true;
+ if (h->got.refcount <= 0)
+ return true;
+ if (loongarch_elf_hash_entry (h)->tls_type
+ & (GOT_TLS_GD | GOT_TLS_IE | GOT_TLS_GDESC))
+ return true;
+ if (!bfd_link_pic (info))
+ return true;
+
+ /* On LoongArch a GOT entry for undefined weak symbol is never relocated
+ with R_LARCH_RELATIVE: we don't have -z dynamic-undefined-weak, thus
+ the GOT entry is either const 0 (if the symbol is LARCH_REF_LOCAL) or
+ relocated with R_LARCH_NN (otherwise). */
+ if (h->root.type == bfd_link_hash_undefweak)
+ return true;
+
+ if (!LARCH_REF_LOCAL (info, h))
+ return true;
+ if (bfd_is_abs_symbol (&h->root))
+ return true;
+
+ if (!record_relr (htab, htab->elf.sgot, h->got.offset,
+ htab->elf.srelgot))
+ return false;
+
+ return true;
+}
+
+static bool
+record_relr_non_got_relocs (bfd *input_bfd, struct bfd_link_info *info,
+ asection *sec)
+{
+ asection *sreloc;
+ struct loongarch_elf_link_hash_table *htab;
+ Elf_Internal_Rela *relocs, *rel, *rel_end;
+ Elf_Internal_Shdr *symtab_hdr;
+ struct elf_link_hash_entry **sym_hashes;
+
+ if (!bfd_link_pic (info))
+ return true;
+ if (sec->reloc_count == 0)
+ return true;
+ if ((sec->flags & (SEC_RELOC | SEC_ALLOC | SEC_DEBUGGING))
+ != (SEC_RELOC | SEC_ALLOC))
+ return true;
+ if (sec->alignment_power == 0)
+ return true;
+ if (discarded_section (sec))
+ return true;
+
+ sreloc = elf_section_data (sec)->sreloc;
+ if (sreloc == NULL)
+ return true;
+
+ htab = loongarch_elf_hash_table (info);
+ symtab_hdr = &elf_symtab_hdr (input_bfd);
+ sym_hashes = elf_sym_hashes (input_bfd);
+ relocs = _bfd_elf_link_info_read_relocs (input_bfd, info, sec, NULL,
+ NULL, info->keep_memory);
+ BFD_ASSERT (relocs != NULL);
+ rel_end = relocs + sec->reloc_count;
+ for (rel = relocs; rel < rel_end; rel++)
+ {
+ unsigned r_symndx = ELFNN_R_SYM (rel->r_info);
+ unsigned int r_type = ELFNN_R_TYPE (rel->r_info);
+ struct elf_link_hash_entry *h = NULL;
+ asection *def_sec = NULL;
+
+ if ((r_type != R_LARCH_64 && r_type != R_LARCH_32)
+ || rel->r_offset % 2 != 0)
+ continue;
+
+ /* The logical below must match loongarch_elf_relocate_section. */
+ if (r_symndx < symtab_hdr->sh_info)
+ {
+ /* A local symbol. */
+ Elf_Internal_Sym *isym;
+ isym = bfd_sym_from_r_symndx (&htab->elf.sym_cache, input_bfd,
+ r_symndx);
+ BFD_ASSERT(isym != NULL);
+
+ /* Local STT_GNU_IFUNC symbol uses R_LARCH_IRELATIVE for
+ R_LARCH_NN, not R_LARCH_RELATIVE. */
+ if (ELF_ST_TYPE (isym->st_info) == STT_GNU_IFUNC)
+ continue;
+ def_sec = bfd_section_from_elf_index (input_bfd, isym->st_shndx);
+ }
+ else
+ {
+ h = sym_hashes[r_symndx - symtab_hdr->sh_info];
+ while (h->root.type == bfd_link_hash_indirect
+ || h->root.type == bfd_link_hash_warning)
+ h = (struct elf_link_hash_entry *) h->root.u.i.link;
+
+ /* Filter out symbols that cannot have a relative reloc. */
+ if (h->dyn_relocs == NULL)
+ continue;
+ if (bfd_is_abs_symbol (&h->root))
+ continue;
+ if (h->type == STT_GNU_IFUNC)
+ continue;
+
+ if (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ def_sec = h->root.u.def.section;
+
+ /* On LoongArch an R_LARCH_NN against undefined weak symbol
+ is never converted to R_LARCH_RELATIVE: we don't have
+ -z dynamic-undefined-weak, thus the reloc is either removed
+ (if the symbol is LARCH_REF_LOCAL) or kept (otherwise). */
+ if (h->root.type == bfd_link_hash_undefweak)
+ continue;
+
+ if (!LARCH_REF_LOCAL (info, h))
+ continue;
+ }
+
+ if (!def_sec || discarded_section (def_sec))
+ continue;
+
+ if (!record_relr (htab, sec, rel->r_offset, sreloc))
+ return false;
+ }
+
+ return true;
+}
+
+static int
+cmp_relr_addr (const void *p, const void *q)
+{
+ const bfd_vma *a = p, *b = q;
+ return (*a > *b) - (*a < *b);
+}
+
+static bool
+sort_relr (struct bfd_link_info *info,
+ struct loongarch_elf_link_hash_table *htab)
+{
+ if (htab->relr_count == 0)
+ return true;
+
+ bfd_vma *addr = htab->relr_sorted;
+ if (!addr)
+ {
+ addr = bfd_malloc (htab->relr_count * sizeof (*addr));
+ if (!addr)
+ return false;
+ htab->relr_sorted = addr;
+ }
+
+ for (bfd_size_type i = 0; i < htab->relr_count; i++)
+ {
+ bfd_vma off = _bfd_elf_section_offset (info->output_bfd, info,
+ htab->relr[i].sec,
+ htab->relr[i].off);
+ addr[i] = htab->relr[i].sec->output_section->vma
+ + htab->relr[i].sec->output_offset + off;
+ }
+ qsort(addr, htab->relr_count, sizeof (*addr), cmp_relr_addr);
+ return true;
+}
+
+static bool
+loongarch_elf_size_relative_relocs (struct bfd_link_info *info,
+ bool *need_layout)
+{
+ struct loongarch_elf_link_hash_table *htab =
+ loongarch_elf_hash_table (info);
+ asection *srelrdyn = htab->elf.srelrdyn;
+
+ *need_layout = false;
+
+ if (!sort_relr (info, htab))
+ return false;
+ bfd_vma *addr = htab->relr_sorted;
+
+ BFD_ASSERT (srelrdyn != NULL);
+ bfd_size_type oldsize = srelrdyn->size;
+ srelrdyn->size = 0;
+ for (bfd_size_type i = 0; i < htab->relr_count; )
+ {
+ bfd_vma base = addr[i];
+ i++;
+ srelrdyn->size += NN / 8;
+ base += NN / 8;
+ while (1)
+ {
+ bfd_size_type start_i = i;
+ while (i < htab->relr_count
+ && addr[i] - base < (NN - 1) * (NN / 8)
+ && (addr[i] - base) % (NN / 8) == 0)
+ i++;
+ if (i == start_i)
+ break;
+ srelrdyn->size += NN / 8;
+ base += (NN - 1) * (NN / 8);
+ }
+ }
+ if (srelrdyn->size != oldsize)
+ {
+ *need_layout = true;
+ /* Stop after a few iterations in case the layout does not converge,
+ but we can only stop when the size would shrink (and pad the
+ spare space with 1. */
+ if (htab->relr_layout_iter++ > 5 && srelrdyn->size < oldsize)
+ {
+ srelrdyn->size = oldsize;
+ *need_layout = false;
+ }
+ }
+ return true;
+}
+
+static bool
+loongarch_elf_finish_relative_relocs (struct bfd_link_info *info)
+{
+ struct loongarch_elf_link_hash_table *htab =
+ loongarch_elf_hash_table (info);
+ asection *srelrdyn = htab->elf.srelrdyn;
+ bfd *dynobj = htab->elf.dynobj;
+
+ if (!srelrdyn || srelrdyn->size == 0)
+ return true;
+
+ srelrdyn->contents = bfd_alloc (dynobj, srelrdyn->size);
+ if (!srelrdyn->contents)
+ return false;
+
+ bfd_vma *addr = htab->relr_sorted;
+ bfd_byte *loc = srelrdyn->contents;
+ for (bfd_size_type i = 0; i < htab->relr_count; )
+ {
+ bfd_vma base = addr[i];
+ i++;
+ bfd_put_NN (dynobj, base, loc);
+ loc += NN / 8;
+ base += NN / 8;
+ while (1)
+ {
+ uintNN_t bits = 0;
+ while (i < htab->relr_count)
+ {
+ bfd_vma delta = addr[i] - base;
+ if (delta >= (NN - 1) * (NN / 8) || delta % (NN / 8) != 0)
+ break;
+ bits |= (uintNN_t) 1 << (delta / (NN / 8));
+ i++;
+ }
+ if (bits == 0)
+ break;
+ bfd_put_NN (dynobj, (bits << 1) | 1, loc);
+ loc += NN / 8;
+ base += (NN - 1) * (NN / 8);
+ }
+ }
+
+ free (addr);
+ htab->relr_sorted = NULL;
+
+ /* Pad any excess with 1's, a do-nothing encoding. */
+ while (loc < srelrdyn->contents + srelrdyn->size)
+ {
+ bfd_put_NN (dynobj, 1, loc);
+ loc += NN / 8;
+ }
+
+ return true;
+}
+
+static bool
loongarch_elf_late_size_sections (bfd *output_bfd,
struct bfd_link_info *info)
{
@@ -1910,11 +2401,48 @@ loongarch_elf_late_size_sections (bfd *output_bfd,
sym dynamic relocs. */
elf_link_hash_traverse (&htab->elf, allocate_dynrelocs, info);
- /* Allocate global ifunc sym .plt and .got entries, and space for global
- ifunc sym dynamic relocs. */
- elf_link_hash_traverse (&htab->elf, elfNN_allocate_ifunc_dynrelocs, info);
-
- /* Allocate .plt and .got entries, and space for local ifunc symbols. */
+ /* Allocate global ifunc sym .plt and .got entries, and space for
+ *preemptible* ifunc sym dynamic relocs. Note that we must do it
+ for *all* preemptible ifunc (including local ifuncs and STV_HIDDEN
+ ifuncs) before doing it for any non-preemptible ifunc symbol:
+ assuming we are not so careful, when we link a shared library the
+ correlation of .plt and .rela.plt might look like:
+
+ idx in .plt idx in .rela.plt
+ ext_func1@plt 0 0
+ ext_func2@plt 1 1
+ ext_func3@plt 2 2
+ hidden_ifunc1@plt 3 None: it's in .rela.got
+ hidden_ifunc2@plt 4 None: it's in .rela.got
+ normal_ifunc1@plt 5 != 3
+ normal_ifunc2@plt 6 != 4
+ local_ifunc@plt 7 None: it's in .rela.got
+
+ Now oops the indices for normal_ifunc{1,2} in .rela.plt were different
+ from the indices in .plt :(. This would break finish_dynamic_symbol
+ which assumes the index in .rela.plt matches the index in .plt.
+
+ So let's be careful and make it correct:
+
+ idx in .plt idx in .rela.plt
+ ext_func1@plt 0 0
+ ext_func2@plt 1 1
+ ext_func3@plt 2 2
+ normal_ifunc1@plt 3 3
+ normal_ifunc2@plt 4 4
+ hidden_ifunc1@plt 5 None: it's in .rela.got
+ hidden_ifunc2@plt 6 None: it's in .rela.got
+ local_ifunc@plt 7 None: it's in .rela.got
+
+ Now normal_ifuncs first. */
+ elf_link_hash_traverse (&htab->elf,
+ elfNN_allocate_ifunc_dynrelocs_ref_global, info);
+
+ /* Next hidden_ifuncs follows. */
+ elf_link_hash_traverse (&htab->elf,
+ elfNN_allocate_ifunc_dynrelocs_ref_local, info);
+
+ /* Finally local_ifuncs. */
htab_traverse (htab->loc_hash_table,
elfNN_allocate_local_ifunc_dynrelocs, info);
@@ -1923,6 +2451,24 @@ loongarch_elf_late_size_sections (bfd *output_bfd,
&& (htab->elf.splt == NULL || htab->elf.splt->size == 0))
htab->elf.sgotplt->size = 0;
+ if (info->enable_dt_relr && !bfd_link_relocatable (info))
+ {
+ elf_link_hash_traverse (&htab->elf, record_relr_dyn_got_relocs, info);
+
+ for (ibfd = info->input_bfds; ibfd != NULL; ibfd = ibfd->link.next)
+ {
+ if (!is_loongarch_elf (ibfd))
+ continue;
+
+ for (s = ibfd->sections; s != NULL; s = s->next)
+ if (!record_relr_non_got_relocs (ibfd, info, s))
+ return false;
+
+ if (!record_relr_local_got_relocs (ibfd, info))
+ return false;
+ }
+ }
+
/* The check_relocs and adjust_dynamic_symbol entry points have
determined the sizes of the various dynamic sections. Allocate
memory for them. */
@@ -1947,6 +2493,14 @@ loongarch_elf_late_size_sections (bfd *output_bfd,
s->reloc_count = 0;
}
}
+ else if (s == htab->elf.srelrdyn && htab->relr_count == 0)
+ {
+ /* Remove .relr.dyn based on relr_count, not size, since
+ it is not sized yet. */
+ s->flags |= SEC_EXCLUDE;
+ /* Allocate contents later. */
+ continue;
+ }
else
{
/* It's not one of our sections. */
@@ -2610,7 +3164,6 @@ tlsoff (struct bfd_link_info *info, bfd_vma addr)
return addr - elf_hash_table (info)->tls_sec->vma;
}
-
static int
loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
bfd *input_bfd, asection *input_section,
@@ -2736,7 +3289,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
{
defined_local = !unresolved_reloc && !ignored;
resolved_local =
- defined_local && SYMBOL_REFERENCES_LOCAL (info, h);
+ defined_local && LARCH_REF_LOCAL (info, h);
resolved_dynly = !resolved_local;
resolved_to_const = !resolved_local && !resolved_dynly;
}
@@ -2825,7 +3378,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
outrel.r_addend = 0;
}
- if (SYMBOL_REFERENCES_LOCAL (info, h))
+ if (LARCH_REF_LOCAL (info, h))
{
if (htab->elf.splt != NULL)
@@ -2859,10 +3412,26 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
outrel.r_addend = relocation + rel->r_addend;
}
- /* No alloc space of func allocate_dynrelocs. */
+ /* No alloc space of func allocate_dynrelocs.
+ No alloc space of invalid R_LARCH_32 in ELFCLASS64. */
if (unresolved_reloc
+ && (ARCH_SIZE == 32 || r_type != R_LARCH_32)
&& !(h && (h->is_weakalias || !h->dyn_relocs)))
- loongarch_elf_append_rela (output_bfd, sreloc, &outrel);
+ {
+ if (info->enable_dt_relr
+ && (ELFNN_R_TYPE (outrel.r_info) == R_LARCH_RELATIVE)
+ && input_section->alignment_power != 0
+ && rel->r_offset % 2 == 0)
+ /* Don't emit a relative relocation that is packed,
+ only apply the addend (as if we are applying the
+ original R_LARCH_NN reloc in a PDE). */
+ r = perform_relocation (rel, input_section, howto,
+ relocation, input_bfd,
+ contents);
+ else
+ loongarch_elf_append_rela (output_bfd, sreloc,
+ &outrel);
+ }
}
relocation += rel->r_addend;
@@ -3173,7 +3742,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
if (!WILL_CALL_FINISH_DYNAMIC_SYMBOL (is_dyn,
bfd_link_pic (info), h)
&& ((bfd_link_pic (info)
- && SYMBOL_REFERENCES_LOCAL (info, h))))
+ && LARCH_REF_LOCAL (info, h))))
{
/* This is actually a static link, or it is a
-Bsymbolic link and the symbol is defined
@@ -3318,7 +3887,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
asection *srel = htab->elf.srelgot;
bfd_vma tls_block_off = 0;
- if (SYMBOL_REFERENCES_LOCAL (info, h))
+ if (LARCH_REF_LOCAL (info, h))
{
BFD_ASSERT (elf_hash_table (info)->tls_sec);
tls_block_off = relocation
@@ -3329,7 +3898,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
{
rela.r_offset = sec_addr (got) + got_off;
rela.r_addend = 0;
- if (SYMBOL_REFERENCES_LOCAL (info, h))
+ if (LARCH_REF_LOCAL (info, h))
{
/* Local sym, used in exec, set module id 1. */
if (bfd_link_executable (info))
@@ -3362,7 +3931,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
if (tls_type & GOT_TLS_IE)
{
rela.r_offset = sec_addr (got) + got_off + ie_off;
- if (SYMBOL_REFERENCES_LOCAL (info, h))
+ if (LARCH_REF_LOCAL (info, h))
{
/* Local sym, used in exec, set module id 1. */
if (!bfd_link_executable (info))
@@ -3564,7 +4133,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
bfd_link_pic (info),
h)
&& bfd_link_pic (info)
- && SYMBOL_REFERENCES_LOCAL (info, h))
+ && LARCH_REF_LOCAL (info, h))
{
Elf_Internal_Rela rela;
rela.r_offset = sec_addr (got) + got_off;
@@ -3586,7 +4155,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
got_off = local_got_offsets[r_symndx] & (~(bfd_vma)1);
if ((local_got_offsets[r_symndx] & 1) == 0)
{
- if (bfd_link_pic (info))
+ if (bfd_link_pic (info) && !info->enable_dt_relr)
{
Elf_Internal_Rela rela;
rela.r_offset = sec_addr (got) + got_off;
@@ -3998,6 +4567,13 @@ loongarch_relax_delete_bytes (bfd *abfd,
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;
+ 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;
+
+ if (htab->relr_count)
+ relr_end = htab->relr + htab->relr_count;
/* Actually delete the bytes. */
sec->size -= count;
@@ -4010,6 +4586,11 @@ loongarch_relax_delete_bytes (bfd *abfd,
if (data->relocs[i].r_offset > addr && data->relocs[i].r_offset < toaddr)
data->relocs[i].r_offset -= count;
+ /* 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;
+
/* Adjust the local symbols defined in this section. */
for (i = 0; i < symtab_hdr->sh_info; i++)
{
@@ -4105,7 +4686,7 @@ loongarch_tls_perform_trans (bfd *abfd, asection *sec,
{
unsigned long insn;
bool local_exec = bfd_link_executable (info)
- && SYMBOL_REFERENCES_LOCAL (info, h);
+ && LARCH_REF_LOCAL (info, h);
bfd_byte *contents = elf_section_data (sec)->this_hdr.contents;
unsigned long r_type = ELFNN_R_TYPE (rel->r_info);
unsigned long r_symndx = ELFNN_R_SYM (rel->r_info);
@@ -4817,7 +5398,7 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
else
continue;
- if (h && SYMBOL_REFERENCES_LOCAL (info, h))
+ if (h && LARCH_REF_LOCAL (info, h))
local_got = true;
symtype = h->type;
}
@@ -4954,12 +5535,12 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
if (htab->elf.splt)
{
BFD_ASSERT ((h->type == STT_GNU_IFUNC
- && SYMBOL_REFERENCES_LOCAL (info, h))
+ && LARCH_REF_LOCAL (info, h))
|| h->dynindx != -1);
plt = htab->elf.splt;
gotplt = htab->elf.sgotplt;
- if (h->type == STT_GNU_IFUNC && SYMBOL_REFERENCES_LOCAL (info, h))
+ if (h->type == STT_GNU_IFUNC && LARCH_REF_LOCAL (info, h))
relplt = htab->elf.srelgot;
else
relplt = htab->elf.srelplt;
@@ -4970,7 +5551,7 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
else /* if (htab->elf.iplt) */
{
BFD_ASSERT (h->type == STT_GNU_IFUNC
- && SYMBOL_REFERENCES_LOCAL (info, h));
+ && LARCH_REF_LOCAL (info, h));
plt = htab->elf.iplt;
gotplt = htab->elf.igotplt;
@@ -5058,7 +5639,7 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
if (htab->elf.splt == NULL)
srela = htab->elf.irelplt;
- if (SYMBOL_REFERENCES_LOCAL (info, h))
+ if (LARCH_REF_LOCAL (info, h))
{
asection *sec = h->root.u.def.section;
rela.r_info = ELFNN_R_INFO (0, R_LARCH_IRELATIVE);
@@ -5095,12 +5676,21 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
return true;
}
}
- else if (bfd_link_pic (info) && SYMBOL_REFERENCES_LOCAL (info, h))
+ else if (bfd_link_pic (info) && LARCH_REF_LOCAL (info, h))
{
asection *sec = h->root.u.def.section;
+ bfd_vma linkaddr = h->root.u.def.value + sec->output_section->vma
+ + sec->output_offset;
+
+ /* Don't emit relative relocs if they are packed, but we need
+ to write the addend (link-time addr) into the GOT then. */
+ if (info->enable_dt_relr)
+ {
+ bfd_put_NN (output_bfd, linkaddr, sgot->contents + off);
+ goto skip_got_reloc;
+ }
rela.r_info = ELFNN_R_INFO (0, R_LARCH_RELATIVE);
- rela.r_addend = (h->root.u.def.value + sec->output_section->vma
- + sec->output_offset);
+ rela.r_addend = linkaddr;
}
else
{
@@ -5111,6 +5701,7 @@ loongarch_elf_finish_dynamic_symbol (bfd *output_bfd,
loongarch_elf_append_rela (output_bfd, srela, &rela);
}
+skip_got_reloc:
/* Mark some specially defined symbols as absolute. */
if (h == htab->elf.hdynamic || h == htab->elf.hgot || h == htab->elf.hplt)
@@ -5564,6 +6155,10 @@ elf_loongarch64_hash_symbol (struct elf_link_hash_entry *h)
#define elf_backend_grok_psinfo loongarch_elf_grok_psinfo
#define elf_backend_hash_symbol elf_loongarch64_hash_symbol
#define bfd_elfNN_bfd_relax_section loongarch_elf_relax_section
+#define elf_backend_size_relative_relocs loongarch_elf_size_relative_relocs
+#define elf_backend_finish_relative_relocs \
+ loongarch_elf_finish_relative_relocs
+#define bfd_elfNN_new_section_hook loongarch_elf_new_section_hook
#define elf_backend_dtrel_excludes_plt 1
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index 44dd624..b3adbed 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1214,6 +1214,12 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zcf", "+f,+zca", check_implicit_always},
{"zcmp", "+zca", check_implicit_always},
+ {"shcounterenw", "+h", check_implicit_always},
+ {"shgatpa", "+h", check_implicit_always},
+ {"shtvala", "+h", check_implicit_always},
+ {"shvsatpa", "+h", check_implicit_always},
+ {"shvstvala", "+h", check_implicit_always},
+ {"shvstvecd", "+h", check_implicit_always},
{"h", "+zicsr", check_implicit_always},
{"zhinx", "+zhinxmin", check_implicit_always},
{"zhinxmin", "+zfinx", check_implicit_always},
@@ -1253,9 +1259,16 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"ssaia", "+zicsr", check_implicit_always},
{"sscsrind", "+zicsr", check_implicit_always},
{"sscofpmf", "+zicsr", check_implicit_always},
+ {"sscounterenw", "+zicsr", check_implicit_always},
{"ssstateen", "+zicsr", check_implicit_always},
{"sstc", "+zicsr", check_implicit_always},
+ {"sstvala", "+zicsr", check_implicit_always},
+ {"sstvecd", "+zicsr", check_implicit_always},
+ {"ssu64xl", "+zicsr", check_implicit_always},
+
+ {"svade", "+zicsr", check_implicit_always},
{"svadu", "+zicsr", check_implicit_always},
+ {"svbare", "+zicsr", check_implicit_always},
{NULL, NULL, NULL}
};
@@ -1314,6 +1327,11 @@ static struct riscv_supported_ext riscv_supported_std_ext[] =
static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{
+ {"zic64b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ziccamoa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ziccif", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zicclsm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ziccrse", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zicbom", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zicbop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zicboz", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1327,6 +1345,8 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{"zihintpause", ISA_SPEC_CLASS_DRAFT, 2, 0, 0 },
{"zihpm", ISA_SPEC_CLASS_DRAFT, 2, 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 },
{"zaamo", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zabha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zacas", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1406,17 +1426,30 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{
+ {"shcounterenw", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"shgatpa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"shtvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"shvsatpa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"shvstvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"shvstvecd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smaia", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smcsrind", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smcntrpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smepmp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssaia", 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 },
+ {"sscounterenw", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sstc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"sstvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"sstvecd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ssu64xl", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"svade", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svadu", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"svbare", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svinval", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svnapot", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svpbmt", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
diff --git a/bfd/linker.c b/bfd/linker.c
index 111deec..21009a8 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -573,6 +573,8 @@ bfd_wrapped_link_hash_lookup (bfd *abfd,
strcat (n, WRAP);
strcat (n, l);
h = bfd_link_hash_lookup (info->hash, n, create, true, follow);
+ if (h != NULL)
+ h->wrapper_symbol = true;
free (n);
return h;
}
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index 5a1fb25..d320b07 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-01-15 14:58+0000\n"
+"POT-Creation-Date: 2024-07-20 13:00+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -32,81 +32,86 @@ msgstr ""
msgid "%pB: bad relocation record imported: %d"
msgstr ""
-#: aoutx.h:1265 aoutx.h:1612 pdp11.c:1237 pdp11.c:1510
+#: aoutx.h:444 pdp11.c:481
+#, c-format
+msgid "%pB: %#<PRIx64> overflows header %s field"
+msgstr ""
+
+#: aoutx.h:1277 aoutx.h:1606 pdp11.c:1253 pdp11.c:1502
#, c-format
msgid "%pB: can not represent section `%pA' in a.out object file format"
msgstr ""
-#: aoutx.h:1576 pdp11.c:1482
+#: aoutx.h:1570 pdp11.c:1474
#, c-format
msgid ""
"%pB: can not represent section for symbol `%s' in a.out object file format"
msgstr ""
-#: aoutx.h:1579 vms-alpha.c:8461
+#: aoutx.h:1573 vms-alpha.c:8472
msgid "*unknown*"
msgstr ""
-#: aoutx.h:1715 pdp11.c:1578
+#: aoutx.h:1709 pdp11.c:1570
#, c-format
msgid "%pB: invalid string offset %<PRIu64> >= %<PRIu64>"
msgstr ""
-#: aoutx.h:1963
+#: aoutx.h:1953
#, c-format
msgid "%pB: unsupported AOUT relocation size: %d"
msgstr ""
-#: aoutx.h:2407 aoutx.h:2425 pdp11.c:2059
+#: aoutx.h:2397 aoutx.h:2415 pdp11.c:2047
#, c-format
msgid "%pB: attempt to write out unknown reloc type"
msgstr ""
-#: aoutx.h:4080 pdp11.c:3443
+#: aoutx.h:4055 pdp11.c:3416
#, c-format
msgid "%pB: unsupported relocation type"
msgstr ""
#. Unknown relocation.
-#: aoutx.h:4400 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3050
+#: aoutx.h:4375 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3050
#: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:262 elf-hppa.h:798
#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813 elf32-arc.c:532
-#: elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1063 elf32-bfin.c:4686
+#: elf32-arm.c:1985 elf32-avr.c:962 elf32-bfin.c:1063 elf32-bfin.c:4687
#: 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:6240 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
+#: 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:2209 elf32-m68hc11.c:390
+#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2210 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:5078 elf32-nios2.c:3019 elf32-or1k.c:1087
+#: 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:289 elf32-visium.c:481
+#: 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:4056 elf64-alpha.c:4204 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:1264
+#: 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
#: 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:281 elfn32-mips.c:3799
-#: elfxx-ia64.c:324 elfxx-loongarch.c:1895 elfxx-riscv.c:989 elfxx-sparc.c:589
-#: elfxx-sparc.c:639 elfxx-tilegx.c:907 elfxx-tilegx.c:947
+#: 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:3821
+#: elfnn-ia64.c:3822
#: elfnn-kvx.c:259
#, c-format
msgid "%pB: unsupported relocation type %#x"
msgstr ""
-#: aoutx.h:5427 pdp11.c:3866
+#: aoutx.h:5402 pdp11.c:3839
#, c-format
msgid "%pB: relocatable link from %s to %s not supported"
msgstr ""
@@ -124,139 +129,130 @@ msgstr ""
msgid "warning: writing archive was slow: rewriting timestamp"
msgstr ""
-#: archive.c:2362 archive.c:2423 elflink.c:4800 linker.c:1434
+#: archive.c:2363 archive.c:2424 elflink.c:4930 linker.c:1436
#, c-format
msgid "%pB: plugin needed to handle lto object"
msgstr ""
-#: archive.c:2655
+#: archive.c:2656
msgid "Reading archive file mod timestamp"
msgstr ""
-#: archive.c:2686
+#: archive.c:2687
msgid "Writing updated armap timestamp"
msgstr ""
-#: bfd.c:740
+#: bfd.c:777
msgid "no error"
msgstr ""
-#: bfd.c:741
+#: bfd.c:778
msgid "system call error"
msgstr ""
-#: bfd.c:742
+#: bfd.c:779
msgid "invalid bfd target"
msgstr ""
-#: bfd.c:743
+#: bfd.c:780
msgid "file in wrong format"
msgstr ""
-#: bfd.c:744
+#: bfd.c:781
msgid "archive object file in wrong format"
msgstr ""
-#: bfd.c:745
+#: bfd.c:782
msgid "invalid operation"
msgstr ""
-#: bfd.c:746
+#: bfd.c:783
msgid "memory exhausted"
msgstr ""
-#: bfd.c:747
+#: bfd.c:784
msgid "no symbols"
msgstr ""
-#: bfd.c:748
+#: bfd.c:785
msgid "archive has no index; run ranlib to add one"
msgstr ""
-#: bfd.c:749
+#: bfd.c:786
msgid "no more archived files"
msgstr ""
-#: bfd.c:750
+#: bfd.c:787
msgid "malformed archive"
msgstr ""
-#: bfd.c:751
+#: bfd.c:788
msgid "DSO missing from command line"
msgstr ""
-#: bfd.c:752
+#: bfd.c:789
msgid "file format not recognized"
msgstr ""
-#: bfd.c:753
+#: bfd.c:790
msgid "file format is ambiguous"
msgstr ""
-#: bfd.c:754
+#: bfd.c:791
msgid "section has no contents"
msgstr ""
-#: bfd.c:755
+#: bfd.c:792
msgid "nonrepresentable section on output"
msgstr ""
-#: bfd.c:756
+#: bfd.c:793
msgid "symbol needs debug section which does not exist"
msgstr ""
-#: bfd.c:757
+#: bfd.c:794
msgid "bad value"
msgstr ""
-#: bfd.c:758
+#: bfd.c:795
msgid "file truncated"
msgstr ""
-#: bfd.c:759
+#: bfd.c:796
msgid "file too big"
msgstr ""
-#: bfd.c:760
+#: bfd.c:797
msgid "sorry, cannot handle this file"
msgstr ""
-#: bfd.c:761
+#: bfd.c:798
#, c-format
msgid "error reading %s: %s"
msgstr ""
-#: bfd.c:762
+#: bfd.c:799
msgid "#<invalid error code>"
msgstr ""
-#: bfd.c:2019
+#: bfd.c:2198
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr ""
-#: bfd.c:2032
+#: bfd.c:2211
#, c-format
-msgid "BFD %s internal error, aborting at %s:%d in %s\n"
+msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
msgstr ""
-#: bfd.c:2037
+#: bfd.c:2215
#, c-format
-msgid "BFD %s internal error, aborting at %s:%d\n"
-msgstr ""
-
-#: bfd.c:2039
-msgid "Please report this bug.\n"
+msgid "%s: BFD %s internal error, aborting at %s:%d\n"
msgstr ""
-#: bfdwin.c:261
+#: bfd.c:2218
#, c-format
-msgid "not mapping: data=%lx mapped=%d\n"
-msgstr ""
-
-#: bfdwin.c:264
-#, c-format
-msgid "not mapping: env var not set\n"
+msgid "Please report this bug.\n"
msgstr ""
#: binary.c:277
@@ -264,7 +260,7 @@ msgstr ""
msgid "warning: writing section `%pA' at huge (ie negative) file offset"
msgstr ""
-#: cache.c:275
+#: cache.c:290
#, c-format
msgid "reopening %pB: %s"
msgstr ""
@@ -280,19 +276,19 @@ msgstr ""
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:13189
-#: elfxx-mips.c:13520 reloc.c:8683 reloc16.c:314
+#: 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
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
msgstr ""
-#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13530
-#: reloc.c:8693
+#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13532
+#: reloc.c:8713
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
msgstr ""
-#: coff-alpha.c:1163 elfxx-mips.c:13539 reloc.c:8702
+#: coff-alpha.c:1163 elfxx-mips.c:13541 reloc.c:8722
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr ""
@@ -539,12 +535,12 @@ msgstr ""
msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr ""
-#: coffgen.c:255 elf.c:1226
+#: coffgen.c:255 elf.c:1030
#, c-format
msgid "%pB: unable to compress section %s"
msgstr ""
-#: coffgen.c:265 elf.c:1236
+#: coffgen.c:265 elf.c:1040
#, c-format
msgid "%pB: unable to decompress section %s"
msgstr ""
@@ -555,7 +551,7 @@ msgid "%pB: bad string table size %<PRIu64>"
msgstr ""
#: coffgen.c:1931 coffgen.c:1981 coffgen.c:2031 coffgen.c:2050 cofflink.c:2012
-#: elf.c:2478 xcofflink.c:5532
+#: elf.c:2288 xcofflink.c:5538
msgid "<corrupt>"
msgstr ""
@@ -564,16 +560,16 @@ msgstr ""
msgid "<corrupt info> %s"
msgstr ""
-#: coffgen.c:2796 elflink.c:15219 linker.c:2985
+#: coffgen.c:2796 elflink.c:15466 linker.c:2987
msgid "%F%P: already_linked_table: %E\n"
msgstr ""
-#: coffgen.c:3138 elflink.c:14159
+#: coffgen.c:3138 elflink.c:14404
#, c-format
msgid "removing unused section '%pA' in file '%pB'"
msgstr ""
-#: coffgen.c:3215 elflink.c:14389
+#: coffgen.c:3215 elflink.c:14635
msgid "warning: gc-sections option ignored"
msgstr ""
@@ -582,7 +578,7 @@ msgstr ""
msgid "warning: symbol `%s' is both section and non-section"
msgstr ""
-#: cofflink.c:503 elf64-ia64-vms.c:5200 elflink.c:5407
+#: cofflink.c:503 elf64-ia64-vms.c:5199 elflink.c:5559
#, c-format
msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
msgstr ""
@@ -592,7 +588,7 @@ msgstr ""
msgid "%pB: relocs in section `%pA', but it has no contents"
msgstr ""
-#: cofflink.c:2403 elflink.c:11600
+#: cofflink.c:2403 elflink.c:11802
#, c-format
msgid ""
"%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%"
@@ -624,18 +620,12 @@ msgstr ""
msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
msgstr ""
-#: compress.c:744 compress.c:761
+#: compress.c:748 compress.c:765 libbfd.c:1329
#, c-format
msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
msgstr ""
-#: cpu-arm.c:320 cpu-arm.c:332
-#, c-format
-msgid ""
-"error: %pB is compiled for the EP9312, whereas %pB is compiled for XScale"
-msgstr ""
-
-#: cpu-arm.c:469
+#: cpu-arm.c:438
#, c-format
msgid "warning: unable to update contents of %s section in %pB"
msgstr ""
@@ -675,165 +665,165 @@ msgstr ""
msgid "DWARF error: mangled line number section (bad file number)"
msgstr ""
-#: dwarf2.c:2585
+#: dwarf2.c:2607
msgid "DWARF error: zero format count"
msgstr ""
-#: dwarf2.c:2595
+#: dwarf2.c:2617
#, c-format
msgid "DWARF error: data count (%<PRIx64>) larger than buffer size"
msgstr ""
-#: dwarf2.c:2634
+#: dwarf2.c:2656
#, c-format
msgid "DWARF error: unknown format content type %<PRIu64>"
msgstr ""
-#: dwarf2.c:2707
+#: dwarf2.c:2729
#, c-format
msgid "DWARF error: line info section is too small (%<PRId64>)"
msgstr ""
-#: dwarf2.c:2734
+#: dwarf2.c:2756
#, c-format
msgid ""
"DWARF error: line info data is bigger (%#<PRIx64>) than the space remaining "
"in the section (%#lx)"
msgstr ""
-#: dwarf2.c:2747
+#: dwarf2.c:2769
#, c-format
msgid "DWARF error: unhandled .debug_line version %d"
msgstr ""
-#: dwarf2.c:2756
+#: dwarf2.c:2778
msgid "DWARF error: ran out of room reading prologue"
msgstr ""
-#: dwarf2.c:2772
+#: dwarf2.c:2794
#, c-format
msgid "DWARF error: line info unsupported segment selector size %u"
msgstr ""
-#: dwarf2.c:2794
+#: dwarf2.c:2816
msgid "DWARF error: invalid maximum operations per instruction"
msgstr ""
-#: dwarf2.c:2806
+#: dwarf2.c:2828
msgid "DWARF error: ran out of room reading opcodes"
msgstr ""
-#: dwarf2.c:2984
+#: dwarf2.c:3005
msgid "DWARF error: mangled line number section"
msgstr ""
-#: dwarf2.c:3455
+#: dwarf2.c:3476
msgid "DWARF error: abstract instance recursion detected"
msgstr ""
-#: dwarf2.c:3489 dwarf2.c:3579
+#: dwarf2.c:3510 dwarf2.c:3600
msgid "DWARF error: invalid abstract instance DIE ref"
msgstr ""
-#: dwarf2.c:3505
+#: dwarf2.c:3526
#, c-format
msgid "DWARF error: unable to read alt ref %<PRIu64>"
msgstr ""
-#: dwarf2.c:3557
+#: dwarf2.c:3578
#, c-format
msgid "DWARF error: unable to locate abstract instance DIE ref %<PRIu64>"
msgstr ""
-#: dwarf2.c:3594 dwarf2.c:3910 dwarf2.c:4483
+#: dwarf2.c:3615 dwarf2.c:3931 dwarf2.c:4504
#, c-format
msgid "DWARF error: could not find abbrev number %u"
msgstr ""
-#: dwarf2.c:4183
+#: dwarf2.c:4204
#, c-format
msgid "DWARF error: could not find variable specification at offset 0x%lx"
msgstr ""
-#: dwarf2.c:4329 dwarf2.c:4583
+#: dwarf2.c:4350 dwarf2.c:4604
msgid ""
"DWARF error: DW_AT_comp_dir attribute encountered with a non-string form"
msgstr ""
-#: dwarf2.c:4400
+#: dwarf2.c:4421
#, c-format
msgid ""
"DWARF error: found dwarf version '%u', this reader only handles version 2, "
"3, 4 and 5 information"
msgstr ""
-#: dwarf2.c:4447
+#: dwarf2.c:4468
#, c-format
msgid ""
"DWARF error: found address size '%u', this reader can not handle sizes "
"greater than '%u'"
msgstr ""
-#: ecoff.c:1016
+#: ecoff.c:1017
#, c-format
msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
msgstr ""
-#: ecoff.c:1312
+#: ecoff.c:1313
#, c-format
msgid "unknown basic type %d"
msgstr ""
-#: ecoff.c:1568
+#: ecoff.c:1569
#, c-format
msgid ""
"\n"
" End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1575 ecoff.c:1578
+#: ecoff.c:1576 ecoff.c:1579
#, c-format
msgid ""
"\n"
" First symbol: %ld"
msgstr ""
-#: ecoff.c:1593
+#: ecoff.c:1594
#, c-format
msgid ""
"\n"
" End+1 symbol: %-7ld Type: %s"
msgstr ""
-#: ecoff.c:1601
+#: ecoff.c:1602
#, c-format
msgid ""
"\n"
" Local symbol: %ld"
msgstr ""
-#: ecoff.c:1609
+#: ecoff.c:1610
#, c-format
msgid ""
"\n"
" struct; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1614
+#: ecoff.c:1615
#, c-format
msgid ""
"\n"
" union; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1619
+#: ecoff.c:1620
#, c-format
msgid ""
"\n"
" enum; End+1 symbol: %ld"
msgstr ""
-#: ecoff.c:1627
+#: ecoff.c:1628
#, c-format
msgid ""
"\n"
@@ -926,7 +916,7 @@ msgstr ""
#. xgettext:c-format.
#: elf-ifunc.c:144
-#: elfnn-loongarch.c:1427
+#: elfnn-loongarch.c:1624
#, c-format
msgid ""
"%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can "
@@ -938,30 +928,30 @@ msgstr ""
#: 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:2837 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:6093
+#: 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:3372 elf32-v850.c:2294 elf32-visium.c:680
-#: elf32-xstormy16.c:930 elf64-bpf.c:339 elf64-mmix.c:1541 elfxx-tilegx.c:3742
+#: 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
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:2841 elf32-m68hc1x.c:1275
+#: 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:6097 elf32-or1k.c:1901
+#: 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:3376 elf32-v850.c:2298 elf32-visium.c:684
-#: elf32-xstormy16.c:934 elf64-mmix.c:1545 elfxx-mips.c:10658
-#: elfxx-tilegx.c:3746
+#: 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
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:2845 elf32-m68hc1x.c:1279
-#: elf32-microblaze.c:1690 elf32-nds32.c:6101 elf32-score.c:2742
+#: 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
msgid "internal error: dangerous error"
msgstr ""
@@ -970,12 +960,12 @@ msgstr ""
#: 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:2849 elf32-m68hc1x.c:1283 elf32-mep.c:534 elf32-metag.c:1996
+#: 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:6105 elf32-or1k.c:1909 elf32-score.c:2751
-#: elf32-score7.c:2557 elf32-spu.c:5097 elf32-tilepro.c:3384 elf32-v850.c:2318
+#: 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:3754
+#: elfxx-tilegx.c:3755
msgid "internal error: unknown error"
msgstr ""
@@ -989,13 +979,13 @@ msgstr ""
msgid "%pB: %s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf-m10300.c:2093 elf32-arm.c:13398 elf32-i386.c:3494 elf32-m32r.c:2331
-#: elf32-m68k.c:3929 elf32-s390.c:3080 elf32-sh.c:3673 elf32-tilepro.c:3275
-#: elf32-xtensa.c:3023 elf64-s390.c:3042 elf64-x86-64.c:4369
-#: elfxx-sparc.c:2917 elfxx-sparc.c:3814 elfxx-tilegx.c:3665
-#: elfnn-aarch64.c:5713
-#: elfnn-aarch64.c:7322
-#: elfnn-kvx.c:2775
+#: 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
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr ""
@@ -1017,8 +1007,8 @@ msgstr ""
msgid "internal error: suspicious relocation type used in shared library"
msgstr ""
-#: elf-m10300.c:2650 elf32-avr.c:2488 elf32-frv.c:5621 elf64-ia64-vms.c:365
-#: elfxx-sparc.c:2684 reloc.c:8457 reloc16.c:155
+#: 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
msgid "%P%F: --relax and -r may not be used together\n"
msgstr ""
@@ -1086,11 +1076,11 @@ msgstr ""
msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n"
msgstr ""
-#: elf-properties.c:668 elfxx-aarch64.c:758 elfxx-x86.c:4147
+#: elf-properties.c:668 elfxx-aarch64.c:758 elfxx-x86.c:4189
msgid "%F%P: failed to create GNU property section\n"
msgstr ""
-#: elf-properties.c:672 elfxx-aarch64.c:762 elfxx-x86.c:4152
+#: elf-properties.c:672 elfxx-aarch64.c:762 elfxx-x86.c:4194
#, c-format
msgid "%F%pA: failed to align section\n"
msgstr ""
@@ -1119,223 +1109,212 @@ msgid ""
"generation"
msgstr ""
+#: elf.c:305
+#, c-format
+msgid "%pB(%pA): string table is corrupt"
+msgstr ""
+
#. PR 17512: file: f057ec89.
-#: elf.c:328
+#: elf.c:335
#, c-format
msgid "%pB: attempt to load strings from a non-string section (number %d)"
msgstr ""
-#: elf.c:353
+#: elf.c:360
#, c-format
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
msgstr ""
-#: elf.c:517 elf32-arm.c:17731
-#: elfnn-aarch64.c:8322
-#: elfnn-loongarch.c:5102
+#: elf.c:518 elf32-arm.c:17695
+#: elfnn-aarch64.c:8344
+#: elfnn-loongarch.c:5920
#, c-format
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr ""
-#: elf.c:679
+#: elf.c:614
#, c-format
-msgid "%pB: invalid size field in group section header: %#<PRIx64>"
+msgid "%pB: could not read contents of group [%u]"
msgstr ""
-#: elf.c:724
+#: elf.c:645
#, c-format
-msgid "%pB: invalid entry in SHT_GROUP section [%u]"
+msgid "%pB: invalid entry (%#x) in group [%u]"
msgstr ""
-#: elf.c:743
+#: elf.c:664
#, c-format
-msgid "%pB: no valid group sections found"
+msgid "%pB: unexpected type (%#x) section `%s' in group [%u]"
msgstr ""
-#. See PR 21957 for a reproducer.
-#: elf.c:772
-#, c-format
-msgid "%pB: group section '%pA' has no contents"
-msgstr ""
-
-#: elf.c:833
-#, c-format
-msgid "%pB: no group info for section '%pA'"
-msgstr ""
-
-#: elf.c:885
+#: elf.c:740
#, c-format
msgid "%pB: sh_link [%d] in section `%pA' is incorrect"
msgstr ""
-#: elf.c:898
-#, c-format
-msgid "%pB: SHT_GROUP section [index %d] has no SHF_GROUP sections"
-msgstr ""
-
-#: elf.c:920
+#: elf.c:769
#, c-format
msgid "%pB: section group entry number %u is corrupt"
msgstr ""
-#: elf.c:943
-#, c-format
-msgid "%pB: unknown type [%#x] section `%s' in group [%pA]"
-msgstr ""
-
-#: elf.c:1244
+#: elf.c:1048
#, c-format
msgid ""
"%pB: section %s is compressed with zstd, but BFD is not built with zstd "
"support"
msgstr ""
-#: elf.c:1440
+#: elf.c:1234
#, c-format
msgid "%pB: invalid sh_link field (%d) in section number %d"
msgstr ""
-#: elf.c:1456
+#: elf.c:1250
#, c-format
msgid "%pB: failed to find link section for section %d"
msgstr ""
-#: elf.c:1483
+#: elf.c:1277
#, c-format
msgid "%pB: failed to find info section for section %d"
msgstr ""
-#: elf.c:1660
+#: elf.c:1454
#, c-format
msgid ""
"\n"
"Program Header:\n"
msgstr ""
-#: elf.c:1702
+#: elf.c:1496
#, c-format
msgid ""
"\n"
"Dynamic Section:\n"
msgstr ""
-#: elf.c:1841
+#: elf.c:1635
#, c-format
msgid ""
"\n"
"Version definitions:\n"
msgstr ""
-#: elf.c:1866
+#: elf.c:1660
#, c-format
msgid ""
"\n"
"Version References:\n"
msgstr ""
-#: elf.c:1871
+#: elf.c:1665
#, c-format
msgid " required from %s:\n"
msgstr ""
-#: elf.c:2614
+#: elf.c:1916
+#, c-format
+msgid "%pB: DT_STRTAB table is corrupt"
+msgstr ""
+
+#: elf.c:2424
#, c-format
msgid "%pB: warning: loop in section dependencies detected"
msgstr ""
-#: elf.c:2721
+#: elf.c:2531
#, c-format
msgid ""
"%pB: warning: multiple symbol tables detected - ignoring the table in "
"section %u"
msgstr ""
-#: elf.c:2806
+#: elf.c:2616
#, c-format
msgid ""
"%pB: warning: multiple dynamic symbol tables detected - ignoring the table "
"in section %u"
msgstr ""
-#: elf.c:2925
+#: elf.c:2735
#, c-format
msgid "%pB: invalid link %u for reloc section %s (index %u)"
msgstr ""
-#: elf.c:2982
+#: elf.c:2792
#, c-format
msgid ""
"%pB: warning: secondary relocation section '%s' for section %pA found - "
"ignoring"
msgstr ""
-#: elf.c:3070 elf.c:3084 elf.c:3095 elf.c:3108
+#: elf.c:2877 elf.c:2891 elf.c:2902 elf.c:2915
#, c-format
msgid "%pB: unknown type [%#x] section `%s'"
msgstr ""
-#: elf.c:3770
+#: elf.c:3577
#, c-format
msgid "%pB: error: alignment power %d of section `%pA' is too big"
msgstr ""
-#: elf.c:3805
+#: elf.c:3612
#, c-format
msgid "warning: section `%pA' type changed to PROGBITS"
msgstr ""
-#: elf.c:4311
+#: elf.c:4118
#, c-format
msgid "%pB: too many sections: %u"
msgstr ""
-#: elf.c:4397
+#: elf.c:4204
#, c-format
msgid ""
"%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
msgstr ""
-#: elf.c:4415
+#: elf.c:4222
#, c-format
msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
msgstr ""
-#: elf.c:5009
+#: elf.c:4814
#, c-format
msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
msgstr ""
-#: elf.c:5192
+#: elf.c:4997
msgid "%F%P: failed to size relative relocations\n"
msgstr ""
-#: elf.c:5617
+#: elf.c:5424
#, c-format
msgid "%pB: TLS sections are not adjacent:"
msgstr ""
-#: elf.c:5624
+#: elf.c:5431
#, c-format
msgid "\t TLS: %pA"
msgstr ""
-#: elf.c:5628
+#: elf.c:5435
#, c-format
msgid "\tnon-TLS: %pA"
msgstr ""
-#: elf.c:6256
+#: elf.c:6063
#, c-format
msgid ""
"%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr ""
-#: elf.c:6282
+#: elf.c:6089
#, c-format
msgid "%pB: not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:6399
+#: elf.c:6206
#, c-format
msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
msgstr ""
@@ -1343,201 +1322,201 @@ msgstr ""
#. 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:6539
+#: elf.c:6346
#, c-format
msgid "%pB: error: PHDR segment not covered by LOAD segment"
msgstr ""
-#: elf.c:6579
+#: elf.c:6386
#, c-format
msgid "%pB: section `%pA' can't be allocated in segment %d"
msgstr ""
-#: elf.c:6720
+#: elf.c:6527
#, c-format
msgid "%pB: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:6855
+#: elf.c:6662
#, c-format
msgid "%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment"
msgstr ""
-#: elf.c:6886
+#: elf.c:6693
#, c-format
msgid ""
"%pB: error: non-load segment %d includes file header and/or program header"
msgstr ""
-#: elf.c:7034
+#: elf.c:6841
#, c-format
msgid "error: %pB has a TLS segment with execute permission"
msgstr ""
-#: elf.c:7040
+#: elf.c:6847
#, c-format
msgid "warning: %pB has a TLS segment with execute permission"
msgstr ""
-#: elf.c:7055
+#: elf.c:6862
#, c-format
msgid "error: %pB has a LOAD segment with RWX permissions"
msgstr ""
-#: elf.c:7061
+#: elf.c:6868
#, c-format
msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr ""
-#: elf.c:7454
+#: elf.c:7261
#, c-format
msgid "%pB: symbol `%s' required but not present"
msgstr ""
-#: elf.c:7832
+#: elf.c:7638
#, c-format
msgid ""
"%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this "
"intentional?"
msgstr ""
-#: elf.c:8492
+#: elf.c:8311
#, c-format
msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
msgstr ""
-#: elf.c:9000
+#: elf.c:8815
#, c-format
msgid ""
"%pB: Unable to handle section index %x in ELF symbol. Using ABS instead."
msgstr ""
-#: elf.c:9030
+#: elf.c:8845
#, c-format
msgid ""
"unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:9464
+#: elf.c:9280
#, c-format
msgid "%pB: .gnu.version_r invalid entry"
msgstr ""
-#: elf.c:9639
+#: elf.c:9459
#, c-format
msgid "%pB: .gnu.version_d invalid entry"
msgstr ""
-#: elf.c:10139
+#: elf.c:9963
#, c-format
msgid "%pB:%pA: error: attempting to write over the end of the section"
msgstr ""
-#: elf.c:10151
+#: elf.c:9975
#, c-format
msgid "%pB:%pA: error: attempting to write section into an empty buffer"
msgstr ""
-#: elf.c:10266 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7676
-#: elf32-ppc.c:8864 elf64-ppc.c:16839
+#: elf.c:10090 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7677
+#: elf32-ppc.c:8865 elf64-ppc.c:16844
#, c-format
msgid "%pB: %s unsupported"
msgstr ""
-#: elf.c:11079
+#: elf.c:10903
#, c-format
msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small"
msgstr ""
-#: elf.c:11158
+#: elf.c:10982
#, c-format
msgid ""
"%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a "
"name of size %u"
msgstr ""
-#: elf.c:13796
+#: elf.c:13620
msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13799
+#: elf.c:13623
msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13802
+#: elf.c:13626
msgid ""
"symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:13805
+#: elf.c:13629
msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: elf.c:14023
+#: elf.c:13847
#, c-format
msgid "%pB(%pA): relocation %zu has invalid symbol index %lu"
msgstr ""
-#: elf.c:14099
+#: elf.c:13923
#, c-format
msgid ""
"%pB(%pA): link section cannot be set because the output file does not have a "
"symbol table"
msgstr ""
-#: elf.c:14113
+#: elf.c:13937
#, c-format
msgid "%pB(%pA): info section index is invalid"
msgstr ""
-#: elf.c:14127
+#: elf.c:13951
#, c-format
msgid ""
"%pB(%pA): info section index cannot be set because the section is not in the "
"output"
msgstr ""
-#: elf.c:14203
+#: elf.c:14027
#, c-format
msgid "%pB(%pA): error: secondary reloc section processed twice"
msgstr ""
-#: elf.c:14215
+#: elf.c:14039
#, c-format
msgid "%pB(%pA): error: secondary reloc section has zero sized entries"
msgstr ""
-#: elf.c:14227
+#: elf.c:14051
#, c-format
msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries"
msgstr ""
-#: elf.c:14241
+#: elf.c:14065
#, c-format
msgid "%pB(%pA): error: secondary reloc section is empty!"
msgstr ""
-#: elf.c:14264
+#: elf.c:14088
#, c-format
msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
msgstr ""
-#: elf.c:14284
+#: elf.c:14108
#, c-format
msgid "%pB(%pA): error: reloc table entry %zu is empty"
msgstr ""
-#: elf.c:14309
+#: elf.c:14133
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a missing symbol"
msgstr ""
-#: elf.c:14327
+#: elf.c:14151
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a deleted symbol"
msgstr ""
-#: elf.c:14341
+#: elf.c:14165
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu is of an unknown type"
msgstr ""
@@ -1546,10 +1525,10 @@ msgstr ""
#. 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:15125 elf32-frv.c:6612 elf32-iq2000.c:868
+#: elf32-arc.c:455 elf32-arm.c:15116 elf32-frv.c:6613 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:5513
-#: elfnn-aarch64.c:7552
+#: elf32-visium.c:844 elf64-ppc.c:5527
+#: elfnn-aarch64.c:7574
#, c-format
msgid "private flags = 0x%lx:"
msgstr ""
@@ -1596,7 +1575,7 @@ msgid ""
msgstr ""
#: elf32-arc.c:938 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1390
-#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15692
+#: elf32-ppc.c:3856 elf64-sparc.c:737 elfxx-mips.c:15694
#, c-format
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
@@ -1653,22 +1632,22 @@ msgstr ""
msgid "%pB(%pA): internal error: unknown error"
msgstr ""
-#: elf32-arc.c:2036 elf32-arc.c:2104 elf32-arm.c:15580 elf32-metag.c:2251
-#: elf32-nds32.c:5543
-#: elfnn-aarch64.c:7959
-#: elfnn-riscv.c:720
+#: 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
#, c-format
msgid ""
"%pB: relocation %s against `%s' can not be used when making a shared object; "
"recompile with -fPIC"
msgstr ""
-#: elf32-arc.c:2923
+#: elf32-arc.c:2921
#, c-format
msgid "%pB: unknown mandatory ARC object attribute %d"
msgstr ""
-#: elf32-arc.c:2931
+#: elf32-arc.c:2929
#, c-format
msgid "warning: %pB: unknown ARC object attribute %d"
msgstr ""
@@ -1681,7 +1660,7 @@ msgid ""
"movw instruction"
msgstr ""
-#: elf32-arm.c:4411 elf32-arm.c:4465 elf32-arm.c:9163 elf32-arm.c:9253
+#: elf32-arm.c:4411 elf32-arm.c:4465 elf32-arm.c:9162 elf32-arm.c:9252
#, c-format
msgid ""
"%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call "
@@ -1700,19 +1679,19 @@ msgstr ""
msgid "no address assigned to the veneers output section %s"
msgstr ""
-#: elf32-arm.c:4835 elf32-arm.c:6984 elf32-csky.c:3389 elf32-hppa.c:582
-#: elf32-m68hc1x.c:164 elf32-metag.c:1180 elf32-nios2.c:2201 elf64-ppc.c:3907
-#: elf64-ppc.c:14157
-#: elfnn-aarch64.c:3203
+#: 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
#, c-format
msgid "%pB: cannot create stub entry %s"
msgstr ""
-#: elf32-arm.c:5056 elf32-csky.c:3731 elf32-hppa.c:732 elf32-hppa.c:761
+#: 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:2494 elf64-ppc.c:12273 elf64-ppc.c:12281 xcofflink.c:4684
-#: elfnn-aarch64.c:3275
+#: elf32-nios2.c:2492 elf64-ppc.c:12283 elf64-ppc.c:12291 xcofflink.c:4684
+#: elfnn-aarch64.c:3288
msgid ""
"%F%P: Could not assign `%pA' to an output section. Retry without --enable-"
"non-contiguous-regions.\n"
@@ -1808,32 +1787,32 @@ msgstr ""
msgid "unable to find %s glue '%s' for '%s'"
msgstr ""
-#: elf32-arm.c:7868
+#: elf32-arm.c:7867
#, c-format
msgid "%pB: BE8 images only valid in big-endian mode"
msgstr ""
#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:8096
+#: elf32-arm.c:8095
#, c-format
msgid ""
"%pB: warning: selected VFP11 erratum workaround is not necessary for target "
"architecture"
msgstr ""
-#: elf32-arm.c:8123
+#: elf32-arm.c:8122
#, c-format
msgid ""
"%pB: warning: selected STM32L4XX erratum workaround is not necessary for "
"target architecture"
msgstr ""
-#: elf32-arm.c:8659 elf32-arm.c:8679 elf32-arm.c:8746 elf32-arm.c:8765
+#: elf32-arm.c:8658 elf32-arm.c:8678 elf32-arm.c:8745 elf32-arm.c:8764
#, c-format
msgid "%pB: unable to find %s veneer `%s'"
msgstr ""
-#: elf32-arm.c:8972
+#: elf32-arm.c:8971
#, c-format
msgid ""
"%pB(%pA+%#x): error: multiple load detected in non-last IT block "
@@ -1841,489 +1820,479 @@ msgid ""
"it to generate only one instruction per IT block"
msgstr ""
-#: elf32-arm.c:9070
+#: elf32-arm.c:9069
#, c-format
msgid "invalid TARGET2 relocation type '%s'"
msgstr ""
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
-#: elf32-arm.c:9840
+#: elf32-arm.c:9838
#, c-format
msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
msgstr ""
-#: elf32-arm.c:10149 elf32-arm.c:10191
+#: elf32-arm.c:10147 elf32-arm.c:10189
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
msgstr ""
-#: elf32-arm.c:10541
+#: elf32-arm.c:10537
msgid "shared object"
msgstr ""
-#: elf32-arm.c:10544
+#: elf32-arm.c:10540
msgid "PIE executable"
msgstr ""
-#: elf32-arm.c:10547
+#: elf32-arm.c:10543
#, c-format
msgid ""
"%pB: relocation %s against external or undefined symbol `%s' can not be used "
"when making a %s; recompile with -fPIC"
msgstr ""
-#: elf32-arm.c:10649
+#: elf32-arm.c:10645
#, c-format
msgid "\\%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
-#: elf32-arm.c:11066
+#: elf32-arm.c:11062
#, c-format
msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr ""
-#: elf32-arm.c:11700
+#: elf32-arm.c:11696
#, c-format
msgid ""
"%pB: expected symbol index in range 0..%lu but found local symbol with index "
"%lu"
msgstr ""
-#: elf32-arm.c:11975 elf32-arm.c:12001
+#: elf32-arm.c:11971 elf32-arm.c:11997
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by "
"TLS_GOTDESC"
msgstr ""
-#: elf32-arm.c:12047 elf32-csky.c:4959 elf32-m68k.c:3733 elf32-metag.c:1913
-#: elf32-nios2.c:4377
+#: elf32-arm.c:12043 elf32-csky.c:4957 elf32-m68k.c:3734 elf32-metag.c:1913
+#: elf32-nios2.c:4375
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
msgstr ""
-#: elf32-arm.c:12261
+#: elf32-arm.c:12257
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group "
"relocations"
msgstr ""
-#: elf32-arm.c:12302 elf32-arm.c:12394 elf32-arm.c:12482 elf32-arm.c:12572
+#: elf32-arm.c:12298 elf32-arm.c:12390 elf32-arm.c:12478 elf32-arm.c:12568
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group "
"relocation %s"
msgstr ""
-#: elf32-arm.c:12630 elf32-arm.c:12789
+#: elf32-arm.c:12626 elf32-arm.c:12785
msgid "local symbol index too big"
msgstr ""
-#: elf32-arm.c:12640 elf32-arm.c:12674
+#: elf32-arm.c:12636 elf32-arm.c:12670
msgid "no dynamic index information available"
msgstr ""
-#: elf32-arm.c:12682
+#: elf32-arm.c:12678
msgid "invalid dynamic index"
msgstr ""
-#: elf32-arm.c:12799
+#: elf32-arm.c:12795
msgid "dynamic index information not available"
msgstr ""
-#: elf32-arm.c:13230 elf32-sh.c:3567
+#: elf32-arm.c:13226 elf32-sh.c:3568
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
msgstr ""
-#: elf32-arm.c:13343 elf32-m68k.c:3966 elf32-xtensa.c:2761
-#: elfnn-aarch64.c:7049
-#: elfnn-kvx.c:2571
+#: elf32-arm.c:13339 elf32-m68k.c:3967 elf32-xtensa.c:2760
+#: elfnn-aarch64.c:7071
+#: elfnn-kvx.c:2569
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
msgstr ""
-#: elf32-arm.c:13345 elf32-m68k.c:3968 elf32-xtensa.c:2763
-#: elfnn-aarch64.c:7051
-#: elfnn-kvx.c:2573
+#: elf32-arm.c:13341 elf32-m68k.c:3969 elf32-xtensa.c:2762
+#: elfnn-aarch64.c:7073
+#: elfnn-kvx.c:2571
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
msgstr ""
-#: elf32-arm.c:13428 elf32-tic6x.c:2649
-#: elfnn-aarch64.c:7386
-#: elfnn-kvx.c:2800
+#: elf32-arm.c:13424 elf32-tic6x.c:2649
+#: elfnn-aarch64.c:7408
+#: elfnn-kvx.c:2798
msgid "out of range"
msgstr ""
-#: elf32-arm.c:13432 elf32-nios2.c:4511 elf32-pru.c:936 elf32-tic6x.c:2653
-#: elfnn-aarch64.c:7390
-#: elfnn-kvx.c:2804
+#: elf32-arm.c:13428 elf32-nios2.c:4509 elf32-pru.c:936 elf32-tic6x.c:2653
+#: elfnn-aarch64.c:7412
+#: elfnn-kvx.c:2802
msgid "unsupported relocation"
msgstr ""
-#: elf32-arm.c:13440 elf32-nios2.c:4521 elf32-pru.c:946 elf32-tic6x.c:2661
-#: elfnn-aarch64.c:7398
-#: elfnn-kvx.c:2812
+#: elf32-arm.c:13436 elf32-nios2.c:4519 elf32-pru.c:946 elf32-tic6x.c:2661
+#: elfnn-aarch64.c:7420
+#: elfnn-kvx.c:2810
msgid "unknown error"
msgstr ""
-#: elf32-arm.c:13922
+#: elf32-arm.c:13913
#, c-format
msgid ""
"warning: not setting interworking flag of %pB since it has already been "
"specified as non-interworking"
msgstr ""
-#: elf32-arm.c:13926
+#: elf32-arm.c:13917
#, c-format
msgid "warning: clearing the interworking flag of %pB due to outside request"
msgstr ""
-#: elf32-arm.c:13971
+#: elf32-arm.c:13962
#, c-format
msgid ""
"warning: clearing the interworking flag of %pB because non-interworking code "
"in %pB has been linked with it"
msgstr ""
-#: elf32-arm.c:14058
+#: elf32-arm.c:14049
#, c-format
msgid "%pB: unknown mandatory EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:14066
+#: elf32-arm.c:14057
#, c-format
msgid "warning: %pB: unknown EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:14401
+#: elf32-arm.c:14392
#, c-format
msgid "error: %pB: unknown CPU architecture"
msgstr ""
-#: elf32-arm.c:14439
+#: elf32-arm.c:14430
#, c-format
msgid "error: conflicting CPU architectures %s vs %s in %pB"
msgstr ""
-#: elf32-arm.c:14536
+#: elf32-arm.c:14527
#, c-format
msgid ""
"Error: %pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:14573
+#: elf32-arm.c:14564
#, c-format
msgid "error: %pB uses VFP register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:14743
+#: elf32-arm.c:14734
#, c-format
msgid "error: %pB: unable to merge virtualization attributes with %pB"
msgstr ""
-#: elf32-arm.c:14769
+#: elf32-arm.c:14760
#, c-format
msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr ""
-#: elf32-arm.c:14908
+#: elf32-arm.c:14899
#, c-format
msgid "warning: %pB: conflicting platform configuration"
msgstr ""
-#: elf32-arm.c:14917
+#: elf32-arm.c:14908
#, c-format
msgid "error: %pB: conflicting use of R9"
msgstr ""
-#: elf32-arm.c:14929
+#: elf32-arm.c:14920
#, c-format
msgid "error: %pB: SB relative addressing conflicts with use of R9"
msgstr ""
-#: elf32-arm.c:14942
+#: elf32-arm.c:14933
#, 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 ""
-#: elf32-arm.c:14973
+#: elf32-arm.c:14964
#, 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 ""
-#: elf32-arm.c:14985
+#: elf32-arm.c:14976
#, c-format
msgid "error: %pB uses iWMMXt register arguments, %pB does not"
msgstr ""
-#: elf32-arm.c:15002
+#: elf32-arm.c:14993
#, c-format
msgid "error: fp16 format mismatch between %pB and %pB"
msgstr ""
-#: elf32-arm.c:15038
+#: elf32-arm.c:15029
#, c-format
msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
-#: elf32-arm.c:15134
+#: elf32-arm.c:15125
#, c-format
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.c:15142
+#: elf32-arm.c:15133
#, c-format
msgid " [VFP float format]"
msgstr ""
-#: elf32-arm.c:15144
-#, c-format
-msgid " [Maverick float format]"
-msgstr ""
-
-#: elf32-arm.c:15146
+#: elf32-arm.c:15135
#, c-format
msgid " [FPA float format]"
msgstr ""
-#: elf32-arm.c:15149
+#: elf32-arm.c:15138
#, c-format
msgid " [floats passed in float registers]"
msgstr ""
-#: elf32-arm.c:15152 elf32-arm.c:15238
+#: elf32-arm.c:15141 elf32-arm.c:15226
#, c-format
msgid " [position independent]"
msgstr ""
-#: elf32-arm.c:15155
+#: elf32-arm.c:15144
#, c-format
msgid " [new ABI]"
msgstr ""
-#: elf32-arm.c:15158
+#: elf32-arm.c:15147
#, c-format
msgid " [old ABI]"
msgstr ""
-#: elf32-arm.c:15161
+#: elf32-arm.c:15150
#, c-format
msgid " [software FP]"
msgstr ""
-#: elf32-arm.c:15170
+#: elf32-arm.c:15158
#, c-format
msgid " [Version1 EABI]"
msgstr ""
-#: elf32-arm.c:15173 elf32-arm.c:15184
+#: elf32-arm.c:15161 elf32-arm.c:15172
#, c-format
msgid " [sorted symbol table]"
msgstr ""
-#: elf32-arm.c:15175 elf32-arm.c:15186
+#: elf32-arm.c:15163 elf32-arm.c:15174
#, c-format
msgid " [unsorted symbol table]"
msgstr ""
-#: elf32-arm.c:15181
+#: elf32-arm.c:15169
#, c-format
msgid " [Version2 EABI]"
msgstr ""
-#: elf32-arm.c:15189
+#: elf32-arm.c:15177
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr ""
-#: elf32-arm.c:15192
+#: elf32-arm.c:15180
#, c-format
msgid " [mapping symbols precede others]"
msgstr ""
-#: elf32-arm.c:15199
+#: elf32-arm.c:15187
#, c-format
msgid " [Version3 EABI]"
msgstr ""
-#: elf32-arm.c:15203
+#: elf32-arm.c:15191
#, c-format
msgid " [Version4 EABI]"
msgstr ""
-#: elf32-arm.c:15207
+#: elf32-arm.c:15195
#, c-format
msgid " [Version5 EABI]"
msgstr ""
-#: elf32-arm.c:15210
+#: elf32-arm.c:15198
#, c-format
msgid " [soft-float ABI]"
msgstr ""
-#: elf32-arm.c:15213
+#: elf32-arm.c:15201
#, c-format
msgid " [hard-float ABI]"
msgstr ""
-#: elf32-arm.c:15219
+#: elf32-arm.c:15207
#, c-format
msgid " [BE8]"
msgstr ""
-#: elf32-arm.c:15222
+#: elf32-arm.c:15210
#, c-format
msgid " [LE8]"
msgstr ""
-#: elf32-arm.c:15228
+#: elf32-arm.c:15216
#, c-format
msgid " <EABI version unrecognised>"
msgstr ""
-#: elf32-arm.c:15235
+#: elf32-arm.c:15223
#, c-format
msgid " [relocatable executable]"
msgstr ""
-#: elf32-arm.c:15241
+#: elf32-arm.c:15229
#, c-format
msgid " [FDPIC ABI supplement]"
msgstr ""
-#: elf32-arm.c:15246
-#: elfnn-aarch64.c:7555
+#: elf32-arm.c:15234
+#: elfnn-aarch64.c:7577
#, c-format
msgid " <Unrecognised flag bits set>"
msgstr ""
-#: elf32-arm.c:15363 elf32-arm.c:15497 elf32-i386.c:1535 elf32-s390.c:923
+#: 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:2050 elfxx-sparc.c:1386 elfxx-tilegx.c:1662
+#: elf64-s390.c:845 elf64-x86-64.c:2094 elfxx-sparc.c:1386 elfxx-tilegx.c:1662
#: elfxx-x86.c:970
-#: elfnn-aarch64.c:7826
-#: elfnn-kvx.c:3250
-#: elfnn-loongarch.c:756
-#: elfnn-riscv.c:764
+#: elfnn-aarch64.c:7848
+#: elfnn-kvx.c:3248
+#: elfnn-loongarch.c:910
+#: elfnn-riscv.c:768
#, c-format
msgid "%pB: bad symbol index: %d"
msgstr ""
-#: elf32-arm.c:15753
+#: elf32-arm.c:15732
#, c-format
msgid ""
"FDPIC does not yet support %s relocation to become dynamic for executable"
msgstr ""
-#: elf32-arm.c:17027
+#: elf32-arm.c:16994
#, c-format
msgid "errors encountered processing file %pB"
msgstr ""
-#: elf32-arm.c:17400 elflink.c:13325 elflink.c:13372
+#: elf32-arm.c:17364 elflink.c:13561 elflink.c:13608
#, c-format
msgid "could not find section %s"
msgstr ""
-#: elf32-arm.c:18355
+#: elf32-arm.c:18319
#, c-format
msgid "%pB: Number of symbols in input file has increased from %lu to %u\n"
msgstr ""
-#: elf32-arm.c:18619
+#: elf32-arm.c:18583
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
msgstr ""
#. There's not much we can do apart from complain if this
#. happens.
-#: elf32-arm.c:18646
+#: elf32-arm.c:18610
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
-#: elf32-arm.c:19473 elf32-arm.c:19495
+#: elf32-arm.c:19437 elf32-arm.c:19459
#, c-format
msgid "%pB: error: VFP11 veneer out of range"
msgstr ""
-#: elf32-arm.c:19546
+#: elf32-arm.c:19510
#, c-format
msgid ""
"%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by "
"%<PRId64> bytes; cannot encode branch instruction"
msgstr ""
-#: elf32-arm.c:19585
+#: elf32-arm.c:19549
#, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
msgstr ""
-#: elf32-arm.c:20668
+#: elf32-arm.c:20632
#, c-format
msgid "error: %pB is already in final BE8 format"
msgstr ""
-#: elf32-arm.c:20745
+#: elf32-arm.c:20709
#, c-format
msgid ""
"error: source object %pB has EABI version %d, but target %pB has EABI "
"version %d"
msgstr ""
-#: elf32-arm.c:20760
+#: elf32-arm.c:20724
#, c-format
msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
msgstr ""
-#: elf32-arm.c:20770
+#: elf32-arm.c:20734
#, c-format
msgid ""
"error: %pB passes floats in float registers, whereas %pB passes them in "
"integer registers"
msgstr ""
-#: elf32-arm.c:20774
+#: elf32-arm.c:20738
#, c-format
msgid ""
"error: %pB passes floats in integer registers, whereas %pB passes them in "
"float registers"
msgstr ""
-#: elf32-arm.c:20784 elf32-arm.c:20788 elf32-arm.c:20798
+#: elf32-arm.c:20748 elf32-arm.c:20752
#, c-format
msgid "error: %pB uses %s instructions, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20802
-#, c-format
-msgid "error: %pB does not use %s instructions, whereas %pB does"
-msgstr ""
-
-#: elf32-arm.c:20821
+#: elf32-arm.c:20771
#, c-format
msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
msgstr ""
-#: elf32-arm.c:20825
+#: elf32-arm.c:20775
#, c-format
msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
msgstr ""
-#: elf32-arm.c:20839
+#: elf32-arm.c:20789
#, c-format
msgid "warning: %pB supports interworking, whereas %pB does not"
msgstr ""
-#: elf32-arm.c:20845
+#: elf32-arm.c:20795
#, c-format
msgid "warning: %pB does not support interworking, whereas %pB does"
msgstr ""
@@ -2342,7 +2311,7 @@ msgid ""
msgstr ""
#: elf32-avr.c:3340
-#: elfnn-aarch64.c:3234
+#: elfnn-aarch64.c:3247
#, c-format
msgid "cannot create stub entry %s"
msgstr ""
@@ -2356,8 +2325,8 @@ msgstr ""
msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-bfin.c:1621 elf32-i386.c:3534 elf32-m68k.c:4006 elf32-s390.c:3138
-#: elf64-s390.c:3118 elf64-x86-64.c:4424
+#: 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
#, c-format
msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
msgstr ""
@@ -2381,7 +2350,7 @@ msgstr ""
msgid "cannot emit fixups in read-only section"
msgstr ""
-#: elf32-bfin.c:2832 elf32-bfin.c:2960 elf32-lm32.c:1007 elf32-sh.c:4385
+#: elf32-bfin.c:2832 elf32-bfin.c:2960 elf32-lm32.c:1007 elf32-sh.c:4386
msgid "cannot emit dynamic relocations in read-only section"
msgstr ""
@@ -2400,41 +2369,41 @@ 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:3380
+#: 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:3750
+#: elf64-mmix.c:1549 elfxx-tilegx.c:3751
msgid "internal error: dangerous relocation"
msgstr ""
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-bfin.c:4728 elf32-cris.c:3862 elf32-m68hc1x.c:1415 elf32-m68k.c:1265
-#: elf32-score.c:3987 elf32-score7.c:3794 elf32-vax.c:536 elf32-xgate.c:494
-#: elfxx-mips.c:16378
+#: 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
#, c-format
msgid "private flags = %lx:"
msgstr ""
-#: elf32-bfin.c:4779 elf32-frv.c:6585
+#: elf32-bfin.c:4780 elf32-frv.c:6586
#, c-format
msgid "%pB: cannot link non-fdpic object file into fdpic executable"
msgstr ""
-#: elf32-bfin.c:4783 elf32-frv.c:6589
+#: elf32-bfin.c:4784 elf32-frv.c:6590
#, c-format
msgid "%pB: cannot link fdpic object file into non-fdpic executable"
msgstr ""
-#: elf32-bfin.c:4920
+#: elf32-bfin.c:4921
#, c-format
msgid "*** check this relocation %s"
msgstr ""
-#: elf32-bfin.c:5035
+#: elf32-bfin.c:5036
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
+#: elf32-bfin.c:5331 elf32-cr16.c:2721 elf32-m68k.c:4421
msgid "unsupported relocation type"
msgstr ""
@@ -2514,13 +2483,13 @@ msgid ""
"-mno-small-tls)"
msgstr ""
-#: elf32-cris.c:3051
+#: elf32-cris.c:3049
#, c-format
msgid ""
"%pB, section %pA: v10/v32 compatible object must not contain a PIC relocation"
msgstr ""
-#: elf32-cris.c:3105
+#: elf32-cris.c:3103
#, c-format
msgid ""
"%pB, section %pA:\n"
@@ -2528,57 +2497,57 @@ msgid ""
"recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3323
+#: elf32-cris.c:3321
#, c-format
msgid ""
"%pB, section %pA: relocation %s should not be used in a shared object; "
"recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3701
+#: elf32-cris.c:3700
#, c-format
msgid ""
"%pB, section `%pA', to symbol `%s': relocation %s should not be used in a "
"shared object; recompile with -fPIC"
msgstr ""
-#: elf32-cris.c:3813
+#: elf32-cris.c:3812
msgid "unexpected machine number"
msgstr ""
-#: elf32-cris.c:3865
+#: elf32-cris.c:3864
#, c-format
msgid " [symbols have a _ prefix]"
msgstr ""
-#: elf32-cris.c:3868
+#: elf32-cris.c:3867
#, c-format
msgid " [v10 and v32]"
msgstr ""
-#: elf32-cris.c:3871
+#: elf32-cris.c:3870
#, c-format
msgid " [v32]"
msgstr ""
-#: elf32-cris.c:3915
+#: elf32-cris.c:3914
#, c-format
msgid ""
"%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr ""
-#: elf32-cris.c:3916
+#: elf32-cris.c:3915
#, c-format
msgid ""
"%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr ""
-#: elf32-cris.c:3935
+#: elf32-cris.c:3934
#, c-format
msgid "%pB contains CRIS v32 code, incompatible with previous objects"
msgstr ""
-#: elf32-cris.c:3937
+#: elf32-cris.c:3936
#, c-format
msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
msgstr ""
@@ -2587,50 +2556,50 @@ msgstr ""
msgid "GOT table size out of range"
msgstr ""
-#: elf32-csky.c:2830
+#: elf32-csky.c:2828
#, c-format
msgid "warning: unrecognized arch eflag '%#lx'"
msgstr ""
-#: elf32-csky.c:2853
+#: elf32-csky.c:2851
#, c-format
msgid "warning: unrecognised arch name '%#x'"
msgstr ""
-#: elf32-csky.c:2918 elf32-csky.c:3078
+#: elf32-csky.c:2916 elf32-csky.c:3076
#, c-format
msgid "%pB: machine flag conflict with target"
msgstr ""
-#: elf32-csky.c:2931
+#: elf32-csky.c:2929
#, c-format
msgid ""
"warning: file %pB's arch flag %s conflict with target %s,set target arch "
"flag to %s"
msgstr ""
-#: elf32-csky.c:2960
+#: elf32-csky.c:2958
#, c-format
msgid "Error: %pB and %pB has different VDSP version"
msgstr ""
-#: elf32-csky.c:2977
+#: elf32-csky.c:2975
#, c-format
msgid "Error: %pB and %pB has different DSP version"
msgstr ""
-#: elf32-csky.c:2995
+#: elf32-csky.c:2993
#, c-format
msgid "Error: %pB and %pB has different FPU ABI"
msgstr ""
-#: elf32-csky.c:3092
+#: elf32-csky.c:3090
#, c-format
msgid "warning: file %pB's arch flag %s conflicts with target ck%s, using %s"
msgstr ""
#. The r_type is error, not support it.
-#: elf32-csky.c:4331 elf32-i386.c:344
+#: elf32-csky.c:4329 elf32-i386.c:344
#, c-format
msgid "%pB: unsupported relocation type: %#x"
msgstr ""
@@ -2733,18 +2702,18 @@ msgstr ""
msgid "%H: reloc against `%s': %s\n"
msgstr ""
-#: elf32-frv.c:6496
+#: elf32-frv.c:6497
#, c-format
msgid ""
"%pB: compiled with %s and linked with modules that use non-pic relocations"
msgstr ""
-#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
+#: elf32-frv.c:6551 elf32-iq2000.c:830 elf32-m32c.c:876
#, c-format
msgid "%pB: compiled with %s and linked with modules compiled with %s"
msgstr ""
-#: elf32-frv.c:6563
+#: elf32-frv.c:6564
#, c-format
msgid ""
"%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
@@ -2780,26 +2749,40 @@ msgid ""
"link"
msgstr ""
-#: elf32-hppa.c:4032
+#: elf32-hppa.c:3456
+#, c-format
+msgid ""
+"%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 8 "
+"(gp %#x)"
+msgstr ""
+
+#: elf32-hppa.c:3475
+#, c-format
+msgid ""
+"%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 4 "
+"(gp %#x)"
+msgstr ""
+
+#: elf32-hppa.c:4090
#, c-format
msgid "%s has both normal and TLS relocs"
msgstr ""
-#: elf32-hppa.c:4050
+#: elf32-hppa.c:4108
#, c-format
msgid "%pB:%s has both normal and TLS relocs"
msgstr ""
-#: elf32-hppa.c:4109
+#: elf32-hppa.c:4167
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
msgstr ""
-#: elf32-hppa.c:4415
+#: elf32-hppa.c:4471
msgid ".got section not immediately after .plt section"
msgstr ""
-#: elf32-i386.c:1177 elf64-x86-64.c:1506
+#: 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 `%"
@@ -2813,11 +2796,11 @@ msgid ""
"can not be used when making a shared object"
msgstr ""
-#: elf32-i386.c:1719 elf32-s390.c:1151 elf32-sh.c:5499 elf32-tilepro.c:1548
+#: 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:612
-#: elfnn-riscv.c:671
+#: elfnn-loongarch.c:726
+#: elfnn-riscv.c:675
#, c-format
msgid "%pB: `%s' accessed both as normal and thread local symbol"
msgstr ""
@@ -2827,65 +2810,65 @@ msgstr ""
msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
msgstr ""
-#: elf32-i386.c:1846 elf64-x86-64.c:2436
+#: elf32-i386.c:1846 elf64-x86-64.c:2482
#, c-format
msgid ""
"%pB: non-canonical reference to canonical protected function `%s' in %pB"
msgstr ""
-#: elf32-i386.c:2410 elf64-x86-64.c:2900
-#: elfnn-riscv.c:2455
+#: elf32-i386.c:2409 elf64-x86-64.c:2965
+#: elfnn-riscv.c:2546
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
msgstr ""
-#: elf32-i386.c:2443 elf32-i386.c:3745 elf32-i386.c:3893 elf64-x86-64.c:2957
-#: elf64-x86-64.c:4597 elf64-x86-64.c:4765
-#: elfnn-riscv.c:2328
-#: elfnn-riscv.c:3184
-#: elfnn-riscv.c:3258
+#: 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
#, c-format
msgid "Local IFUNC function `%s' in %pB\n"
msgstr ""
-#: elf32-i386.c:2621
+#: elf32-i386.c:2620
#, c-format
msgid ""
"%pB: direct GOT relocation %s against `%s' without base register can not be "
"used when making a shared object"
msgstr ""
-#: elf32-i386.c:2656 elf64-x86-64.c:3174
+#: elf32-i386.c:2655 elf64-x86-64.c:3239
msgid "hidden symbol"
msgstr ""
-#: elf32-i386.c:2659 elf64-x86-64.c:3177
+#: elf32-i386.c:2658 elf64-x86-64.c:3242
msgid "internal symbol"
msgstr ""
-#: elf32-i386.c:2662 elf64-x86-64.c:3180
+#: elf32-i386.c:2661 elf64-x86-64.c:3245
msgid "protected symbol"
msgstr ""
-#: elf32-i386.c:2665 elf64-x86-64.c:3183
+#: elf32-i386.c:2664 elf64-x86-64.c:3248
msgid "symbol"
msgstr ""
-#: elf32-i386.c:2671
+#: elf32-i386.c:2670
#, c-format
msgid ""
"%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when "
"making a shared object"
msgstr ""
-#: elf32-i386.c:2684
+#: elf32-i386.c:2683
#, c-format
msgid ""
"%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when "
"making a shared object"
msgstr ""
-#: elf32-i386.c:4096 elf64-x86-64.c:4976
+#: elf32-i386.c:4093 elf64-x86-64.c:5084
msgid "%F%P: discarded output section: `%pA'\n"
msgstr ""
@@ -2909,11 +2892,11 @@ msgid ""
"ip2k linker: redundant page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
msgstr ""
-#: elf32-lm32.c:609 elf32-nios2.c:3145
+#: elf32-lm32.c:609 elf32-nios2.c:3143
msgid "global pointer relative relocation when _gp not defined"
msgstr ""
-#: elf32-lm32.c:664 elf32-nios2.c:3582
+#: elf32-lm32.c:664 elf32-nios2.c:3580
msgid "global pointer relative address out of range"
msgstr ""
@@ -2926,32 +2909,32 @@ msgstr ""
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-m32r.c:2776 elf32-microblaze.c:1152 elf32-microblaze.c:1200
+#: elf32-m32r.c:2777 elf32-microblaze.c:1152 elf32-microblaze.c:1200
#, c-format
msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)"
msgstr ""
-#: elf32-m32r.c:3279
+#: elf32-m32r.c:3278
#, c-format
msgid "%pB: instruction set mismatch with previous modules"
msgstr ""
-#: elf32-m32r.c:3300 elf32-nds32.c:6900
+#: elf32-m32r.c:3299 elf32-nds32.c:6901
#, c-format
msgid "private flags = %lx"
msgstr ""
-#: elf32-m32r.c:3305
+#: elf32-m32r.c:3304
#, c-format
msgid ": m32r instructions"
msgstr ""
-#: elf32-m32r.c:3306
+#: elf32-m32r.c:3305
#, c-format
msgid ": m32rx instructions"
msgstr ""
-#: elf32-m32r.c:3307
+#: elf32-m32r.c:3306
#, c-format
msgid ": m32r2 instructions"
msgstr ""
@@ -3065,7 +3048,7 @@ msgstr ""
msgid "%pB uses hard float, %pB uses soft float"
msgstr ""
-#: elf32-m68k.c:1280 elf32-m68k.c:1281 vms-alpha.c:8085 vms-alpha.c:8101
+#: elf32-m68k.c:1280 elf32-m68k.c:1281 vms-alpha.c:8096 vms-alpha.c:8112
msgid "unknown"
msgstr ""
@@ -3117,8 +3100,8 @@ msgid ""
"link"
msgstr ""
-#: elf32-microblaze.c:1595 elf32-tilepro.c:3021 elfxx-sparc.c:3446
-#: elfxx-tilegx.c:3415
+#: elf32-microblaze.c:1595 elf32-tilepro.c:3020 elfxx-sparc.c:3447
+#: elfxx-tilegx.c:3416
#, c-format
msgid "%pB: probably compiled without -fPIC?"
msgstr ""
@@ -3194,123 +3177,123 @@ msgstr ""
msgid "error: can't find symbol: %s"
msgstr ""
-#: elf32-nds32.c:5573
+#: elf32-nds32.c:5574
#, c-format
msgid "%pB: warning: %s unsupported in shared mode"
msgstr ""
-#: elf32-nds32.c:5699
+#: elf32-nds32.c:5700
#, c-format
msgid "%pB: warning: unaligned access to GOT entry"
msgstr ""
-#: elf32-nds32.c:5740
+#: elf32-nds32.c:5741
#, c-format
msgid "%pB: warning: relocate SDA_BASE failed"
msgstr ""
-#: elf32-nds32.c:5762
+#: elf32-nds32.c:5763
#, c-format
msgid "%pB(%pA): warning: unaligned small data access of type %d"
msgstr ""
-#: elf32-nds32.c:6688
+#: elf32-nds32.c:6689
#, c-format
msgid ""
"%pB: ISR vector size mismatch with previous modules, previous %u-byte, "
"current %u-byte"
msgstr ""
-#: elf32-nds32.c:6736
+#: elf32-nds32.c:6737
#, c-format
msgid "%pB: warning: endian mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6750
+#: elf32-nds32.c:6751
#, c-format
msgid ""
"%pB: warning: older version of object file encountered, please recompile "
"with current tool chain"
msgstr ""
-#: elf32-nds32.c:6838
+#: elf32-nds32.c:6839
#, c-format
msgid "%pB: error: ABI mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6848
+#: elf32-nds32.c:6849
#, c-format
msgid "%pB: error: instruction set mismatch with previous modules"
msgstr ""
-#: elf32-nds32.c:6875
+#: elf32-nds32.c:6876
#, c-format
msgid "%pB: warning: incompatible elf-versions %s and %s"
msgstr ""
-#: elf32-nds32.c:6906
+#: elf32-nds32.c:6907
#, c-format
msgid ": n1 instructions"
msgstr ""
-#: elf32-nds32.c:6909
+#: elf32-nds32.c:6910
#, c-format
msgid ": n1h instructions"
msgstr ""
-#: elf32-nds32.c:9358
+#: elf32-nds32.c:9359
#, c-format
msgid "%pB: error: search_nds32_elf_blank reports wrong node"
msgstr ""
-#: elf32-nds32.c:9622
+#: elf32-nds32.c:9623
#, c-format
msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
msgstr ""
-#: elf32-nds32.c:12887
+#: elf32-nds32.c:12888
#, c-format
msgid "%pB: nested OMIT_FP in %pA"
msgstr ""
-#: elf32-nds32.c:12906
+#: elf32-nds32.c:12907
#, c-format
msgid "%pB: unmatched OMIT_FP in %pA"
msgstr ""
-#: elf32-nios2.c:2934
+#: elf32-nios2.c:2932
#, c-format
msgid "error: %pB: big-endian R2 is not supported"
msgstr ""
-#: elf32-nios2.c:2950
+#: elf32-nios2.c:2948
#, c-format
msgid "error: %pB: conflicting CPU architectures %d/%d"
msgstr ""
-#: elf32-nios2.c:3825
+#: elf32-nios2.c:3823
#, c-format
msgid ""
"global pointer relative relocation at address %#<PRIx64> when _gp not "
"defined\n"
msgstr ""
-#: elf32-nios2.c:3852
+#: 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 ""
-#: elf32-nios2.c:4506 elf32-pru.c:931
+#: elf32-nios2.c:4504 elf32-pru.c:931
msgid "relocation out of range"
msgstr ""
-#: elf32-nios2.c:4516 elf32-pru.c:941 elf32-tic6x.c:2657
+#: elf32-nios2.c:4514 elf32-pru.c:941 elf32-tic6x.c:2657
msgid "dangerous relocation"
msgstr ""
-#: elf32-nios2.c:5354
+#: elf32-nios2.c:5362
#, c-format
msgid "dynamic variable `%s' is zero size"
msgstr ""
@@ -3340,7 +3323,7 @@ msgstr ""
msgid "%pB: gotoff relocation against dynamic symbol %s"
msgstr ""
-#: elf32-or1k.c:1575 elf32-or1k.c:1590 elf64-alpha.c:4410 elf64-alpha.c:4554
+#: elf32-or1k.c:1575 elf32-or1k.c:1590 elf64-alpha.c:4411 elf64-alpha.c:4555
#, c-format
msgid "%pB: pc-relative relocation against dynamic symbol %s"
msgstr ""
@@ -3365,7 +3348,7 @@ msgstr ""
msgid "%pB: bad relocation section name `%s'"
msgstr ""
-#: elf32-or1k.c:3315
+#: elf32-or1k.c:3314
#, c-format
msgid "%pB: %s flag mismatch with previous modules"
msgstr ""
@@ -3464,7 +3447,7 @@ msgstr ""
msgid "bss-plt forced by profiling"
msgstr ""
-#: elf32-ppc.c:4608 elf64-ppc.c:8497
+#: elf32-ppc.c:4608 elf64-ppc.c:8507
msgid "%H: warning: %s unexpected insn %#x.\n"
msgstr ""
@@ -3472,45 +3455,45 @@ msgstr ""
#. 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:8562
+#: elf32-ppc.c:4638 elf64-ppc.c:8572
#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr ""
-#: elf32-ppc.c:5565 elf32-sh.c:3019 elf32-tilepro.c:2248 elfxx-sparc.c:2454
-#: elfxx-tilegx.c:2494
+#: elf32-ppc.c:5566 elf32-sh.c:3020 elf32-tilepro.c:2247 elfxx-sparc.c:2455
+#: elfxx-tilegx.c:2495
#, c-format
msgid "%pB: dynamic relocation in read-only section `%pA'\n"
msgstr ""
-#: elf32-ppc.c:6511
+#: elf32-ppc.c:6512
msgid "%pB: Adjusting branch at 0x%V towards \"%s\" in section %s\n"
msgstr ""
-#: elf32-ppc.c:7464
+#: elf32-ppc.c:7465
msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr ""
-#: elf32-ppc.c:7502
+#: elf32-ppc.c:7503
msgid "%H: fixup branch overflow\n"
msgstr ""
-#: elf32-ppc.c:7542 elf32-ppc.c:7580
+#: elf32-ppc.c:7543 elf32-ppc.c:7581
#, c-format
msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
msgstr ""
-#: elf32-ppc.c:7644
+#: elf32-ppc.c:7645
#, c-format
msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:7680
+#: elf32-ppc.c:7681
#, c-format
msgid "%pB: reloc %#x unsupported"
msgstr ""
-#: elf32-ppc.c:7963
+#: elf32-ppc.c:7964
#, c-format
msgid "%H: non-zero addend on %s reloc against `%s'\n"
msgstr ""
@@ -3523,54 +3506,54 @@ msgstr ""
#. 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:7995
+#: elf32-ppc.c:7996
#, c-format
msgid "%X%H: @local call to ifunc %s\n"
msgstr ""
-#: elf32-ppc.c:8173
+#: elf32-ppc.c:8174
#, c-format
msgid "%H: relocation %s for indirect function %s unsupported\n"
msgstr ""
-#: elf32-ppc.c:8511 elf32-ppc.c:8542 elf32-ppc.c:8645 elf32-ppc.c:8745
+#: elf32-ppc.c:8512 elf32-ppc.c:8543 elf32-ppc.c:8646 elf32-ppc.c:8746
#, c-format
msgid ""
"%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:8923 elf32-ppc.c:8944
+#: elf32-ppc.c:8924 elf32-ppc.c:8945
msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr ""
-#: elf32-ppc.c:9026
+#: elf32-ppc.c:9027
#, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
msgstr ""
-#: elf32-ppc.c:9055
+#: elf32-ppc.c:9056
#, c-format
msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elf32-ppc.c:9137
+#: elf32-ppc.c:9138
#, c-format
msgid "%H: %s reloc against `%s': error %d\n"
msgstr ""
-#: elf32-ppc.c:10019
+#: elf32-ppc.c:10020
msgid ""
"%X%P: text relocations and GNU indirect functions will result in a segfault "
"at runtime\n"
msgstr ""
-#: elf32-ppc.c:10023 elf64-ppc.c:18302
+#: elf32-ppc.c:10024 elf64-ppc.c:18304
msgid ""
"%P: warning: text relocations and GNU indirect functions may result in a "
"segfault at runtime\n"
msgstr ""
-#: elf32-ppc.c:10068
+#: elf32-ppc.c:10069
#, c-format
msgid "%s not defined in linker created %pA"
msgstr ""
@@ -3686,7 +3669,7 @@ msgstr ""
msgid "%pB:%pA: %s and %s must be in the same input section"
msgstr ""
-#: elf32-s390.c:2009 elf64-s390.c:1976
+#: elf32-s390.c:2007 elf64-s390.c:1976
#, c-format
msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
msgstr ""
@@ -3709,17 +3692,22 @@ msgstr ""
msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elf32-score.c:3990 elf32-score7.c:3797
+#: elf32-score.c:3491 elf32-score7.c:3302 elfxx-mips.c:11188
+#, c-format
+msgid "%pB: cannot handle more than %d dynamic symbols"
+msgstr ""
+
+#: elf32-score.c:3997 elf32-score7.c:3804
#, c-format
msgid " [pic]"
msgstr ""
-#: elf32-score.c:3994 elf32-score7.c:3801
+#: elf32-score.c:4001 elf32-score7.c:3808
#, c-format
msgid " [fix dep]"
msgstr ""
-#: elf32-score.c:4041 elf32-score7.c:3848
+#: elf32-score.c:4048 elf32-score7.c:3855
#, c-format
msgid "%pB: warning: linking PIC files with non-PIC files"
msgstr ""
@@ -3729,40 +3717,40 @@ msgstr ""
msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr ""
-#: elf32-sh.c:3754
+#: elf32-sh.c:3755
#, c-format
msgid ""
"%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
msgstr ""
-#: elf32-sh.c:3784 elf32-sh.c:3800
+#: elf32-sh.c:3785 elf32-sh.c:3801
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
msgstr ""
-#: elf32-sh.c:3816
+#: elf32-sh.c:3817
#, c-format
msgid ""
"%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
msgstr ""
-#: elf32-sh.c:3832
+#: elf32-sh.c:3833
#, c-format
msgid ""
"%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
msgstr ""
-#: elf32-sh.c:3962 elf32-sh.c:4357
+#: elf32-sh.c:3963 elf32-sh.c:4358
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
msgstr ""
-#: elf32-sh.c:4460
+#: elf32-sh.c:4461
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
msgstr ""
-#: elf32-sh.c:4579
+#: elf32-sh.c:4580
#, c-format
msgid ""
"%pB(%pA): offset in relocation for GD->LE translation is too small: %"
@@ -3770,125 +3758,125 @@ msgid ""
msgstr ""
#. The backslash is to prevent bogus trigraph detection.
-#: elf32-sh.c:4597
+#: elf32-sh.c:4598
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
msgstr ""
-#: elf32-sh.c:4605
+#: elf32-sh.c:4606
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
msgstr ""
-#: elf32-sh.c:4612
+#: elf32-sh.c:4613
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
msgstr ""
-#: elf32-sh.c:4619
+#: elf32-sh.c:4620
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
msgstr ""
-#: elf32-sh.c:4626
+#: elf32-sh.c:4627
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
msgstr ""
-#: elf32-sh.c:4633
+#: elf32-sh.c:4634
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
msgstr ""
-#: elf32-sh.c:4668
+#: elf32-sh.c:4669
#, c-format
msgid ""
"%pB(%pA): offset in relocation for IE->LE translation is too small: %"
"#<PRIx64>"
msgstr ""
-#: elf32-sh.c:4686
+#: elf32-sh.c:4687
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
msgstr ""
-#: elf32-sh.c:4695
+#: elf32-sh.c:4696
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
msgstr ""
-#: elf32-sh.c:4702
+#: elf32-sh.c:4703
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
msgstr ""
-#: elf32-sh.c:4817
+#: elf32-sh.c:4818
#, c-format
msgid ""
"%pB(%pA): offset in relocation for GD->IE translation is too small: %"
"#<PRIx64>"
msgstr ""
-#: elf32-sh.c:4885
+#: elf32-sh.c:4886
#, c-format
msgid ""
"%pB(%pA): offset in relocation for LD->LE translation is too small: %"
"#<PRIx64>"
msgstr ""
-#: elf32-sh.c:5013
+#: elf32-sh.c:5014
#, c-format
msgid "%X%H: relocation to \"%s\" references a different segment\n"
msgstr ""
-#: elf32-sh.c:5020
+#: elf32-sh.c:5021
#, c-format
msgid "%H: warning: relocation to \"%s\" references a different segment\n"
msgstr ""
-#: elf32-sh.c:5488 elf32-sh.c:5570
+#: elf32-sh.c:5489 elf32-sh.c:5571
#, c-format
msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
msgstr ""
-#: elf32-sh.c:5494 elf32-sh.c:5575
+#: elf32-sh.c:5495 elf32-sh.c:5576
#, c-format
msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
msgstr ""
-#: elf32-sh.c:5525
+#: elf32-sh.c:5526
#, c-format
msgid "%pB: Function descriptor relocation with non-zero addend"
msgstr ""
-#: elf32-sh.c:5732 elf64-alpha.c:4646
+#: elf32-sh.c:5733 elf64-alpha.c:4647
#, c-format
msgid "%pB: TLS local exec code cannot be linked into shared objects"
msgstr ""
-#: elf32-sh.c:5847
+#: elf32-sh.c:5848
#, c-format
msgid "%pB: uses %s instructions while previous modules use %s instructions"
msgstr ""
-#: elf32-sh.c:5859
+#: elf32-sh.c:5860
#, c-format
msgid ""
"internal error: merge of architecture '%s' with architecture '%s' produced "
"unknown architecture"
msgstr ""
-#: elf32-sh.c:5900
+#: elf32-sh.c:5901
#, c-format
msgid ""
"%pB: uses instructions which are incompatible with instructions used in "
"previous modules"
msgstr ""
-#: elf32-sh.c:5913
+#: elf32-sh.c:5914
#, c-format
msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
msgstr ""
@@ -3955,7 +3943,7 @@ msgstr ""
msgid "overlay stub relocation overflow"
msgstr ""
-#: elf32-spu.c:1992 elf64-ppc.c:15341
+#: elf32-spu.c:1992 elf64-ppc.c:15346
msgid "stubs don't match calculated size"
msgstr ""
@@ -4102,11 +4090,11 @@ msgstr ""
msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
msgstr ""
-#: elf32-tilepro.c:3627 elfxx-tilegx.c:4017 elfxx-x86.c:2729
-#: elfnn-aarch64.c:10030
-#: elfnn-kvx.c:4636
-#: elfnn-loongarch.c:5032
-#: elfnn-riscv.c:3481
+#: 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
#, c-format
msgid "discarded output section: `%pA'"
msgstr ""
@@ -4328,22 +4316,22 @@ msgstr ""
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
msgstr ""
-#: elf32-vax.c:539
+#: elf32-vax.c:538
#, c-format
msgid " [nonpic]"
msgstr ""
-#: elf32-vax.c:542
+#: elf32-vax.c:541
#, c-format
msgid " [d-float]"
msgstr ""
-#: elf32-vax.c:545
+#: elf32-vax.c:544
#, c-format
msgid " [g-float]"
msgstr ""
-#: elf32-vax.c:631
+#: elf32-vax.c:630
#, c-format
msgid ""
"%pB: warning: GOT addend of %<PRId64> to `%s' does not match previous GOT "
@@ -4391,55 +4379,55 @@ msgstr ""
msgid "%pB(%pA): invalid property table"
msgstr ""
-#: elf32-xtensa.c:2733
+#: elf32-xtensa.c:2732
#, c-format
msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
msgstr ""
-#: elf32-xtensa.c:2816 elf32-xtensa.c:2939
+#: elf32-xtensa.c:2815 elf32-xtensa.c:2938
msgid "dynamic relocation in read-only section"
msgstr ""
-#: elf32-xtensa.c:2916
+#: elf32-xtensa.c:2915
msgid "TLS relocation invalid without dynamic sections"
msgstr ""
-#: elf32-xtensa.c:3129
+#: elf32-xtensa.c:3128
msgid "internal inconsistency in size of .got.loc section"
msgstr ""
-#: elf32-xtensa.c:3435
+#: elf32-xtensa.c:3434
#, c-format
msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
msgstr ""
-#: elf32-xtensa.c:4734 elf32-xtensa.c:4742
+#: elf32-xtensa.c:4733 elf32-xtensa.c:4741
msgid "attempt to convert L32R/CALLX to CALL failed"
msgstr ""
-#: elf32-xtensa.c:6574 elf32-xtensa.c:6653 elf32-xtensa.c:8079
+#: elf32-xtensa.c:6573 elf32-xtensa.c:6652 elf32-xtensa.c:8078
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration "
"mismatch"
msgstr ""
-#: elf32-xtensa.c:7820
+#: elf32-xtensa.c:7819
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY "
"relocation; possible configuration mismatch"
msgstr ""
-#: elf32-xtensa.c:9678
+#: elf32-xtensa.c:9677
msgid "invalid relocation address"
msgstr ""
-#: elf32-xtensa.c:9769
+#: elf32-xtensa.c:9768
msgid "overflow after relaxation"
msgstr ""
-#: elf32-xtensa.c:10915
+#: elf32-xtensa.c:10914
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
msgstr ""
@@ -4474,56 +4462,57 @@ msgstr ""
msgid "%pB: .got subsegment exceeds 64K (size %d)"
msgstr ""
-#: elf64-alpha.c:2680 elflink.c:15481
-#: elfnn-kvx.c:4022
-#: elfnn-loongarch.c:1715
+#: elf64-alpha.c:2680 elflink.c:15728
+#: elfnn-kvx.c:4020
+#: elfnn-loongarch.c:1927
#, c-format
msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
msgstr ""
-#: elf64-alpha.c:2975 elf64-alpha.c:3170
+#: elf64-alpha.c:2976 elf64-alpha.c:3171
#, c-format
msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
msgstr ""
-#: elf64-alpha.c:4370 elf64-alpha.c:4383
+#: elf64-alpha.c:4371 elf64-alpha.c:4384
#, c-format
msgid "%pB: gp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4439
+#: elf64-alpha.c:4440
#, c-format
msgid "%pB: change in gp: BRSGP %s"
msgstr ""
-#: elf64-alpha.c:4464 mach-o.c:625
-#: elfnn-riscv.c:722
-#: elfnn-riscv.c:921
-#: elfnn-riscv.c:963
+#: elf64-alpha.c:4465 mach-o.c:625
+#: elfnn-loongarch.c:868
+#: elfnn-riscv.c:726
+#: elfnn-riscv.c:931
+#: elfnn-riscv.c:973
msgid "<unknown>"
msgstr ""
-#: elf64-alpha.c:4470
+#: elf64-alpha.c:4471
#, c-format
msgid "%pB: !samegp reloc against symbol without .prologue: %s"
msgstr ""
-#: elf64-alpha.c:4528
+#: elf64-alpha.c:4529
#, c-format
msgid "%pB: unhandled dynamic relocation against %s"
msgstr ""
-#: elf64-alpha.c:4563
+#: elf64-alpha.c:4564
#, c-format
msgid "%pB: pc-relative relocation against undefined weak symbol %s"
msgstr ""
-#: elf64-alpha.c:4629
+#: elf64-alpha.c:4630
#, c-format
msgid "%pB: dtp-relative relocation against dynamic symbol %s"
msgstr ""
-#: elf64-alpha.c:4654
+#: elf64-alpha.c:4655
#, c-format
msgid "%pB: tp-relative relocation against dynamic symbol %s"
msgstr ""
@@ -4538,12 +4527,12 @@ msgstr ""
msgid "%pB: Relocations in generic ELF (EM: %d)"
msgstr ""
-#: elf64-hppa.c:2032
+#: elf64-hppa.c:2036
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
msgstr ""
-#: elf64-hppa.c:3236
+#: elf64-hppa.c:3240
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
msgstr ""
@@ -4561,118 +4550,118 @@ msgstr ""
msgid "@pltoff reloc against local symbol"
msgstr ""
-#: elf64-ia64-vms.c:3278
-#: elfnn-ia64.c:3671
+#: elf64-ia64-vms.c:3279
+#: elfnn-ia64.c:3672
#, c-format
msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
msgstr ""
-#: elf64-ia64-vms.c:3288
-#: elfnn-ia64.c:3681
+#: elf64-ia64-vms.c:3289
+#: elfnn-ia64.c:3682
#, c-format
msgid "%pB: __gp does not cover short data segment"
msgstr ""
-#: elf64-ia64-vms.c:3558
-#: elfnn-ia64.c:3954
+#: elf64-ia64-vms.c:3559
+#: elfnn-ia64.c:3955
#, c-format
msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
msgstr ""
-#: elf64-ia64-vms.c:3622
-#: elfnn-ia64.c:4022
+#: elf64-ia64-vms.c:3623
+#: elfnn-ia64.c:4023
#, c-format
msgid "%pB: @gprel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3681
-#: elfnn-ia64.c:4085
+#: elf64-ia64-vms.c:3682
+#: elfnn-ia64.c:4086
#, c-format
msgid "%pB: linking non-pic code in a position independent executable"
msgstr ""
-#: elf64-ia64-vms.c:3783
-#: elfnn-ia64.c:4223
+#: elf64-ia64-vms.c:3784
+#: elfnn-ia64.c:4224
#, c-format
msgid "%pB: @internal branch to dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3786
-#: elfnn-ia64.c:4226
+#: elf64-ia64-vms.c:3787
+#: elfnn-ia64.c:4227
#, c-format
msgid "%pB: speculation fixup to dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3789
-#: elfnn-ia64.c:4229
+#: elf64-ia64-vms.c:3790
+#: elfnn-ia64.c:4230
#, c-format
msgid "%pB: @pcrel relocation against dynamic symbol %s"
msgstr ""
-#: elf64-ia64-vms.c:3913
-#: elfnn-ia64.c:4426
+#: elf64-ia64-vms.c:3914
+#: elfnn-ia64.c:4427
msgid "unsupported reloc"
msgstr ""
-#: elf64-ia64-vms.c:3950
-#: elfnn-ia64.c:4464
+#: elf64-ia64-vms.c:3951
+#: elfnn-ia64.c:4465
#, c-format
msgid ""
"%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in "
"section `%pA'."
msgstr ""
-#: elf64-ia64-vms.c:3967
-#: elfnn-ia64.c:4481
+#: elf64-ia64-vms.c:3968
+#: elfnn-ia64.c:4482
#, c-format
msgid ""
"%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size %"
"#<PRIx64> (> 0x1000000)."
msgstr ""
-#: elf64-ia64-vms.c:4263
-#: elfnn-ia64.c:4742
+#: elf64-ia64-vms.c:4262
+#: elfnn-ia64.c:4741
#, c-format
msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
msgstr ""
-#: elf64-ia64-vms.c:4272
-#: elfnn-ia64.c:4751
+#: elf64-ia64-vms.c:4271
+#: elfnn-ia64.c:4750
#, c-format
msgid "%pB: linking big-endian files with little-endian files"
msgstr ""
-#: elf64-ia64-vms.c:4281
-#: elfnn-ia64.c:4760
+#: elf64-ia64-vms.c:4280
+#: elfnn-ia64.c:4759
#, c-format
msgid "%pB: linking 64-bit files with 32-bit files"
msgstr ""
-#: elf64-ia64-vms.c:4290
-#: elfnn-ia64.c:4769
+#: elf64-ia64-vms.c:4289
+#: elfnn-ia64.c:4768
#, c-format
msgid "%pB: linking constant-gp files with non-constant-gp files"
msgstr ""
-#: elf64-ia64-vms.c:4300
-#: elfnn-ia64.c:4779
+#: elf64-ia64-vms.c:4299
+#: elfnn-ia64.c:4778
#, c-format
msgid "%pB: linking auto-pic files with non-auto-pic files"
msgstr ""
-#: elf64-ia64-vms.c:5150 elflink.c:5338
+#: elf64-ia64-vms.c:5149 elflink.c:5490
#, c-format
msgid ""
"warning: alignment %u of common symbol `%s' in %pB is greater than the "
"alignment (%u) of its section %pA"
msgstr ""
-#: elf64-ia64-vms.c:5157
+#: elf64-ia64-vms.c:5156
#, c-format
msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
msgstr ""
-#: elf64-ia64-vms.c:5173 elflink.c:5367
+#: elf64-ia64-vms.c:5172 elflink.c:5519
#, c-format
msgid ""
"warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in %"
@@ -4770,57 +4759,57 @@ msgstr ""
msgid "%pB .opd not allowed in ABI version %d"
msgstr ""
-#: elf64-ppc.c:5085
+#: elf64-ppc.c:5103
#, c-format
msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
msgstr ""
-#: elf64-ppc.c:5255
+#: elf64-ppc.c:5273
msgid "%H: %s reloc unsupported here\n"
msgstr ""
-#: elf64-ppc.c:5482
+#: elf64-ppc.c:5496
#, c-format
msgid "%pB uses unknown e_flags 0x%lx"
msgstr ""
-#: elf64-ppc.c:5490
+#: elf64-ppc.c:5504
#, c-format
msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
msgstr ""
-#: elf64-ppc.c:5517
+#: elf64-ppc.c:5531
#, c-format
msgid " [abiv%ld]"
msgstr ""
-#: elf64-ppc.c:6821
+#: elf64-ppc.c:6835
msgid ""
"%P: copy reloc against `%pT' requires lazy plt linking; avoid setting "
"LD_BIND_NOW=1 or upgrade gcc\n"
msgstr ""
-#: elf64-ppc.c:7088
+#: elf64-ppc.c:7102
#, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
msgstr ""
-#: elf64-ppc.c:7343
+#: elf64-ppc.c:7353
#, c-format
msgid "dynreloc miscount for %pB, section %pA"
msgstr ""
-#: elf64-ppc.c:7434
+#: elf64-ppc.c:7444
#, c-format
msgid "%pB: .opd is not a regular array of opd entries"
msgstr ""
-#: elf64-ppc.c:7444
+#: elf64-ppc.c:7454
#, c-format
msgid "%pB: unexpected reloc type %u in .opd section"
msgstr ""
-#: elf64-ppc.c:7466
+#: elf64-ppc.c:7476
#, c-format
msgid "%pB: undefined sym `%s' in .opd section"
msgstr ""
@@ -4832,86 +4821,86 @@ msgstr ""
#. __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:7967
+#: elf64-ppc.c:7977
msgid "warning: --plt-localentry is incompatible with power10 pc-relative code"
msgstr ""
-#: elf64-ppc.c:7975
+#: elf64-ppc.c:7985
msgid ""
"warning: --plt-localentry is especially dangerous without ld.so support to "
"detect ABI violations"
msgstr ""
-#: elf64-ppc.c:8291
+#: elf64-ppc.c:8301
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr ""
-#: elf64-ppc.c:8726 elf64-ppc.c:9442
+#: elf64-ppc.c:8736 elf64-ppc.c:9452
#, c-format
msgid "%s defined on removed toc entry"
msgstr ""
-#: elf64-ppc.c:9399
+#: elf64-ppc.c:9409
#, c-format
msgid "%H: %s references optimized away TOC entry\n"
msgstr ""
-#: elf64-ppc.c:9620
+#: elf64-ppc.c:9630
#, c-format
msgid "%H: got/toc optimization is not supported for %s instruction\n"
msgstr ""
-#: elf64-ppc.c:10515
+#: elf64-ppc.c:10525
#, c-format
msgid "warning: discarding dynamic section %s"
msgstr ""
-#: elf64-ppc.c:11668
+#: elf64-ppc.c:11678
msgid "%P: cannot find opd entry toc for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:11818
+#: elf64-ppc.c:11828
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr ""
-#: elf64-ppc.c:11845
+#: elf64-ppc.c:11855
#, c-format
msgid "can't find branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:11906 elf64-ppc.c:12158 elf64-ppc.c:14724
+#: elf64-ppc.c:11916 elf64-ppc.c:12168 elf64-ppc.c:14729
#, c-format
msgid "%P: linkage table error against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:12357
+#: elf64-ppc.c:12367
#, c-format
msgid "can't build branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:13384
+#: elf64-ppc.c:13394
#, c-format
msgid "%pB section %pA exceeds stub group size"
msgstr ""
-#: elf64-ppc.c:14904
+#: elf64-ppc.c:14909
msgid "__tls_get_addr call offset overflow"
msgstr ""
-#: elf64-ppc.c:15244 elf64-ppc.c:15263
+#: elf64-ppc.c:15249 elf64-ppc.c:15268
#, c-format
msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr ""
-#: elf64-ppc.c:15349
+#: elf64-ppc.c:15354
#, c-format
msgid "linker stubs in %u group"
msgid_plural "linker stubs in %u groups"
msgstr[0] ""
msgstr[1] ""
-#: elf64-ppc.c:15356
+#: elf64-ppc.c:15361
#, c-format
msgid ""
"%s, iter %u\n"
@@ -4921,77 +4910,77 @@ msgid ""
" global entry %lu"
msgstr ""
-#: elf64-ppc.c:15738
+#: elf64-ppc.c:15743
#, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:15740
+#: elf64-ppc.c:15745
#, c-format
msgid "%H: %s used with non-TLS symbol `%pT'\n"
msgstr ""
-#: elf64-ppc.c:16524
+#: elf64-ppc.c:16529
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
msgstr ""
-#: elf64-ppc.c:16530
+#: elf64-ppc.c:16535
#, c-format
msgid ""
"%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr ""
-#: elf64-ppc.c:17181
+#: elf64-ppc.c:17186
#, c-format
msgid "%H: %s against %pT is not supported\n"
msgstr ""
-#: elf64-ppc.c:17457
+#: elf64-ppc.c:17462
#, c-format
msgid "%H: %s for indirect function `%pT' unsupported\n"
msgstr ""
-#: elf64-ppc.c:17545
+#: elf64-ppc.c:17549
#, c-format
msgid ""
"%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
msgstr ""
-#: elf64-ppc.c:17600
+#: elf64-ppc.c:17604
#, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
msgstr ""
-#: elf64-ppc.c:17869
+#: elf64-ppc.c:17873
#, c-format
msgid "%H: error: %s not a multiple of %u\n"
msgstr ""
-#: elf64-ppc.c:17892
+#: elf64-ppc.c:17896
#, c-format
msgid "%H: unresolvable %s against `%pT'\n"
msgstr ""
-#: elf64-ppc.c:18037
+#: elf64-ppc.c:18041
#, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr ""
-#: elf64-s390.c:2457
+#: elf64-s390.c:2492
#, c-format
msgid ""
"%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed "
"from executable (rebuild file with -fPIC ?)"
msgstr ""
-#: elf64-s390.c:3066
+#: elf64-s390.c:3155
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
msgstr ""
-#: elf64-sparc.c:134 elfcode.h:1602
+#: elf64-sparc.c:134 elfcode.h:1601
#, c-format
msgid "%pB(%pA): relocation %d has invalid symbol index %ld"
msgstr ""
@@ -5021,112 +5010,117 @@ msgstr ""
msgid "%pB: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elf64-x86-64.c:1537
+#: elf64-x86-64.c:1581
msgid "hidden symbol "
msgstr ""
-#: elf64-x86-64.c:1540
+#: elf64-x86-64.c:1584
msgid "internal symbol "
msgstr ""
-#: elf64-x86-64.c:1543 elf64-x86-64.c:1547
+#: elf64-x86-64.c:1587 elf64-x86-64.c:1591
msgid "protected symbol "
msgstr ""
-#: elf64-x86-64.c:1549
+#: elf64-x86-64.c:1593
msgid "symbol "
msgstr ""
-#: elf64-x86-64.c:1555
+#: elf64-x86-64.c:1599
msgid "undefined "
msgstr ""
-#: elf64-x86-64.c:1565
+#: elf64-x86-64.c:1609
msgid "a shared object"
msgstr ""
-#: elf64-x86-64.c:1567
+#: elf64-x86-64.c:1611
msgid "; recompile with -fPIC"
msgstr ""
-#: elf64-x86-64.c:1572
+#: elf64-x86-64.c:1616
msgid "a PIE object"
msgstr ""
-#: elf64-x86-64.c:1574
+#: elf64-x86-64.c:1618
msgid "a PDE object"
msgstr ""
-#: elf64-x86-64.c:1576
+#: elf64-x86-64.c:1620
msgid "; recompile with -fPIE"
msgstr ""
-#: elf64-x86-64.c:1580
+#: elf64-x86-64.c:1624
#, c-format
msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
msgstr ""
-#: elf64-x86-64.c:2116
+#: elf64-x86-64.c:2160
#, c-format
msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
msgstr ""
-#: elf64-x86-64.c:2266
+#: elf64-x86-64.c:2312
#, c-format
msgid "%pB: '%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf64-x86-64.c:2926
-#: elfnn-aarch64.c:5754
-#: elfnn-riscv.c:2295
+#: elf64-x86-64.c:2567
+#, c-format
+msgid "%pB: unsupported relocation %s against symbol `%s'"
+msgstr ""
+
+#: elf64-x86-64.c:2991
+#: elfnn-aarch64.c:5767
+#: elfnn-riscv.c:2376
#, c-format
msgid ""
"%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %"
"<PRId64>"
msgstr ""
-#: elf64-x86-64.c:3189
+#: elf64-x86-64.c:3254
#, c-format
msgid ""
"%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used "
"when making a shared object"
msgstr ""
-#: elf64-x86-64.c:3203
+#: elf64-x86-64.c:3268
#, c-format
msgid ""
"%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used "
"when making a shared object"
msgstr ""
-#: elf64-x86-64.c:3493
+#: elf64-x86-64.c:3558
#, c-format
msgid ""
"%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in "
"section `%pA' is out of range"
msgstr ""
-#: elf64-x86-64.c:3643 elflink.c:13796
+#: elf64-x86-64.c:3709 elflink.c:14034
msgid "%F%P: corrupt input: %pB\n"
msgstr ""
-#: elf64-x86-64.c:4410
+#: elf64-x86-64.c:4520
#, c-format
msgid ""
" failed to convert GOTPCREL relocation against '%s'; relink with --no-relax\n"
msgstr ""
-#: elf64-x86-64.c:4571
+#: elf64-x86-64.c:4679
#, c-format
msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4644
+#: elf64-x86-64.c:4752
#, c-format
msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
msgstr ""
-#: elf64-x86-64.c:4697
+#: elf64-x86-64.c:4805
#, c-format
msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
msgstr ""
@@ -5151,7 +5145,7 @@ msgstr ""
msgid "%pB: %pA+%<PRIx64>: relocation addend %<PRIx64> too large"
msgstr ""
-#: elfcode.h:1322
+#: elfcode.h:1321
#, c-format
msgid "%pB: version count (%<PRId64>) does not match symbol count (%ld)"
msgstr ""
@@ -5161,360 +5155,368 @@ msgstr ""
msgid "warning: %pB has a segment extending past end of file"
msgstr ""
-#: elflink.c:1397
+#: elflink.c:1438
#, c-format
msgid ""
"%s: TLS definition in %pB section %pA mismatches non-TLS definition in %pB "
"section %pA"
msgstr ""
-#: elflink.c:1403
+#: elflink.c:1444
#, c-format
msgid "%s: TLS reference in %pB mismatches non-TLS reference in %pB"
msgstr ""
-#: elflink.c:1409
+#: elflink.c:1450
#, c-format
msgid ""
"%s: TLS definition in %pB section %pA mismatches non-TLS reference in %pB"
msgstr ""
-#: elflink.c:1415
+#: elflink.c:1456
#, c-format
msgid ""
"%s: TLS reference in %pB mismatches non-TLS definition in %pB section %pA"
msgstr ""
-#: elflink.c:2127
+#: elflink.c:2168
#, c-format
msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'"
msgstr ""
-#: elflink.c:2626
+#: elflink.c:2681
#, c-format
msgid "%pB: version node not found for symbol %s"
msgstr ""
-#: elflink.c:2717
+#: elflink.c:2780
#, c-format
msgid ""
"%pB: bad reloc symbol index (%#<PRIx64> >= %#lx) for offset %#<PRIx64> in "
"section `%pA'"
msgstr ""
-#: elflink.c:2729
+#: elflink.c:2792
#, c-format
msgid ""
"%pB: non-zero symbol index (%#<PRIx64>) for offset %#<PRIx64> in section `%"
"pA' when the object file has no symbol table"
msgstr ""
-#: elflink.c:2940
+#: elflink.c:2989
#, c-format
msgid "%pB: relocation size mismatch in %pB section %pA"
msgstr ""
-#: elflink.c:3269
+#: elflink.c:3322
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr ""
-#: elflink.c:3329
+#: elflink.c:3382
msgid "%P: copy reloc against protected `%pT' is dangerous\n"
msgstr ""
-#: elflink.c:4306
+#: elflink.c:4337
+msgid "%F%P: %pB: failed to add %s to first hash\n"
+msgstr ""
+
+#: elflink.c:4405
+msgid "%F%P: first_hash failed to create: %E\n"
+msgstr ""
+
+#: elflink.c:4436
#, c-format
msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
msgstr ""
-#: elflink.c:4789
+#: elflink.c:4919
#, c-format
msgid "%pB: invalid version offset %lx (max %lx)"
msgstr ""
-#: elflink.c:4857
+#: elflink.c:4988
#, c-format
msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr ""
-#: elflink.c:5005
+#: elflink.c:5136
#, c-format
msgid "%pB: not enough version information"
msgstr ""
-#: elflink.c:5043
+#: elflink.c:5174
#, c-format
msgid "%pB: %s: invalid version %u (max %d)"
msgstr ""
-#: elflink.c:5080
+#: elflink.c:5211
#, c-format
msgid "%pB: %s: invalid needed version %d"
msgstr ""
-#: elflink.c:5345
+#: elflink.c:5497
#, c-format
msgid ""
"warning: alignment %u of normal symbol `%s' in %pB is smaller than %u used "
"by the common definition in %pB"
msgstr ""
-#: elflink.c:5352
+#: elflink.c:5504
msgid ""
"warning: NOTE: alignment discrepancies can cause real problems. "
"Investigation is advised."
msgstr ""
-#: elflink.c:5374
+#: elflink.c:5526
msgid ""
"warning: NOTE: size discrepancies can cause real problems. Investigation is "
"advised."
msgstr ""
-#: elflink.c:5516
+#: elflink.c:5669
#, c-format
msgid "%pB: undefined reference to symbol '%s'"
msgstr ""
-#: elflink.c:6576
+#: elflink.c:6759
#, c-format
msgid "%pB: stack size specified and %s set"
msgstr ""
-#: elflink.c:6580
+#: elflink.c:6763
#, c-format
msgid "%pB: %s not absolute"
msgstr ""
-#: elflink.c:6792
+#: elflink.c:6975
#, c-format
msgid "%s: undefined version: %s"
msgstr ""
-#: elflink.c:7181
+#: elflink.c:7364
msgid ""
"error: creating an executable stack because of -z execstack command line "
"option"
msgstr ""
-#: elflink.c:7187
+#: elflink.c:7370
msgid ""
"warning: enabling an executable stack because of -z execstack command line "
"option"
msgstr ""
-#: elflink.c:7249
+#: elflink.c:7432
#, c-format
msgid ""
"error: %s: is triggering the generation of an executable stack (because it "
"has an executable .note.GNU-stack section)"
msgstr ""
-#: elflink.c:7255
+#: elflink.c:7438
#, c-format
msgid ""
"warning: %s: requires executable stack (because the .note.GNU-stack section "
"is executable)"
msgstr ""
-#: elflink.c:7263
+#: elflink.c:7446
#, c-format
msgid ""
"error: %s: is triggering the generation of an executable stack because it "
"does not have a .note.GNU-stack section"
msgstr ""
-#: elflink.c:7269
+#: elflink.c:7452
#, c-format
msgid "warning: %s: missing .note.GNU-stack section implies executable stack"
msgstr ""
-#: elflink.c:7272
+#: elflink.c:7455
msgid ""
"NOTE: This behaviour is deprecated and will be removed in a future version "
"of the linker"
msgstr ""
-#: elflink.c:7426
+#: elflink.c:7609
#, c-format
msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr ""
-#: elflink.c:9017
+#: elflink.c:9207
#, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr ""
-#: elflink.c:9180 elflink.c:9188
+#: elflink.c:9370 elflink.c:9378
msgid "division by zero"
msgstr ""
-#: elflink.c:9202
+#: elflink.c:9392
#, c-format
msgid "unknown operator '%c' in complex symbol"
msgstr ""
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
-#: elflink.c:9538
+#: elflink.c:9728
#, c-format
msgid ""
"%pB:%pA: error: relocation references symbol %s which was removed by garbage "
"collection"
msgstr ""
-#: elflink.c:9541
+#: elflink.c:9731
#, c-format
msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
msgstr ""
-#: elflink.c:9792 elflink.c:9810 elflink.c:9849 elflink.c:9867
+#: elflink.c:9982 elflink.c:10000 elflink.c:10039 elflink.c:10057
#, c-format
msgid "%pB: unable to sort relocs - they are in more than one size"
msgstr ""
#. The section size is not divisible by either -
#. something is wrong.
-#: elflink.c:9826 elflink.c:9883
+#: elflink.c:10016 elflink.c:10073
#, c-format
msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr ""
-#: elflink.c:9935
+#: elflink.c:10125
msgid "not enough memory to sort relocations"
msgstr ""
-#: elflink.c:10273
+#: elflink.c:10463
#, c-format
msgid "%pB: too many sections: %d (>= %d)"
msgstr ""
-#: elflink.c:10549
+#: elflink.c:10739
#, c-format
msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10552
+#: elflink.c:10742
#, c-format
msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10555
+#: elflink.c:10745
#, c-format
msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
msgstr ""
-#: elflink.c:10641
+#: elflink.c:10838
#, c-format
msgid "%pB: could not find output section %pA for input section %pA"
msgstr ""
-#: elflink.c:10795
+#: elflink.c:10996
#, c-format
msgid "%pB: protected symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10798
+#: elflink.c:10999
#, c-format
msgid "%pB: internal symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10801
+#: elflink.c:11002
#, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
msgstr ""
-#: elflink.c:10833
+#: elflink.c:11034
#, c-format
msgid "%pB: no symbol version section for versioned symbol `%s'"
msgstr ""
-#: elflink.c:11514
+#: elflink.c:11716
#, c-format
msgid ""
"error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a "
"non-existent global symbol"
msgstr ""
-#: elflink.c:11984
+#: elflink.c:12186
#, c-format
msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr ""
-#: elflink.c:12261
+#: elflink.c:12466
#, c-format
msgid "%pB: no symbol found for import library"
msgstr ""
-#: elflink.c:12836
+#: elflink.c:13072
msgid "%F%P: %pB: failed to finish relative relocations\n"
msgstr ""
-#: elflink.c:12913
+#: elflink.c:13149
#, c-format
msgid "%pB: file class %s incompatible with %s"
msgstr ""
-#: elflink.c:13162
+#: elflink.c:13398
#, c-format
msgid "%pB: failed to generate import library"
msgstr ""
-#: elflink.c:13330
+#: elflink.c:13566
#, c-format
msgid "warning: %s section has zero size"
msgstr ""
-#: elflink.c:13378
+#: elflink.c:13614
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr ""
-#: elflink.c:13472
+#: elflink.c:13708
msgid "%P%X: read-only segment has dynamic relocations\n"
msgstr ""
-#: elflink.c:13475
+#: elflink.c:13711
msgid "%P: warning: creating DT_TEXTREL in a shared object\n"
msgstr ""
-#: elflink.c:13478
+#: elflink.c:13714
msgid "%P: warning: creating DT_TEXTREL in a PDE\n"
msgstr ""
-#: elflink.c:13481
+#: elflink.c:13717
msgid "%P: warning: creating DT_TEXTREL in a PIE\n"
msgstr ""
-#: elflink.c:13617
+#: elflink.c:13854
msgid "%P%X: can not read symbols: %E\n"
msgstr ""
-#: elflink.c:14042
+#: elflink.c:14287
msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
msgstr ""
-#: elflink.c:14520
+#: elflink.c:14767
#, c-format
msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
msgstr ""
-#: elflink.c:14561
+#: elflink.c:14808
#, c-format
msgid "%pB: section '%pA': corrupt VTENTRY entry"
msgstr ""
-#: elflink.c:14704
+#: elflink.c:14951
#, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
msgstr ""
-#: elflink.c:15487
+#: elflink.c:15734
#, c-format
msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
msgstr ""
-#: elflink.c:15576
+#: elflink.c:15823
msgid ""
"%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault "
"at runtime; recompile with %s\n"
@@ -5527,8 +5529,8 @@ msgid ""
msgstr ""
#: elfxx-aarch64.c:738
-#: elfnn-aarch64.c:10231
-#: elfnn-aarch64.c:10238
+#: elfnn-aarch64.c:10654
+#: elfnn-aarch64.c:10661
#, c-format
msgid ""
"%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI "
@@ -5540,22 +5542,22 @@ msgstr ""
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
msgstr ""
-#: elfxx-loongarch.c:1909
+#: elfxx-loongarch.c:1911
#, c-format
msgid "%pB: unsupported relocation type %s"
msgstr ""
-#: elfxx-loongarch.c:1937
+#: elfxx-loongarch.c:1939
#, c-format
msgid "%pB: unsupported bfd relocation type %#x"
msgstr ""
-#: elfxx-loongarch.c:2009
+#: elfxx-loongarch.c:2013
#, c-format
msgid "%pB: relocation %s right shift %d error 0x%lx"
msgstr ""
-#: elfxx-loongarch.c:2028
+#: elfxx-loongarch.c:2032
#, c-format
msgid "%pB: relocation %s overflow 0x%lx"
msgstr ""
@@ -5564,613 +5566,617 @@ msgstr ""
msgid "static procedure (no name)"
msgstr ""
-#: elfxx-mips.c:5857
+#: elfxx-mips.c:5856
msgid "MIPS16 and microMIPS functions cannot call each other"
msgstr ""
-#: elfxx-mips.c:6627
+#: elfxx-mips.c:6626
msgid "%X%H: unsupported JALX to the same ISA mode\n"
msgstr ""
-#: elfxx-mips.c:6660
+#: elfxx-mips.c:6659
msgid ""
"%X%H: unsupported jump between ISA modes; consider recompiling with "
"interlinking enabled\n"
msgstr ""
-#: elfxx-mips.c:6705
+#: elfxx-mips.c:6704
msgid ""
"%X%H: cannot convert branch between ISA modes to JALX: relocation out of "
"range\n"
msgstr ""
-#: elfxx-mips.c:6717
+#: elfxx-mips.c:6716
msgid "%X%H: unsupported branch between ISA modes\n"
msgstr ""
-#: elfxx-mips.c:7350
+#: elfxx-mips.c:7362
#, c-format
msgid ""
"%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
msgstr ""
-#: elfxx-mips.c:7394
+#: elfxx-mips.c:7406
#, c-format
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr ""
-#: elfxx-mips.c:7630
+#: elfxx-mips.c:7642
#, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr ""
-#: elfxx-mips.c:8454 elfxx-mips.c:8580
+#: elfxx-mips.c:8466 elfxx-mips.c:8592
#, c-format
msgid ""
"%pB: warning: cannot determine the target function for stub section `%s'"
msgstr ""
-#: elfxx-mips.c:8712
+#: elfxx-mips.c:8724
#, c-format
msgid "%pB: malformed reloc detected for section %s"
msgstr ""
-#: elfxx-mips.c:8812
+#: elfxx-mips.c:8824
#, c-format
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
msgstr ""
-#: elfxx-mips.c:8952
+#: elfxx-mips.c:8964
#, c-format
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
msgstr ""
-#: elfxx-mips.c:9255
+#: elfxx-mips.c:9267
#, c-format
msgid ""
"%X%H: relocation %s against `%s' cannot be used when making a shared object; "
"recompile with -fPIC\n"
msgstr ""
-#: elfxx-mips.c:9381
+#: elfxx-mips.c:9393
#, c-format
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr ""
-#: elfxx-mips.c:9384
+#: elfxx-mips.c:9396
#, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
msgstr ""
-#: elfxx-mips.c:9604
+#: elfxx-mips.c:9616
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr ""
-#: elfxx-mips.c:10539
+#: elfxx-mips.c:10536
#, c-format
msgid ""
"%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in "
"section `%pA'"
msgstr ""
-#: elfxx-mips.c:10679
+#: elfxx-mips.c:10676
msgid ""
"small-data section too large; lower small-data size limit (see option -G)"
msgstr ""
-#: elfxx-mips.c:10698
+#: elfxx-mips.c:10695
msgid "cannot convert a jump to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10701
+#: elfxx-mips.c:10698
msgid "jump to a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10702
+#: elfxx-mips.c:10699
msgid "jump to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10705
+#: elfxx-mips.c:10702
msgid "cannot convert a branch to JALX for a non-word-aligned address"
msgstr ""
-#: elfxx-mips.c:10707
+#: elfxx-mips.c:10704
msgid "branch to a non-instruction-aligned address"
msgstr ""
-#: elfxx-mips.c:10709
+#: elfxx-mips.c:10706
msgid "PC-relative load from unaligned address"
msgstr ""
-#: elfxx-mips.c:11009
+#: elfxx-mips.c:11006
#, c-format
msgid ""
"%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; "
"consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:11124 elfxx-mips.c:11711
+#: elfxx-mips.c:11121 elfxx-mips.c:11714
#, c-format
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
msgstr ""
-#: elfxx-mips.c:11683
+#: elfxx-mips.c:11686
#, c-format
msgid ""
"%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; "
"consider using `-Ttext-segment=...'"
msgstr ""
-#: elfxx-mips.c:13429 reloc.c:8605
+#: elfxx-mips.c:13431 reloc.c:8625
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
-#: elfxx-mips.c:14741
+#: elfxx-mips.c:14743
#, c-format
msgid "%pB: unknown architecture %s"
msgstr ""
-#: elfxx-mips.c:15269
+#: elfxx-mips.c:15271
#, c-format
msgid "%pB: illegal section name `%pA'"
msgstr ""
-#: elfxx-mips.c:15546
+#: elfxx-mips.c:15548
#, c-format
msgid "%pB: warning: linking abicalls files with non-abicalls files"
msgstr ""
-#: elfxx-mips.c:15563
+#: elfxx-mips.c:15565
#, c-format
msgid "%pB: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:15595 elfxx-mips.c:15661 elfxx-mips.c:15676
+#: elfxx-mips.c:15597 elfxx-mips.c:15663 elfxx-mips.c:15678
#, c-format
msgid "%pB: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15619
+#: elfxx-mips.c:15621
#, c-format
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15644
+#: elfxx-mips.c:15646
#, c-format
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:15778
+#: elfxx-mips.c:15780
#, c-format
msgid ""
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses "
"unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15784
+#: elfxx-mips.c:15786
#, c-format
msgid ""
"warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15790
+#: elfxx-mips.c:15792
#, c-format
msgid ""
"warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
msgstr ""
-#: elfxx-mips.c:15804
+#: elfxx-mips.c:15806
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15823
+#: elfxx-mips.c:15825
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
msgstr ""
-#: elfxx-mips.c:15835
+#: elfxx-mips.c:15837
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
msgstr ""
-#: elfxx-mips.c:15844
+#: elfxx-mips.c:15846
#, c-format
msgid ""
"warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %"
"d"
msgstr ""
-#: elfxx-mips.c:15906
+#: elfxx-mips.c:15908
#, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15920
+#: elfxx-mips.c:15922
#, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:15973
+#: elfxx-mips.c:15975
#, c-format
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15978
+#: elfxx-mips.c:15980
#, c-format
msgid ""
"%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15982
+#: elfxx-mips.c:15984
#, c-format
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15989
+#: elfxx-mips.c:15991
#, c-format
msgid ""
"%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr ""
-#: elfxx-mips.c:15993
+#: elfxx-mips.c:15995
#, c-format
msgid ""
"%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr ""
-#: elfxx-mips.c:16184
+#: elfxx-mips.c:16186
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
-#: elfxx-mips.c:16246 elfxx-mips.c:16257
+#: elfxx-mips.c:16248 elfxx-mips.c:16259
msgid "None"
msgstr ""
-#: elfxx-mips.c:16248 elfxx-mips.c:16317
+#: elfxx-mips.c:16250 elfxx-mips.c:16319
msgid "Unknown"
msgstr ""
-#: elfxx-mips.c:16328
+#: elfxx-mips.c:16330
#, c-format
msgid "Hard or soft float\n"
msgstr ""
-#: elfxx-mips.c:16331
+#: elfxx-mips.c:16333
#, c-format
msgid "Hard float (double precision)\n"
msgstr ""
-#: elfxx-mips.c:16334
+#: elfxx-mips.c:16336
#, c-format
msgid "Hard float (single precision)\n"
msgstr ""
-#: elfxx-mips.c:16337
+#: elfxx-mips.c:16339
#, c-format
msgid "Soft float\n"
msgstr ""
-#: elfxx-mips.c:16340
+#: elfxx-mips.c:16342
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: elfxx-mips.c:16343
+#: elfxx-mips.c:16345
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: elfxx-mips.c:16346
+#: elfxx-mips.c:16348
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16349
+#: elfxx-mips.c:16351
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: elfxx-mips.c:16381
+#: elfxx-mips.c:16383
#, c-format
msgid " [abi=O32]"
msgstr ""
-#: elfxx-mips.c:16383
+#: elfxx-mips.c:16385
#, c-format
msgid " [abi=O64]"
msgstr ""
-#: elfxx-mips.c:16385
+#: elfxx-mips.c:16387
#, c-format
msgid " [abi=EABI32]"
msgstr ""
-#: elfxx-mips.c:16387
+#: elfxx-mips.c:16389
#, c-format
msgid " [abi=EABI64]"
msgstr ""
-#: elfxx-mips.c:16389
+#: elfxx-mips.c:16391
#, c-format
msgid " [abi unknown]"
msgstr ""
-#: elfxx-mips.c:16391
+#: elfxx-mips.c:16393
#, c-format
msgid " [abi=N32]"
msgstr ""
-#: elfxx-mips.c:16393
+#: elfxx-mips.c:16395
#, c-format
msgid " [abi=64]"
msgstr ""
-#: elfxx-mips.c:16395
+#: elfxx-mips.c:16397
#, c-format
msgid " [no abi set]"
msgstr ""
-#: elfxx-mips.c:16420
+#: elfxx-mips.c:16422
#, c-format
msgid " [unknown ISA]"
msgstr ""
-#: elfxx-mips.c:16440
+#: elfxx-mips.c:16442
#, c-format
msgid " [not 32bitmode]"
msgstr ""
-#: elfxx-riscv.c:1699
+#: elfxx-riscv.c:1799
#, c-format
msgid "x ISA extension `%s' must be set with the versions"
msgstr ""
-#: elfxx-riscv.c:1705
+#: elfxx-riscv.c:1805
#, c-format
msgid "cannot find default versions of the ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1811
+#: elfxx-riscv.c:1911
#, c-format
msgid "%s: first ISA extension must be `e', `i' or `g'"
msgstr ""
-#: elfxx-riscv.c:1835
+#: elfxx-riscv.c:1935
#, c-format
msgid "%s: unknown standard ISA extension or prefix class `%c'"
msgstr ""
-#: elfxx-riscv.c:1871
+#: elfxx-riscv.c:1971
#, c-format
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr ""
-#: elfxx-riscv.c:1895
+#: elfxx-riscv.c:1995
#, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
msgstr ""
-#: elfxx-riscv.c:1919
+#: elfxx-riscv.c:2019
#, c-format
msgid "%s: prefixed ISA extension must separate with _"
msgstr ""
-#: elfxx-riscv.c:1973
+#: elfxx-riscv.c:2059
#, c-format
msgid "rv%de does not support the `h' extension"
msgstr ""
-#: elfxx-riscv.c:1981
+#: elfxx-riscv.c:2067
#, c-format
msgid "rv%d does not support the `q' extension"
msgstr ""
-#: elfxx-riscv.c:1988
+#: elfxx-riscv.c:2074
+msgid "zcmp' is incompatible with `d/zcd' extension"
+msgstr ""
+
+#: elfxx-riscv.c:2081
#, c-format
msgid "rv%d does not support the `zcf' extension"
msgstr ""
-#: elfxx-riscv.c:1995
+#: elfxx-riscv.c:2088
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr ""
-#: elfxx-riscv.c:2002
+#: elfxx-riscv.c:2095
msgid "`xtheadvector' is conflict with the `v' extension"
msgstr ""
-#: elfxx-riscv.c:2023
+#: elfxx-riscv.c:2116
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
msgstr ""
-#: elfxx-riscv.c:2085
+#: elfxx-riscv.c:2178
#, c-format
msgid "%s: ISA string cannot contain uppercase letters"
msgstr ""
-#: elfxx-riscv.c:2113
+#: elfxx-riscv.c:2206
#, c-format
msgid "%s: ISA string must begin with rv32 or rv64"
msgstr ""
-#: elfxx-riscv.c:2339
+#: elfxx-riscv.c:2443
#, c-format
-msgid "invalid ISA extension ends with <number>p in .option arch `%s'"
+msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2362
+#: elfxx-riscv.c:2466
#, c-format
-msgid "unknown ISA extension `%s' in .option arch `%s'"
+msgid "%sunknown ISA extension `%s' in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2373
+#: elfxx-riscv.c:2478
#, c-format
-msgid "cannot + or - base extension `%s' in .option arch `%s'"
+msgid "%scannot + or - base extension `%s' in %s `%s'"
msgstr ""
-#: elfxx-riscv.c:2613 elfxx-riscv.c:2861
+#: elfxx-riscv.c:2763 elfxx-riscv.c:3033
msgid "internal: unreachable INSN_CLASS_*"
msgstr ""
-#: elfxx-riscv.c:2648
+#: elfxx-riscv.c:2798
msgid "zihintntl' and `c', or `zihintntl' and `zca"
msgstr ""
-#: elfxx-riscv.c:2653 elfxx-riscv.c:2671
+#: elfxx-riscv.c:2803 elfxx-riscv.c:2827
msgid "c' or `zca"
msgstr ""
-#: elfxx-riscv.c:2659
+#: elfxx-riscv.c:2809
msgid "m' or `zmmul"
msgstr ""
-#: elfxx-riscv.c:2677
+#: elfxx-riscv.c:2833
msgid "f' and `c', or `f' and `zcf"
msgstr ""
-#: elfxx-riscv.c:2682
+#: elfxx-riscv.c:2838
msgid "c' or `zcf"
msgstr ""
-#: elfxx-riscv.c:2688
+#: elfxx-riscv.c:2844
msgid "d' and `c', or `d' and `zcd"
msgstr ""
-#: elfxx-riscv.c:2693
+#: elfxx-riscv.c:2849
msgid "c' or `zcd"
msgstr ""
-#: elfxx-riscv.c:2695
+#: elfxx-riscv.c:2851
msgid "f' or `zfinx"
msgstr ""
-#: elfxx-riscv.c:2697
+#: elfxx-riscv.c:2853
msgid "d' or `zdinx"
msgstr ""
-#: elfxx-riscv.c:2699
+#: elfxx-riscv.c:2855
msgid "q' or `zqinx"
msgstr ""
-#: elfxx-riscv.c:2701
+#: elfxx-riscv.c:2857
msgid "zfh' or `zhinx"
msgstr ""
-#: elfxx-riscv.c:2705
+#: elfxx-riscv.c:2861
msgid "zfhmin' or `zhinxmin"
msgstr ""
-#: elfxx-riscv.c:2716
+#: elfxx-riscv.c:2872
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
msgstr ""
-#: elfxx-riscv.c:2727
+#: elfxx-riscv.c:2883
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
msgstr ""
-#: elfxx-riscv.c:2733
+#: elfxx-riscv.c:2891
msgid "d' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2741
+#: elfxx-riscv.c:2899
msgid "q' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2749
+#: elfxx-riscv.c:2907
msgid "zfh' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2759
+#: elfxx-riscv.c:2917
msgid "zfh' and `zfa', or `zvfh' and `zfa"
msgstr ""
-#: elfxx-riscv.c:2764
+#: elfxx-riscv.c:2922
msgid "zfh' or `zvfh"
msgstr ""
-#: elfxx-riscv.c:2780
+#: elfxx-riscv.c:2938
msgid "zbb' or `zbkb"
msgstr ""
-#: elfxx-riscv.c:2782
+#: elfxx-riscv.c:2940
msgid "zbc' or `zbkc"
msgstr ""
-#: elfxx-riscv.c:2790
+#: elfxx-riscv.c:2948
msgid "zknd' or `zkne"
msgstr ""
-#: elfxx-riscv.c:2796
+#: elfxx-riscv.c:2954
msgid "v' or `zve64x' or `zve32x"
msgstr ""
-#: elfxx-riscv.c:2798
+#: elfxx-riscv.c:2956
msgid "v' or `zve64d' or `zve64f' or `zve32f"
msgstr ""
-#: elfxx-riscv.c:2800
+#: elfxx-riscv.c:2958
msgid "zvbb"
msgstr ""
-#: elfxx-riscv.c:2802
+#: elfxx-riscv.c:2960
msgid "zvbc"
msgstr ""
-#: elfxx-riscv.c:2804
+#: elfxx-riscv.c:2966
msgid "zvkb"
msgstr ""
-#: elfxx-riscv.c:2806
+#: elfxx-riscv.c:2968
msgid "zvkg"
msgstr ""
-#: elfxx-riscv.c:2808
+#: elfxx-riscv.c:2970
msgid "zvkned"
msgstr ""
-#: elfxx-riscv.c:2810
+#: elfxx-riscv.c:2972
msgid "zvknha' or `zvknhb"
msgstr ""
-#: elfxx-riscv.c:2812
+#: elfxx-riscv.c:2974
msgid "zvksed"
msgstr ""
-#: elfxx-riscv.c:2814
+#: elfxx-riscv.c:2976
msgid "zvksh"
msgstr ""
-#: elfxx-riscv.c:2818
+#: elfxx-riscv.c:2980
msgid "zcb' and `zba"
msgstr ""
-#: elfxx-riscv.c:2820
+#: elfxx-riscv.c:2982
msgid "zcb' and `zbb"
msgstr ""
-#: elfxx-riscv.c:2822
+#: elfxx-riscv.c:2984
msgid "zcb' and `zmmul', or `zcb' and `m"
msgstr ""
-#: elfxx-riscv.c:2826
+#: elfxx-riscv.c:2990
msgid "h"
msgstr ""
-#: elfxx-sparc.c:3021
-#: elfnn-aarch64.c:5738
+#: elfxx-sparc.c:3022
+#: elfnn-aarch64.c:5751
#, c-format
msgid ""
"%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr ""
-#: elfxx-tilegx.c:4126
+#: elfxx-tilegx.c:4127
#, c-format
msgid "%pB: cannot link together %s and %s objects"
msgstr ""
-#: elfxx-x86.c:536 elfxx-x86.c:3440
+#: elfxx-x86.c:536 elfxx-x86.c:3438
#, c-format
msgid ""
"%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in %"
@@ -6209,102 +6215,117 @@ msgstr ""
msgid "%F%P: %pB: failed to allocate compact relative reloc section\n"
msgstr ""
-#: elfxx-x86.c:2230
+#: elfxx-x86.c:2229
#, c-format
msgid ""
"%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is "
"disallowed\n"
msgstr ""
-#: elfxx-x86.c:2312
+#: elfxx-x86.c:2311
msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
msgstr ""
-#: elfxx-x86.c:3193
+#: elfxx-x86.c:3191
msgid ""
"%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section '%"
"pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3199
+#: elfxx-x86.c:3197
msgid ""
"%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr ""
-#: elfxx-x86.c:3819
+#: elfxx-x86.c:3817
#, c-format
msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr ""
-#: elfxx-x86.c:4166
+#: elfxx-x86.c:4030
+#, c-format
+msgid "%pB: x86 ISA needed: "
+msgstr ""
+
+#: elfxx-x86.c:4032
+#, c-format
+msgid "%pB: x86 ISA used: "
+msgstr ""
+
+#: elfxx-x86.c:4054
+#, c-format
+msgid "<unknown: %x>"
+msgstr ""
+
+#: elfxx-x86.c:4209
msgid "%P: %pB: warning: missing %s\n"
msgstr ""
-#: elfxx-x86.c:4167
+#: elfxx-x86.c:4210
msgid "%X%P: %pB: error: missing %s\n"
msgstr ""
-#: elfxx-x86.c:4230
+#: elfxx-x86.c:4316
msgid "IBT and SHSTK properties"
msgstr ""
-#: elfxx-x86.c:4232
+#: elfxx-x86.c:4318
msgid "IBT property"
msgstr ""
-#: elfxx-x86.c:4234
+#: elfxx-x86.c:4320
msgid "SHSTK property"
msgstr ""
-#: elfxx-x86.c:4239
+#: elfxx-x86.c:4325
msgid "LAM_U48 property"
msgstr ""
-#: elfxx-x86.c:4244
+#: elfxx-x86.c:4330
msgid "LAM_U57 property"
msgstr ""
-#: elfxx-x86.c:4413
+#: elfxx-x86.c:4508
msgid "%F%P: failed to create VxWorks dynamic sections\n"
msgstr ""
-#: elfxx-x86.c:4422
+#: elfxx-x86.c:4517
msgid "%F%P: failed to create GOT sections\n"
msgstr ""
-#: elfxx-x86.c:4440
+#: elfxx-x86.c:4535
msgid "%F%P: failed to create ifunc sections\n"
msgstr ""
-#: elfxx-x86.c:4477
+#: elfxx-x86.c:4572
msgid "%F%P: failed to create GOT PLT section\n"
msgstr ""
-#: elfxx-x86.c:4496
+#: elfxx-x86.c:4591
msgid "%F%P: failed to create IBT-enabled PLT section\n"
msgstr ""
-#: elfxx-x86.c:4516
+#: elfxx-x86.c:4611
msgid "%F%P: failed to create PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4529
+#: elfxx-x86.c:4624
msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4543
+#: elfxx-x86.c:4638
msgid "%F%P: failed to create the second PLT .eh_frame section\n"
msgstr ""
-#: elfxx-x86.c:4563
+#: elfxx-x86.c:4658
msgid "%F%P: failed to create PLT .sframe section\n"
msgstr ""
-#: elfxx-x86.c:4578
+#: elfxx-x86.c:4673
msgid "%F%P: failed to create second PLT .sframe section\n"
msgstr ""
-#: elfxx-x86.c:4618
+#: elfxx-x86.c:4713
msgid "%X%P: attempted static link of dynamic object `%pB'\n"
msgstr ""
@@ -6363,53 +6384,58 @@ msgstr ""
msgid "%pB: address %#<PRIx64> out of range for Intel Hex file"
msgstr ""
-#: libbfd.c:1058
+#: libbfd.c:1264
#, c-format
msgid "%pB: unable to get decompressed section %pA"
msgstr ""
-#: linker.c:1713
+#: libbfd.c:1276
+#, c-format
+msgid "%pB: mapped section %pA has non-NULL buffer"
+msgstr ""
+
+#: linker.c:1715
#, c-format
msgid "%pB: indirect symbol `%s' to `%s' is a loop"
msgstr ""
-#: linker.c:1793
+#: linker.c:1795
msgid ""
"%P: %pB: note: the message above does not take linker garbage collection "
"into account\n"
msgstr ""
-#: linker.c:2591
+#: linker.c:2593
#, c-format
msgid "attempt to do relocatable link with %s input and %s output"
msgstr ""
-#: linker.c:2870
+#: linker.c:2872
#, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
msgstr ""
-#: linker.c:2880 linker.c:2890
+#: linker.c:2882 linker.c:2892
#, c-format
msgid "%pB: duplicate section `%pA' has different size\n"
msgstr ""
-#: linker.c:2904 linker.c:2912
+#: linker.c:2906 linker.c:2914
#, c-format
msgid "%pB: could not read contents of section `%pA'\n"
msgstr ""
-#: linker.c:2921
+#: linker.c:2923
#, c-format
msgid "%pB: duplicate section `%pA' has different contents\n"
msgstr ""
-#: linker.c:3440
+#: linker.c:3442
#, c-format
msgid "%pB: compiled for a big endian system and target is little endian"
msgstr ""
-#: linker.c:3443
+#: linker.c:3445
#, c-format
msgid "%pB: compiled for a little endian system and target is big endian"
msgstr ""
@@ -6755,12 +6781,12 @@ msgstr ""
msgid "unhandled OSF/1 core file section type %d"
msgstr ""
-#: pdp11.c:1588
+#: pdp11.c:1580
#, c-format
msgid "%pB: symbol indicates overlay (not supported)"
msgstr ""
-#: pef.c:531
+#: pef.c:530
#, c-format
msgid "bfd_pef_scan: unknown architecture 0x%lx"
msgstr ""
@@ -6934,17 +6960,17 @@ msgstr ""
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
-#: reloc.c:8504
+#: reloc.c:8524
msgid "INPUT_SECTION_FLAGS are not supported"
msgstr ""
-#: reloc.c:8770
+#: reloc.c:8790
#, c-format
msgid "%pB: unrecognized relocation type %#x in section `%pA'"
msgstr ""
#. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8774
+#: reloc.c:8794
#, c-format
msgid "is this version of the linker - %s - out of date ?"
msgstr ""
@@ -7196,1832 +7222,1821 @@ msgstr ""
msgid "reloc (%d) is *UNKNOWN*"
msgstr ""
-#: vms-alpha.c:6119
+#: vms-alpha.c:6120
#, c-format
-msgid " EMH %u (len=%u): "
+msgid " EMH %d (len=%u): "
msgstr ""
-#: vms-alpha.c:6124
+#: vms-alpha.c:6125 vms-alpha.c:6144 vms-alpha.c:6223
#, c-format
-msgid " Error: The length is less than the length of an EMH record\n"
+msgid " Error: %s min length is %u\n"
msgstr ""
-#: vms-alpha.c:6141
-#, c-format
-msgid ""
-" Error: The record length is less than the size of an EMH_MHD record\n"
-msgstr ""
-
-#: vms-alpha.c:6144
+#: vms-alpha.c:6148
#, c-format
msgid "Module header\n"
msgstr ""
-#: vms-alpha.c:6145
+#: vms-alpha.c:6149
#, c-format
msgid " structure level: %u\n"
msgstr ""
-#: vms-alpha.c:6146
+#: vms-alpha.c:6150
#, c-format
msgid " max record size: %u\n"
msgstr ""
-#: vms-alpha.c:6152
+#: vms-alpha.c:6156
#, c-format
msgid " Error: The module name is missing\n"
msgstr ""
-#: vms-alpha.c:6158
+#: vms-alpha.c:6162
#, c-format
msgid " Error: The module name is too long\n"
msgstr ""
-#: vms-alpha.c:6161
+#: vms-alpha.c:6165
#, c-format
msgid " module name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6165
+#: vms-alpha.c:6169
#, c-format
msgid " Error: The module version is missing\n"
msgstr ""
-#: vms-alpha.c:6171
+#: vms-alpha.c:6175
#, c-format
msgid " Error: The module version is too long\n"
msgstr ""
-#: vms-alpha.c:6174
+#: vms-alpha.c:6178
#, c-format
msgid " module version : %.*s\n"
msgstr ""
-#: vms-alpha.c:6177
+#: vms-alpha.c:6181
#, c-format
msgid " Error: The compile date is truncated\n"
msgstr ""
-#: vms-alpha.c:6179
+#: vms-alpha.c:6183
#, c-format
msgid " compile date : %.17s\n"
msgstr ""
-#: vms-alpha.c:6184
+#: vms-alpha.c:6188
#, c-format
msgid "Language Processor Name\n"
msgstr ""
-#: vms-alpha.c:6185
+#: vms-alpha.c:6189
#, c-format
msgid " language name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6189
+#: vms-alpha.c:6193
#, c-format
msgid "Source Files Header\n"
msgstr ""
-#: vms-alpha.c:6190
+#: vms-alpha.c:6194
#, c-format
msgid " file: %.*s\n"
msgstr ""
-#: vms-alpha.c:6194
+#: vms-alpha.c:6198
#, c-format
msgid "Title Text Header\n"
msgstr ""
-#: vms-alpha.c:6195
+#: vms-alpha.c:6199
#, c-format
msgid " title: %.*s\n"
msgstr ""
-#: vms-alpha.c:6199
+#: vms-alpha.c:6203
#, c-format
msgid "Copyright Header\n"
msgstr ""
-#: vms-alpha.c:6200
+#: vms-alpha.c:6204
#, c-format
msgid " copyright: %.*s\n"
msgstr ""
-#: vms-alpha.c:6204
+#: vms-alpha.c:6208
#, c-format
msgid "unhandled emh subtype %u\n"
msgstr ""
-#: vms-alpha.c:6214
+#: vms-alpha.c:6218
#, c-format
msgid " EEOM (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6219
-#, c-format
-msgid " Error: The length is less than the length of an EEOM record\n"
-msgstr ""
-
-#: vms-alpha.c:6223
+#: vms-alpha.c:6228
#, c-format
msgid " number of cond linkage pairs: %u\n"
msgstr ""
-#: vms-alpha.c:6225
+#: vms-alpha.c:6230
#, c-format
msgid " completion code: %u\n"
msgstr ""
-#: vms-alpha.c:6229
+#: vms-alpha.c:6235
#, c-format
msgid " transfer addr flags: 0x%02x\n"
msgstr ""
-#: vms-alpha.c:6230
+#: vms-alpha.c:6236
#, c-format
msgid " transfer addr psect: %u\n"
msgstr ""
-#: vms-alpha.c:6232
+#: vms-alpha.c:6238
#, c-format
msgid " transfer address : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6241
+#: vms-alpha.c:6247
msgid " WEAK"
msgstr ""
-#: vms-alpha.c:6243
+#: vms-alpha.c:6249
msgid " DEF"
msgstr ""
-#: vms-alpha.c:6245
+#: vms-alpha.c:6251
msgid " UNI"
msgstr ""
-#: vms-alpha.c:6247 vms-alpha.c:6268
+#: vms-alpha.c:6253 vms-alpha.c:6274
msgid " REL"
msgstr ""
-#: vms-alpha.c:6249
+#: vms-alpha.c:6255
msgid " COMM"
msgstr ""
-#: vms-alpha.c:6251
+#: vms-alpha.c:6257
msgid " VECEP"
msgstr ""
-#: vms-alpha.c:6253
+#: vms-alpha.c:6259
msgid " NORM"
msgstr ""
-#: vms-alpha.c:6255
+#: vms-alpha.c:6261
msgid " QVAL"
msgstr ""
-#: vms-alpha.c:6262
+#: vms-alpha.c:6268
msgid " PIC"
msgstr ""
-#: vms-alpha.c:6264
+#: vms-alpha.c:6270
msgid " LIB"
msgstr ""
-#: vms-alpha.c:6266
+#: vms-alpha.c:6272
msgid " OVR"
msgstr ""
-#: vms-alpha.c:6270
+#: vms-alpha.c:6276
msgid " GBL"
msgstr ""
-#: vms-alpha.c:6272
+#: vms-alpha.c:6278
msgid " SHR"
msgstr ""
-#: vms-alpha.c:6274
+#: vms-alpha.c:6280
msgid " EXE"
msgstr ""
-#: vms-alpha.c:6276
+#: vms-alpha.c:6282
msgid " RD"
msgstr ""
-#: vms-alpha.c:6278
+#: vms-alpha.c:6284
msgid " WRT"
msgstr ""
-#: vms-alpha.c:6280
+#: vms-alpha.c:6286
msgid " VEC"
msgstr ""
-#: vms-alpha.c:6282
+#: vms-alpha.c:6288
msgid " NOMOD"
msgstr ""
-#: vms-alpha.c:6284
+#: vms-alpha.c:6290
msgid " COM"
msgstr ""
-#: vms-alpha.c:6286
+#: vms-alpha.c:6292
msgid " 64B"
msgstr ""
-#: vms-alpha.c:6295
+#: vms-alpha.c:6301
#, c-format
msgid " EGSD (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6310
+#: vms-alpha.c:6316
#, c-format
msgid " EGSD entry %2u (type: %u, len: %u): "
msgstr ""
-#: vms-alpha.c:6316 vms-alpha.c:6611
+#: vms-alpha.c:6322 vms-alpha.c:6617
#, c-format
msgid " Erroneous length\n"
msgstr ""
-#: vms-alpha.c:6329
+#: vms-alpha.c:6335
#, c-format
msgid "PSC - Program section definition\n"
msgstr ""
-#: vms-alpha.c:6330 vms-alpha.c:6350
+#: vms-alpha.c:6336 vms-alpha.c:6356
#, c-format
msgid " alignment : 2**%u\n"
msgstr ""
-#: vms-alpha.c:6331 vms-alpha.c:6351
+#: vms-alpha.c:6337 vms-alpha.c:6357
#, c-format
msgid " flags : 0x%04x"
msgstr ""
-#: vms-alpha.c:6335
+#: vms-alpha.c:6341
#, c-format
msgid " alloc (len): %u (0x%08x)\n"
msgstr ""
-#: vms-alpha.c:6337 vms-alpha.c:6403 vms-alpha.c:6471
+#: vms-alpha.c:6343 vms-alpha.c:6409 vms-alpha.c:6477
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6349
+#: vms-alpha.c:6355
#, c-format
msgid "SPSC - Shared Image Program section def\n"
msgstr ""
-#: vms-alpha.c:6355
+#: vms-alpha.c:6361
#, c-format
msgid " alloc (len) : %u (0x%08x)\n"
msgstr ""
-#: vms-alpha.c:6356
+#: vms-alpha.c:6362
#, c-format
msgid " image offset : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6358
+#: vms-alpha.c:6364
#, c-format
msgid " symvec offset : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6361
+#: vms-alpha.c:6367
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6377
+#: vms-alpha.c:6383
#, c-format
msgid "SYM - Global symbol definition\n"
msgstr ""
-#: vms-alpha.c:6378 vms-alpha.c:6459 vms-alpha.c:6483 vms-alpha.c:6506
+#: vms-alpha.c:6384 vms-alpha.c:6465 vms-alpha.c:6489 vms-alpha.c:6512
#, c-format
msgid " flags: 0x%04x"
msgstr ""
-#: vms-alpha.c:6381
+#: vms-alpha.c:6387
#, c-format
msgid " psect offset: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6385
+#: vms-alpha.c:6391
#, c-format
msgid " code address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6387
+#: vms-alpha.c:6393
#, c-format
msgid " psect index for entry point : %u\n"
msgstr ""
-#: vms-alpha.c:6390 vms-alpha.c:6490 vms-alpha.c:6513
+#: vms-alpha.c:6396 vms-alpha.c:6496 vms-alpha.c:6519
#, c-format
msgid " psect index : %u\n"
msgstr ""
-#: vms-alpha.c:6393 vms-alpha.c:6493 vms-alpha.c:6516
+#: vms-alpha.c:6399 vms-alpha.c:6499 vms-alpha.c:6522
#, c-format
msgid " name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6401
+#: vms-alpha.c:6407
#, c-format
msgid "SYM - Global symbol reference\n"
msgstr ""
-#: vms-alpha.c:6416
+#: vms-alpha.c:6422
#, c-format
msgid "IDC - Ident Consistency check\n"
msgstr ""
-#: vms-alpha.c:6417
+#: vms-alpha.c:6423
#, c-format
msgid " flags : 0x%08x"
msgstr ""
-#: vms-alpha.c:6421
+#: vms-alpha.c:6427
#, c-format
msgid " id match : %x\n"
msgstr ""
-#: vms-alpha.c:6423
+#: vms-alpha.c:6429
#, c-format
msgid " error severity: %x\n"
msgstr ""
-#: vms-alpha.c:6427
+#: vms-alpha.c:6433
#, c-format
msgid " entity name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6433
+#: vms-alpha.c:6439
#, c-format
msgid " object name : %.*s\n"
msgstr ""
-#: vms-alpha.c:6442
+#: vms-alpha.c:6448
#, c-format
msgid " binary ident : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6446
+#: vms-alpha.c:6452
#, c-format
msgid " ascii ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:6458
+#: vms-alpha.c:6464
#, c-format
msgid "SYMG - Universal symbol definition\n"
msgstr ""
-#: vms-alpha.c:6462
+#: vms-alpha.c:6468
#, c-format
msgid " symbol vector offset: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6464
+#: vms-alpha.c:6470
#, c-format
msgid " entry point: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6466
+#: vms-alpha.c:6472
#, c-format
msgid " proc descr : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6468
+#: vms-alpha.c:6474
#, c-format
msgid " psect index: %u\n"
msgstr ""
-#: vms-alpha.c:6482
+#: vms-alpha.c:6488
#, c-format
msgid "SYMV - Vectored symbol definition\n"
msgstr ""
-#: vms-alpha.c:6486
+#: vms-alpha.c:6492
#, c-format
msgid " vector : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6488 vms-alpha.c:6511
+#: vms-alpha.c:6494 vms-alpha.c:6517
#, c-format
msgid " psect offset: %u\n"
msgstr ""
-#: vms-alpha.c:6505
+#: vms-alpha.c:6511
#, c-format
msgid "SYMM - Global symbol definition with version\n"
msgstr ""
-#: vms-alpha.c:6509
+#: vms-alpha.c:6515
#, c-format
msgid " version mask: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6522
+#: vms-alpha.c:6528
#, c-format
msgid "unhandled egsd entry type %u\n"
msgstr ""
-#: vms-alpha.c:6561
+#: vms-alpha.c:6567
#, c-format
msgid " linkage index: %u, replacement insn: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:6565
+#: vms-alpha.c:6571
#, c-format
msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6570
+#: vms-alpha.c:6576
#, c-format
msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6576
+#: vms-alpha.c:6582
#, c-format
msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6581
+#: vms-alpha.c:6587
#, c-format
msgid " global name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6593
+#: vms-alpha.c:6599
#, c-format
msgid " %s (len=%u):\n"
msgstr ""
-#: vms-alpha.c:6616
+#: vms-alpha.c:6622
#, c-format
msgid " (type: %3u, size: %3u): "
msgstr ""
-#: vms-alpha.c:6622
+#: vms-alpha.c:6628
#, c-format
msgid "STA_GBL (stack global) %.*s\n"
msgstr ""
-#: vms-alpha.c:6626
+#: vms-alpha.c:6632
#, c-format
msgid "STA_LW (stack longword)"
msgstr ""
-#: vms-alpha.c:6632
+#: vms-alpha.c:6638
#, c-format
msgid "STA_QW (stack quadword)"
msgstr ""
-#: vms-alpha.c:6639
+#: vms-alpha.c:6645
#, c-format
msgid "STA_PQ (stack psect base + offset)\n"
msgstr ""
-#: vms-alpha.c:6642
+#: vms-alpha.c:6648
#, c-format
msgid " psect: %u, offset: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6648
+#: vms-alpha.c:6654
#, c-format
msgid "STA_LI (stack literal)\n"
msgstr ""
-#: vms-alpha.c:6651
+#: vms-alpha.c:6657
#, c-format
msgid "STA_MOD (stack module)\n"
msgstr ""
-#: vms-alpha.c:6654
+#: vms-alpha.c:6660
#, c-format
msgid "STA_CKARG (compare procedure argument)\n"
msgstr ""
-#: vms-alpha.c:6658
+#: vms-alpha.c:6664
#, c-format
msgid "STO_B (store byte)\n"
msgstr ""
-#: vms-alpha.c:6661
+#: vms-alpha.c:6667
#, c-format
msgid "STO_W (store word)\n"
msgstr ""
-#: vms-alpha.c:6664
+#: vms-alpha.c:6670
#, c-format
msgid "STO_LW (store longword)\n"
msgstr ""
-#: vms-alpha.c:6667
+#: vms-alpha.c:6673
#, c-format
msgid "STO_QW (store quadword)\n"
msgstr ""
-#: vms-alpha.c:6674
+#: vms-alpha.c:6680
#, c-format
msgid "STO_IMMR (store immediate repeat) %u bytes\n"
msgstr ""
-#: vms-alpha.c:6683
+#: vms-alpha.c:6689
#, c-format
msgid "STO_GBL (store global) %.*s\n"
msgstr ""
-#: vms-alpha.c:6688
+#: vms-alpha.c:6694
#, c-format
msgid "STO_CA (store code address) %.*s\n"
msgstr ""
-#: vms-alpha.c:6692
+#: vms-alpha.c:6698
#, c-format
msgid "STO_RB (store relative branch)\n"
msgstr ""
-#: vms-alpha.c:6695
+#: vms-alpha.c:6701
#, c-format
msgid "STO_AB (store absolute branch)\n"
msgstr ""
-#: vms-alpha.c:6698
+#: vms-alpha.c:6704
#, c-format
msgid "STO_OFF (store offset to psect)\n"
msgstr ""
-#: vms-alpha.c:6705
+#: vms-alpha.c:6711
#, c-format
msgid "STO_IMM (store immediate) %u bytes\n"
msgstr ""
-#: vms-alpha.c:6714
+#: vms-alpha.c:6720
#, c-format
msgid "STO_GBL_LW (store global longword) %.*s\n"
msgstr ""
-#: vms-alpha.c:6718
+#: vms-alpha.c:6724
#, c-format
msgid "STO_OFF (store LP with procedure signature)\n"
msgstr ""
-#: vms-alpha.c:6721
+#: vms-alpha.c:6727
#, c-format
msgid "STO_BR_GBL (store branch global) *todo*\n"
msgstr ""
-#: vms-alpha.c:6724
+#: vms-alpha.c:6730
#, c-format
msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
msgstr ""
-#: vms-alpha.c:6728
+#: vms-alpha.c:6734
#, c-format
msgid "OPR_NOP (no-operation)\n"
msgstr ""
-#: vms-alpha.c:6731
+#: vms-alpha.c:6737
#, c-format
msgid "OPR_ADD (add)\n"
msgstr ""
-#: vms-alpha.c:6734
+#: vms-alpha.c:6740
#, c-format
msgid "OPR_SUB (subtract)\n"
msgstr ""
-#: vms-alpha.c:6737
+#: vms-alpha.c:6743
#, c-format
msgid "OPR_MUL (multiply)\n"
msgstr ""
-#: vms-alpha.c:6740
+#: vms-alpha.c:6746
#, c-format
msgid "OPR_DIV (divide)\n"
msgstr ""
-#: vms-alpha.c:6743
+#: vms-alpha.c:6749
#, c-format
msgid "OPR_AND (logical and)\n"
msgstr ""
-#: vms-alpha.c:6746
+#: vms-alpha.c:6752
#, c-format
msgid "OPR_IOR (logical inclusive or)\n"
msgstr ""
-#: vms-alpha.c:6749
+#: vms-alpha.c:6755
#, c-format
msgid "OPR_EOR (logical exclusive or)\n"
msgstr ""
-#: vms-alpha.c:6752
+#: vms-alpha.c:6758
#, c-format
msgid "OPR_NEG (negate)\n"
msgstr ""
-#: vms-alpha.c:6755
+#: vms-alpha.c:6761
#, c-format
msgid "OPR_COM (complement)\n"
msgstr ""
-#: vms-alpha.c:6758
+#: vms-alpha.c:6764
#, c-format
msgid "OPR_INSV (insert field)\n"
msgstr ""
-#: vms-alpha.c:6761
+#: vms-alpha.c:6767
#, c-format
msgid "OPR_ASH (arithmetic shift)\n"
msgstr ""
-#: vms-alpha.c:6764
+#: vms-alpha.c:6770
#, c-format
msgid "OPR_USH (unsigned shift)\n"
msgstr ""
-#: vms-alpha.c:6767
+#: vms-alpha.c:6773
#, c-format
msgid "OPR_ROT (rotate)\n"
msgstr ""
-#: vms-alpha.c:6770
+#: vms-alpha.c:6776
#, c-format
msgid "OPR_SEL (select)\n"
msgstr ""
-#: vms-alpha.c:6773
+#: vms-alpha.c:6779
#, c-format
msgid "OPR_REDEF (redefine symbol to curr location)\n"
msgstr ""
-#: vms-alpha.c:6776
+#: vms-alpha.c:6782
#, c-format
msgid "OPR_REDEF (define a literal)\n"
msgstr ""
-#: vms-alpha.c:6780
+#: vms-alpha.c:6786
#, c-format
msgid "STC_LP (store cond linkage pair)\n"
msgstr ""
-#: vms-alpha.c:6784
+#: vms-alpha.c:6790
#, c-format
msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
msgstr ""
-#: vms-alpha.c:6788
+#: vms-alpha.c:6794
#, c-format
msgid " linkage index: %u, procedure: %.*s\n"
msgstr ""
-#: vms-alpha.c:6795
+#: vms-alpha.c:6801
#, c-format
msgid " signature: %.*s\n"
msgstr ""
-#: vms-alpha.c:6801
+#: vms-alpha.c:6807
#, c-format
msgid "STC_GBL (store cond global)\n"
msgstr ""
-#: vms-alpha.c:6804
+#: vms-alpha.c:6810
#, c-format
msgid " linkage index: %u, global: %.*s\n"
msgstr ""
-#: vms-alpha.c:6809
+#: vms-alpha.c:6815
#, c-format
msgid "STC_GCA (store cond code address)\n"
msgstr ""
-#: vms-alpha.c:6812
+#: vms-alpha.c:6818
#, c-format
msgid " linkage index: %u, procedure name: %.*s\n"
msgstr ""
-#: vms-alpha.c:6817
+#: vms-alpha.c:6823
#, c-format
msgid "STC_PS (store cond psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6821
+#: vms-alpha.c:6827
#, c-format
msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:6828
+#: vms-alpha.c:6834
#, c-format
msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
msgstr ""
-#: vms-alpha.c:6832
+#: vms-alpha.c:6838
#, c-format
msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6836
+#: vms-alpha.c:6842
#, c-format
msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
msgstr ""
-#: vms-alpha.c:6840
+#: vms-alpha.c:6846
#, c-format
msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6844
+#: vms-alpha.c:6850
#, c-format
msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
msgstr ""
-#: vms-alpha.c:6848
+#: vms-alpha.c:6854
#, c-format
msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6852
+#: vms-alpha.c:6858
#, c-format
msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
msgstr ""
-#: vms-alpha.c:6856
+#: vms-alpha.c:6862
#, c-format
msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6861
+#: vms-alpha.c:6867
#, c-format
msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
msgstr ""
-#: vms-alpha.c:6865
+#: vms-alpha.c:6871
#, c-format
msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
msgstr ""
-#: vms-alpha.c:6869
+#: vms-alpha.c:6875
#, c-format
msgid "CTL_SETRB (set relocation base)\n"
msgstr ""
-#: vms-alpha.c:6875
+#: vms-alpha.c:6881
#, c-format
msgid "CTL_AUGRB (augment relocation base) %u\n"
msgstr ""
-#: vms-alpha.c:6880
+#: vms-alpha.c:6886
#, c-format
msgid "CTL_DFLOC (define location)\n"
msgstr ""
-#: vms-alpha.c:6883
+#: vms-alpha.c:6889
#, c-format
msgid "CTL_STLOC (set location)\n"
msgstr ""
-#: vms-alpha.c:6886
+#: vms-alpha.c:6892
#, c-format
msgid "CTL_STKDL (stack defined location)\n"
msgstr ""
-#: vms-alpha.c:6889 vms-alpha.c:7317 vms-alpha.c:7478
+#: vms-alpha.c:6895 vms-alpha.c:7323 vms-alpha.c:7484
#, c-format
msgid "*unhandled*\n"
msgstr ""
-#: vms-alpha.c:6914
+#: vms-alpha.c:6920
#, c-format
msgid "cannot read GST record header\n"
msgstr ""
#. Ill-formed.
-#: vms-alpha.c:6937
+#: vms-alpha.c:6943
#, c-format
msgid "cannot find EMH in first GST record\n"
msgstr ""
-#: vms-alpha.c:6961
+#: vms-alpha.c:6967
#, c-format
msgid "corrupted GST\n"
msgstr ""
-#: vms-alpha.c:6974
+#: vms-alpha.c:6980
#, c-format
msgid "cannot read GST record\n"
msgstr ""
-#: vms-alpha.c:7001
+#: vms-alpha.c:7007
#, c-format
msgid " unhandled EOBJ record type %u\n"
msgstr ""
-#: vms-alpha.c:7026
+#: vms-alpha.c:7032
#, c-format
msgid " bitcount: %u, base addr: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7040
+#: vms-alpha.c:7046
#, c-format
msgid " bitmap: 0x%08x (count: %u):\n"
msgstr ""
-#: vms-alpha.c:7047
+#: vms-alpha.c:7053
#, c-format
msgid " %08x"
msgstr ""
-#: vms-alpha.c:7074
+#: vms-alpha.c:7080
#, c-format
msgid " image %u (%u entries)\n"
msgstr ""
-#: vms-alpha.c:7080
+#: vms-alpha.c:7086
#, c-format
msgid " offset: 0x%08x, val: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7103
+#: vms-alpha.c:7109
#, c-format
msgid " image %u (%u entries), offsets:\n"
msgstr ""
-#: vms-alpha.c:7110
+#: vms-alpha.c:7116
#, c-format
msgid " 0x%08x"
msgstr ""
#. 64 bits.
-#: vms-alpha.c:7236
+#: vms-alpha.c:7242
#, c-format
msgid "64 bits *unhandled*\n"
msgstr ""
-#: vms-alpha.c:7241
+#: vms-alpha.c:7247
#, c-format
msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7252
+#: vms-alpha.c:7258
#, c-format
msgid "non-contiguous array of %s\n"
msgstr ""
-#: vms-alpha.c:7259
+#: vms-alpha.c:7265
#, c-format
msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
msgstr ""
-#: vms-alpha.c:7264
+#: vms-alpha.c:7270
#, c-format
msgid "arsize: %u, a0: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7268
+#: vms-alpha.c:7274
#, c-format
msgid "Strides:\n"
msgstr ""
-#: vms-alpha.c:7282
+#: vms-alpha.c:7288
#, c-format
msgid "Bounds:\n"
msgstr ""
-#: vms-alpha.c:7289
+#: vms-alpha.c:7295
#, c-format
msgid "[%u]: Lower: %u, upper: %u\n"
msgstr ""
-#: vms-alpha.c:7303
+#: vms-alpha.c:7309
#, c-format
msgid "unaligned bit-string of %s\n"
msgstr ""
-#: vms-alpha.c:7310
+#: vms-alpha.c:7316
#, c-format
msgid "base: %u, pos: %u\n"
msgstr ""
-#: vms-alpha.c:7336
+#: vms-alpha.c:7342
#, c-format
msgid "vflags: 0x%02x, value: 0x%08x "
msgstr ""
-#: vms-alpha.c:7343
+#: vms-alpha.c:7349
#, c-format
msgid "(no value)\n"
msgstr ""
-#: vms-alpha.c:7346
+#: vms-alpha.c:7352
#, c-format
msgid "(not active)\n"
msgstr ""
-#: vms-alpha.c:7349
+#: vms-alpha.c:7355
#, c-format
msgid "(not allocated)\n"
msgstr ""
-#: vms-alpha.c:7352
+#: vms-alpha.c:7358
#, c-format
msgid "(descriptor)\n"
msgstr ""
-#: vms-alpha.c:7357
+#: vms-alpha.c:7363
#, c-format
msgid "(trailing value)\n"
msgstr ""
-#: vms-alpha.c:7360
+#: vms-alpha.c:7366
#, c-format
msgid "(value spec follows)\n"
msgstr ""
-#: vms-alpha.c:7363
+#: vms-alpha.c:7369
#, c-format
msgid "(at bit offset %u)\n"
msgstr ""
-#: vms-alpha.c:7367
+#: vms-alpha.c:7373
#, c-format
msgid "(reg: %u, disp: %u, indir: %u, kind: "
msgstr ""
-#: vms-alpha.c:7374
+#: vms-alpha.c:7380
msgid "literal"
msgstr ""
-#: vms-alpha.c:7377
+#: vms-alpha.c:7383
msgid "address"
msgstr ""
-#: vms-alpha.c:7380
+#: vms-alpha.c:7386
msgid "desc"
msgstr ""
-#: vms-alpha.c:7383
+#: vms-alpha.c:7389
msgid "reg"
msgstr ""
-#: vms-alpha.c:7404
+#: vms-alpha.c:7410
#, c-format
msgid "len: %2u, kind: %2u "
msgstr ""
-#: vms-alpha.c:7412
+#: vms-alpha.c:7418
#, c-format
msgid "atomic, type=0x%02x %s\n"
msgstr ""
-#: vms-alpha.c:7417
+#: vms-alpha.c:7423
#, c-format
msgid "indirect, defined at 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7421
+#: vms-alpha.c:7427
#, c-format
msgid "typed pointer\n"
msgstr ""
-#: vms-alpha.c:7425
+#: vms-alpha.c:7431
#, c-format
msgid "pointer\n"
msgstr ""
-#: vms-alpha.c:7436
+#: vms-alpha.c:7442
#, c-format
msgid "array, dim: %u, bitmap: "
msgstr ""
-#: vms-alpha.c:7451
+#: vms-alpha.c:7457
#, c-format
msgid "array descriptor:\n"
msgstr ""
-#: vms-alpha.c:7462
+#: vms-alpha.c:7468
#, c-format
msgid "type spec for element:\n"
msgstr ""
-#: vms-alpha.c:7464
+#: vms-alpha.c:7470
#, c-format
msgid "type spec for subscript %u:\n"
msgstr ""
-#: vms-alpha.c:7489
+#: vms-alpha.c:7495
#, c-format
msgid "Debug symbol table:\n"
msgstr ""
-#: vms-alpha.c:7500
+#: vms-alpha.c:7506
#, c-format
msgid "cannot read DST header\n"
msgstr ""
-#: vms-alpha.c:7506
+#: vms-alpha.c:7512
#, c-format
msgid " type: %3u, len: %3u (at 0x%08x): "
msgstr ""
-#: vms-alpha.c:7523
+#: vms-alpha.c:7531
#, c-format
msgid "cannot read DST symbol\n"
msgstr ""
-#: vms-alpha.c:7567
+#: vms-alpha.c:7575
#, c-format
msgid "standard data: %s\n"
msgstr ""
-#: vms-alpha.c:7571 vms-alpha.c:7695
+#: vms-alpha.c:7579 vms-alpha.c:7703
#, c-format
msgid " name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7579
+#: vms-alpha.c:7587
#, c-format
msgid "modbeg\n"
msgstr ""
-#: vms-alpha.c:7583
+#: vms-alpha.c:7591
#, c-format
msgid " flags: %d, language: %u, major: %u, minor: %u\n"
msgstr ""
-#: vms-alpha.c:7593 vms-alpha.c:7959
+#: vms-alpha.c:7601 vms-alpha.c:7970
#, c-format
msgid " module name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7600
+#: vms-alpha.c:7608
#, c-format
msgid " compiler : %.*s\n"
msgstr ""
-#: vms-alpha.c:7607
+#: vms-alpha.c:7615
#, c-format
msgid "modend\n"
msgstr ""
-#: vms-alpha.c:7614
+#: vms-alpha.c:7622
msgid "rtnbeg\n"
msgstr ""
-#: vms-alpha.c:7618
+#: vms-alpha.c:7626
#, c-format
msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7627
+#: vms-alpha.c:7635
#, c-format
msgid " routine name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7638
+#: vms-alpha.c:7646
#, c-format
msgid "rtnend: size 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7648
+#: vms-alpha.c:7656
#, c-format
msgid "prolog: bkpt address 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7658
+#: vms-alpha.c:7666
#, c-format
msgid "epilog: flags: %u, count: %u\n"
msgstr ""
-#: vms-alpha.c:7673
+#: vms-alpha.c:7681
#, c-format
msgid "blkbeg: address: 0x%08x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7685
+#: vms-alpha.c:7693
#, c-format
msgid "blkend: size: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7691
+#: vms-alpha.c:7699
#, c-format
msgid "typspec (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7707
+#: vms-alpha.c:7715
#, c-format
msgid "septyp, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7723
+#: vms-alpha.c:7732
#, c-format
msgid "recbeg: name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7727
+#: vms-alpha.c:7738
#, c-format
msgid " len: %u bits\n"
msgstr ""
-#: vms-alpha.c:7733
+#: vms-alpha.c:7744
#, c-format
msgid "recend\n"
msgstr ""
-#: vms-alpha.c:7738
+#: vms-alpha.c:7749
#, c-format
msgid "enumbeg, len: %u, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7744
+#: vms-alpha.c:7755
#, c-format
msgid "enumelt, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7750
+#: vms-alpha.c:7761
#, c-format
msgid "enumend\n"
msgstr ""
-#: vms-alpha.c:7757
+#: vms-alpha.c:7768
#, c-format
msgid "label, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:7760
+#: vms-alpha.c:7771
#, c-format
msgid " address: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7772
+#: vms-alpha.c:7783
#, c-format
msgid "discontiguous range (nbr: %u)\n"
msgstr ""
-#: vms-alpha.c:7779
+#: vms-alpha.c:7790
#, c-format
msgid " address: 0x%08x, size: %u\n"
msgstr ""
-#: vms-alpha.c:7790
+#: vms-alpha.c:7801
#, c-format
msgid "line num (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7809
+#: vms-alpha.c:7820
#, c-format
msgid "delta_pc_w %u\n"
msgstr ""
-#: vms-alpha.c:7818
+#: vms-alpha.c:7829
#, c-format
msgid "incr_linum(b): +%u\n"
msgstr ""
-#: vms-alpha.c:7826
+#: vms-alpha.c:7837
#, c-format
msgid "incr_linum_w: +%u\n"
msgstr ""
-#: vms-alpha.c:7834
+#: vms-alpha.c:7845
#, c-format
msgid "incr_linum_l: +%u\n"
msgstr ""
-#: vms-alpha.c:7842
+#: vms-alpha.c:7853
#, c-format
msgid "set_line_num(w) %u\n"
msgstr ""
-#: vms-alpha.c:7849
+#: vms-alpha.c:7860
#, c-format
msgid "set_line_num_b %u\n"
msgstr ""
-#: vms-alpha.c:7856
+#: vms-alpha.c:7867
#, c-format
msgid "set_line_num_l %u\n"
msgstr ""
-#: vms-alpha.c:7863
+#: vms-alpha.c:7874
#, c-format
msgid "set_abs_pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7869
+#: vms-alpha.c:7880
#, c-format
msgid "delta_pc_l: +0x%08x\n"
msgstr ""
-#: vms-alpha.c:7876
+#: vms-alpha.c:7887
#, c-format
msgid "term(b): 0x%02x"
msgstr ""
-#: vms-alpha.c:7878
+#: vms-alpha.c:7889
#, c-format
msgid " pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7885
+#: vms-alpha.c:7896
#, c-format
msgid "term_w: 0x%04x"
msgstr ""
-#: vms-alpha.c:7887
+#: vms-alpha.c:7898
#, c-format
msgid " pc: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:7893
+#: vms-alpha.c:7904
#, c-format
msgid "delta pc +%-4d"
msgstr ""
-#: vms-alpha.c:7897
+#: vms-alpha.c:7908
#, c-format
msgid " pc: 0x%08x line: %5u\n"
msgstr ""
-#: vms-alpha.c:7902
+#: vms-alpha.c:7913
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr ""
-#: vms-alpha.c:7917
+#: vms-alpha.c:7928
#, c-format
msgid "source (len: %u)\n"
msgstr ""
-#: vms-alpha.c:7936
+#: vms-alpha.c:7947
#, c-format
msgid " declfile: len: %u, flags: %u, fileid: %u\n"
msgstr ""
-#: vms-alpha.c:7941
+#: vms-alpha.c:7952
#, c-format
msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
msgstr ""
-#: vms-alpha.c:7953
+#: vms-alpha.c:7964
#, c-format
msgid " filename : %.*s\n"
msgstr ""
-#: vms-alpha.c:7969
+#: vms-alpha.c:7980
#, c-format
msgid " setfile %u\n"
msgstr ""
-#: vms-alpha.c:7976 vms-alpha.c:7983
+#: vms-alpha.c:7987 vms-alpha.c:7994
#, c-format
msgid " setrec %u\n"
msgstr ""
-#: vms-alpha.c:7990 vms-alpha.c:7997
+#: vms-alpha.c:8001 vms-alpha.c:8008
#, c-format
msgid " setlnum %u\n"
msgstr ""
-#: vms-alpha.c:8004 vms-alpha.c:8011
+#: vms-alpha.c:8015 vms-alpha.c:8022
#, c-format
msgid " deflines %u\n"
msgstr ""
-#: vms-alpha.c:8015
+#: vms-alpha.c:8026
#, c-format
msgid " formfeed\n"
msgstr ""
-#: vms-alpha.c:8019
+#: vms-alpha.c:8030
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr ""
-#: vms-alpha.c:8031
+#: vms-alpha.c:8042
#, c-format
msgid "*unhandled* dst type %u\n"
msgstr ""
-#: vms-alpha.c:8063
+#: vms-alpha.c:8074
#, c-format
msgid "cannot read EIHD\n"
msgstr ""
-#: vms-alpha.c:8067
+#: vms-alpha.c:8078
#, c-format
msgid "EIHD: (size: %u, nbr blocks: %u)\n"
msgstr ""
-#: vms-alpha.c:8071
+#: vms-alpha.c:8082
#, c-format
msgid " majorid: %u, minorid: %u\n"
msgstr ""
-#: vms-alpha.c:8079
+#: vms-alpha.c:8090
msgid "executable"
msgstr ""
-#: vms-alpha.c:8082
+#: vms-alpha.c:8093
msgid "linkable image"
msgstr ""
-#: vms-alpha.c:8089
+#: vms-alpha.c:8100
#, c-format
msgid " image type: %u (%s)"
msgstr ""
-#: vms-alpha.c:8095
+#: vms-alpha.c:8106
msgid "native"
msgstr ""
-#: vms-alpha.c:8098
+#: vms-alpha.c:8109
msgid "CLI"
msgstr ""
-#: vms-alpha.c:8105
+#: vms-alpha.c:8116
#, c-format
msgid ", subtype: %u (%s)\n"
msgstr ""
-#: vms-alpha.c:8112
+#: vms-alpha.c:8123
#, c-format
msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
msgstr ""
-#: vms-alpha.c:8116
+#: vms-alpha.c:8127
#, c-format
msgid " fixup info rva: "
msgstr ""
-#: vms-alpha.c:8118
+#: vms-alpha.c:8129
#, c-format
msgid ", symbol vector rva: "
msgstr ""
-#: vms-alpha.c:8121
+#: vms-alpha.c:8132
#, c-format
msgid ""
"\n"
" version array off: %u\n"
msgstr ""
-#: vms-alpha.c:8126
+#: vms-alpha.c:8137
#, c-format
msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
msgstr ""
-#: vms-alpha.c:8132
+#: vms-alpha.c:8143
#, c-format
msgid " linker flags: %08x:"
msgstr ""
-#: vms-alpha.c:8163
+#: vms-alpha.c:8174
#, c-format
msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
msgstr ""
-#: vms-alpha.c:8169
+#: vms-alpha.c:8180
#, c-format
msgid " BPAGE: %u"
msgstr ""
-#: vms-alpha.c:8176
+#: vms-alpha.c:8187
#, c-format
msgid ", ext fixup offset: %u, no_opt psect off: %u"
msgstr ""
-#: vms-alpha.c:8179
+#: vms-alpha.c:8190
#, c-format
msgid ", alias: %u\n"
msgstr ""
-#: vms-alpha.c:8187
+#: vms-alpha.c:8198
#, c-format
msgid "system version array information:\n"
msgstr ""
-#: vms-alpha.c:8191
+#: vms-alpha.c:8202
#, c-format
msgid "cannot read EIHVN header\n"
msgstr ""
-#: vms-alpha.c:8201
+#: vms-alpha.c:8212
#, c-format
msgid "cannot read EIHVN version\n"
msgstr ""
-#: vms-alpha.c:8204
+#: vms-alpha.c:8215
#, c-format
msgid " %02u "
msgstr ""
-#: vms-alpha.c:8208
+#: vms-alpha.c:8219
msgid "BASE_IMAGE "
msgstr ""
-#: vms-alpha.c:8211
+#: vms-alpha.c:8222
msgid "MEMORY_MANAGEMENT"
msgstr ""
-#: vms-alpha.c:8214
+#: vms-alpha.c:8225
msgid "IO "
msgstr ""
-#: vms-alpha.c:8217
+#: vms-alpha.c:8228
msgid "FILES_VOLUMES "
msgstr ""
-#: vms-alpha.c:8220
+#: vms-alpha.c:8231
msgid "PROCESS_SCHED "
msgstr ""
-#: vms-alpha.c:8223
+#: vms-alpha.c:8234
msgid "SYSGEN "
msgstr ""
-#: vms-alpha.c:8226
+#: vms-alpha.c:8237
msgid "CLUSTERS_LOCKMGR "
msgstr ""
-#: vms-alpha.c:8229
+#: vms-alpha.c:8240
msgid "LOGICAL_NAMES "
msgstr ""
-#: vms-alpha.c:8232
+#: vms-alpha.c:8243
msgid "SECURITY "
msgstr ""
-#: vms-alpha.c:8235
+#: vms-alpha.c:8246
msgid "IMAGE_ACTIVATOR "
msgstr ""
-#: vms-alpha.c:8238
+#: vms-alpha.c:8249
msgid "NETWORKS "
msgstr ""
-#: vms-alpha.c:8241
+#: vms-alpha.c:8252
msgid "COUNTERS "
msgstr ""
-#: vms-alpha.c:8244
+#: vms-alpha.c:8255
msgid "STABLE "
msgstr ""
-#: vms-alpha.c:8247
+#: vms-alpha.c:8258
msgid "MISC "
msgstr ""
-#: vms-alpha.c:8250
+#: vms-alpha.c:8261
msgid "CPU "
msgstr ""
-#: vms-alpha.c:8253
+#: vms-alpha.c:8264
msgid "VOLATILE "
msgstr ""
-#: vms-alpha.c:8256
+#: vms-alpha.c:8267
msgid "SHELL "
msgstr ""
-#: vms-alpha.c:8259
+#: vms-alpha.c:8270
msgid "POSIX "
msgstr ""
-#: vms-alpha.c:8262
+#: vms-alpha.c:8273
msgid "MULTI_PROCESSING "
msgstr ""
-#: vms-alpha.c:8265
+#: vms-alpha.c:8276
msgid "GALAXY "
msgstr ""
-#: vms-alpha.c:8268
+#: vms-alpha.c:8279
msgid "*unknown* "
msgstr ""
-#: vms-alpha.c:8284 vms-alpha.c:8558
+#: vms-alpha.c:8295 vms-alpha.c:8569
#, c-format
msgid "cannot read EIHA\n"
msgstr ""
-#: vms-alpha.c:8287
+#: vms-alpha.c:8298
#, c-format
msgid "Image activation: (size=%u)\n"
msgstr ""
-#: vms-alpha.c:8290
+#: vms-alpha.c:8301
#, c-format
msgid " First address : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8294
+#: vms-alpha.c:8305
#, c-format
msgid " Second address: 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8298
+#: vms-alpha.c:8309
#, c-format
msgid " Third address : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8302
+#: vms-alpha.c:8313
#, c-format
msgid " Fourth address: 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8306
+#: vms-alpha.c:8317
#, c-format
msgid " Shared image : 0x%08x 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8317
+#: vms-alpha.c:8328
#, c-format
msgid "cannot read EIHI\n"
msgstr ""
-#: vms-alpha.c:8321
+#: vms-alpha.c:8332
#, c-format
msgid "Image identification: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8324
+#: vms-alpha.c:8335
#, c-format
msgid " image name : %.*s\n"
msgstr ""
-#: vms-alpha.c:8326
+#: vms-alpha.c:8337
#, c-format
msgid " link time : %s\n"
msgstr ""
-#: vms-alpha.c:8328
+#: vms-alpha.c:8339
#, c-format
msgid " image ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:8330
+#: vms-alpha.c:8341
#, c-format
msgid " linker ident : %.*s\n"
msgstr ""
-#: vms-alpha.c:8332
+#: vms-alpha.c:8343
#, c-format
msgid " image build ident: %.*s\n"
msgstr ""
-#: vms-alpha.c:8342
+#: vms-alpha.c:8353
#, c-format
msgid "cannot read EIHS\n"
msgstr ""
-#: vms-alpha.c:8346
+#: vms-alpha.c:8357
#, c-format
msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8352
+#: vms-alpha.c:8363
#, c-format
msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
msgstr ""
-#: vms-alpha.c:8357
+#: vms-alpha.c:8368
#, c-format
msgid " global symbol table: vbn: %u, records: %u\n"
msgstr ""
-#: vms-alpha.c:8362
+#: vms-alpha.c:8373
#, c-format
msgid " debug module table : vbn: %u, size: %u\n"
msgstr ""
-#: vms-alpha.c:8375
+#: vms-alpha.c:8386
#, c-format
msgid "cannot read EISD\n"
msgstr ""
-#: vms-alpha.c:8386
+#: vms-alpha.c:8397
#, c-format
msgid ""
"Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
msgstr ""
-#: vms-alpha.c:8394
+#: vms-alpha.c:8405
#, c-format
msgid " section: base: 0x%08x%08x size: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8399
+#: vms-alpha.c:8410
#, c-format
msgid " flags: 0x%04x"
msgstr ""
-#: vms-alpha.c:8437
+#: vms-alpha.c:8448
#, c-format
msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
msgstr ""
-#: vms-alpha.c:8443
+#: vms-alpha.c:8454
msgid "NORMAL"
msgstr ""
-#: vms-alpha.c:8446
+#: vms-alpha.c:8457
msgid "SHRFXD"
msgstr ""
-#: vms-alpha.c:8449
+#: vms-alpha.c:8460
msgid "PRVFXD"
msgstr ""
-#: vms-alpha.c:8452
+#: vms-alpha.c:8463
msgid "SHRPIC"
msgstr ""
-#: vms-alpha.c:8455
+#: vms-alpha.c:8466
msgid "PRVPIC"
msgstr ""
-#: vms-alpha.c:8458
+#: vms-alpha.c:8469
msgid "USRSTACK"
msgstr ""
-#: vms-alpha.c:8464
+#: vms-alpha.c:8475
msgid ")\n"
msgstr ""
-#: vms-alpha.c:8467
+#: vms-alpha.c:8478
#, c-format
msgid " ident: 0x%08x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:8477
+#: vms-alpha.c:8488
#, c-format
msgid "cannot read DMT\n"
msgstr ""
-#: vms-alpha.c:8481
+#: vms-alpha.c:8492
#, c-format
msgid "Debug module table:\n"
msgstr ""
-#: vms-alpha.c:8490
+#: vms-alpha.c:8501
#, c-format
msgid "cannot read DMT header\n"
msgstr ""
-#: vms-alpha.c:8496
+#: vms-alpha.c:8507
#, c-format
msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
msgstr ""
-#: vms-alpha.c:8506
+#: vms-alpha.c:8517
#, c-format
msgid "cannot read DMT psect\n"
msgstr ""
-#: vms-alpha.c:8510
+#: vms-alpha.c:8521
#, c-format
msgid " psect start: 0x%08x, length: %u\n"
msgstr ""
-#: vms-alpha.c:8523
+#: vms-alpha.c:8534
#, c-format
msgid "cannot read DST\n"
msgstr ""
-#: vms-alpha.c:8533
+#: vms-alpha.c:8544
#, c-format
msgid "cannot read GST\n"
msgstr ""
-#: vms-alpha.c:8537
+#: vms-alpha.c:8548
#, c-format
msgid "Global symbol table:\n"
msgstr ""
-#: vms-alpha.c:8564
+#: vms-alpha.c:8575
#, c-format
msgid "Image activator fixup: (major: %u, minor: %u)\n"
msgstr ""
-#: vms-alpha.c:8568
+#: vms-alpha.c:8579
#, c-format
msgid " iaflink : 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:8572
+#: vms-alpha.c:8583
#, c-format
msgid " fixuplnk: 0x%08x %08x\n"
msgstr ""
-#: vms-alpha.c:8575
+#: vms-alpha.c:8586
#, c-format
msgid " size : %u\n"
msgstr ""
-#: vms-alpha.c:8577
+#: vms-alpha.c:8588
#, c-format
msgid " flags: 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8582
+#: vms-alpha.c:8593
#, c-format
msgid " qrelfixoff: %5u, lrelfixoff: %5u\n"
msgstr ""
-#: vms-alpha.c:8587
+#: vms-alpha.c:8598
#, c-format
msgid " qdotadroff: %5u, ldotadroff: %5u\n"
msgstr ""
-#: vms-alpha.c:8592
+#: vms-alpha.c:8603
#, c-format
msgid " codeadroff: %5u, lpfixoff : %5u\n"
msgstr ""
-#: vms-alpha.c:8595
+#: vms-alpha.c:8606
#, c-format
msgid " chgprtoff : %5u\n"
msgstr ""
-#: vms-alpha.c:8599
+#: vms-alpha.c:8610
#, c-format
msgid " shlstoff : %5u, shrimgcnt : %5u\n"
msgstr ""
-#: vms-alpha.c:8602
+#: vms-alpha.c:8613
#, c-format
msgid " shlextra : %5u, permctx : %5u\n"
msgstr ""
-#: vms-alpha.c:8605
+#: vms-alpha.c:8616
#, c-format
msgid " base_va : 0x%08x\n"
msgstr ""
-#: vms-alpha.c:8607
+#: vms-alpha.c:8618
#, c-format
msgid " lppsbfixoff: %5u\n"
msgstr ""
-#: vms-alpha.c:8614
+#: vms-alpha.c:8625
#, c-format
msgid " Shareable images:\n"
msgstr ""
-#: vms-alpha.c:8622
+#: vms-alpha.c:8633
#, c-format
msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n"
msgstr ""
-#: vms-alpha.c:8629
+#: vms-alpha.c:8640
#, c-format
msgid " quad-word relocation fixups:\n"
msgstr ""
-#: vms-alpha.c:8635
+#: vms-alpha.c:8646
#, c-format
msgid " long-word relocation fixups:\n"
msgstr ""
-#: vms-alpha.c:8641
+#: vms-alpha.c:8652
#, c-format
msgid " quad-word .address reference fixups:\n"
msgstr ""
-#: vms-alpha.c:8646
+#: vms-alpha.c:8657
#, c-format
msgid " long-word .address reference fixups:\n"
msgstr ""
-#: vms-alpha.c:8651
+#: vms-alpha.c:8662
#, c-format
msgid " Code Address Reference Fixups:\n"
msgstr ""
-#: vms-alpha.c:8656
+#: vms-alpha.c:8667
#, c-format
msgid " Linkage Pairs Reference Fixups:\n"
msgstr ""
-#: vms-alpha.c:8664
+#: vms-alpha.c:8675
#, c-format
msgid " Change Protection (%u entries):\n"
msgstr ""
-#: vms-alpha.c:8673
+#: vms-alpha.c:8684
#, c-format
msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
msgstr ""
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
-#: vms-alpha.c:9550
+#: vms-alpha.c:9561
msgid "%P: relocatable link is not supported\n"
msgstr ""
-#: vms-alpha.c:9621
+#: vms-alpha.c:9632
#, c-format
msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr ""
@@ -9144,12 +9159,12 @@ msgstr ""
msgid "%pB: loader reloc in read-only section %pA"
msgstr ""
-#: xcofflink.c:6182
+#: xcofflink.c:6188
#, c-format
msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
msgstr ""
-#: xcofflink.c:7298
+#: xcofflink.c:7304
#, c-format
msgid "Unable to link input file: %s"
msgstr ""
@@ -9174,23 +9189,23 @@ msgid "%s is defined but plugin support is disabled"
msgstr ""
#. Not fatal, this callback cannot fail.
-#: elfnn-aarch64.c:2893
-#: elfnn-riscv.c:5548
+#: elfnn-aarch64.c:2906
+#: elfnn-riscv.c:5693
#, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
msgstr ""
-#: elfnn-aarch64.c:5456
+#: elfnn-aarch64.c:5469
#, c-format
msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
msgstr ""
-#: elfnn-aarch64.c:5548
+#: elfnn-aarch64.c:5561
#, c-format
msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
msgstr ""
-#: elfnn-aarch64.c:5561
+#: elfnn-aarch64.c:5574
#, c-format
msgid ""
"%pB: error: erratum 843419 immediate 0x%<PRIx64> out of range for ADR (input "
@@ -9198,50 +9213,50 @@ msgid ""
"fix-cortex-a53-843419=full instead"
msgstr ""
-#: elfnn-aarch64.c:6096
+#: elfnn-aarch64.c:6117
#, 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 ""
-#: elfnn-aarch64.c:6116
+#: elfnn-aarch64.c:6137
#, c-format
msgid "%pB: conditional branch to undefined symbol `%s' not allowed"
msgstr ""
-#: elfnn-aarch64.c:6204
-#: elfnn-kvx.c:2384
+#: elfnn-aarch64.c:6225
+#: elfnn-kvx.c:2382
#, c-format
msgid ""
"%pB: local symbol descriptor table be NULL when applying relocation %s "
"against local symbol"
msgstr ""
-#: elfnn-aarch64.c:6317
-#: elfnn-aarch64.c:6354
+#: elfnn-aarch64.c:6339
+#: elfnn-aarch64.c:6376
#, c-format
msgid "%pB: TLS relocation %s against undefined symbol `%s'"
msgstr ""
-#: elfnn-aarch64.c:7345
+#: elfnn-aarch64.c:7367
msgid "too many GOT entries for -fpic, please recompile with -fPIC"
msgstr ""
-#: elfnn-aarch64.c:7373
+#: elfnn-aarch64.c:7395
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:7940
+#: elfnn-aarch64.c:7962
#, c-format
msgid ""
"%pB: relocation %s against `%s' can not be used when making a shared object"
msgstr ""
-#: elfnn-aarch64.c:9013
+#: elfnn-aarch64.c:9035
#, c-format
msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
msgstr ""
@@ -9252,162 +9267,193 @@ msgid ""
"non-contiguous-regions.\n"
msgstr ""
-#: elfnn-kvx.c:2129
+#: elfnn-kvx.c:2127
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
msgstr ""
-#: elfnn-kvx.c:2853
+#: elfnn-kvx.c:2851
#, c-format
msgid "%s: Bad ELF id: `%d'"
msgstr ""
-#: elfnn-kvx.c:2908
+#: elfnn-kvx.c:2906
#, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr ""
-#: elfnn-kvx.c:2911
+#: elfnn-kvx.c:2909
#, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr ""
-#: elfnn-kvx.c:2913
+#: elfnn-kvx.c:2911
#, c-format
msgid "%s: object size does not match that of target %s"
msgstr ""
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elfnn-kvx.c:3001
+#: elfnn-kvx.c:2999
#, c-format
msgid "Private flags = 0x%lx : "
msgstr ""
-#: elfnn-kvx.c:3005
+#: elfnn-kvx.c:3003
#, c-format
msgid "Coolidge (kv3) V1 64 bits"
msgstr ""
-#: elfnn-kvx.c:3007
+#: elfnn-kvx.c:3005
#, c-format
msgid "Coolidge (kv3) V2 64 bits"
msgstr ""
-#: elfnn-kvx.c:3009
+#: elfnn-kvx.c:3007
#, c-format
msgid "Coolidge (kv4) V1 64 bits"
msgstr ""
-#: elfnn-kvx.c:3014
+#: elfnn-kvx.c:3012
#, c-format
msgid "Coolidge (kv3) V1 32 bits"
msgstr ""
-#: elfnn-kvx.c:3016
+#: elfnn-kvx.c:3014
#, c-format
msgid "Coolidge (kv3) V2 32 bits"
msgstr ""
-#: elfnn-kvx.c:3018
+#: elfnn-kvx.c:3016
#, c-format
msgid "Coolidge (kv4) V1 32 bits"
msgstr ""
-#: elfnn-kvx.c:3854
+#: elfnn-kvx.c:3852
#, c-format
msgid "relocation against `%s' has faulty GOT type "
msgstr ""
-#: elfnn-loongarch.c:169
-#: elfnn-loongarch.c:221
+#: elfnn-loongarch.c:283
+#: elfnn-loongarch.c:335
#, c-format
msgid "%#<PRIx64> invaild imm"
msgstr ""
-#: elfnn-loongarch.c:403
-#: elfnn-riscv.c:4028
+#: elfnn-loongarch.c:517
+#: elfnn-riscv.c:4161
#, c-format
msgid ""
"%pB: ABI is incompatible with that of the selected emulation:\n"
" target emulation `%s' does not match `%s'"
msgstr ""
-#: elfnn-loongarch.c:458
+#: elfnn-loongarch.c:572
#, c-format
msgid "%pB: can't link different ABI object."
msgstr ""
-#: elfnn-loongarch.c:600
+#: elfnn-loongarch.c:714
msgid "Internal error: unreachable."
msgstr ""
-#: elfnn-loongarch.c:4339
-#: elfnn-riscv.c:4789
+#: elfnn-loongarch.c:866
+#, c-format
+msgid ""
+"%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making a "
+"shared object; recompile with -fPIC"
+msgstr ""
+
+#: elfnn-loongarch.c:990
+#, c-format
+msgid ""
+"%pB: stack based reloc type (%u) is not supported with -z pack-relative-"
+"relocs"
+msgstr ""
+
+#: elfnn-loongarch.c:1151
+#, 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 ""
+
+#: elfnn-loongarch.c:1216
+#, c-format
+msgid ""
+"%pB: R_LARCH_ALIGN with offset %<PRId64> not aligned to instruction boundary"
+msgstr ""
+
+#: elfnn-loongarch.c:4526
+msgid "recompile with 'gcc -mno-relax' or 'as -mno-relax' or 'ld --no-relax'"
+msgstr ""
+
+#: elfnn-loongarch.c:5124
+#: elfnn-riscv.c:4934
#, c-format
msgid ""
"%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-"
"byte boundary, but only %<PRId64> present"
msgstr ""
-#: elfnn-riscv.c:326
-#: elfnn-riscv.c:361
+#: elfnn-riscv.c:330
+#: elfnn-riscv.c:365
#, c-format
msgid "%pB: warning: RVE PLT generation not supported"
msgstr ""
-#: elfnn-riscv.c:919
+#: elfnn-riscv.c:929
#, c-format
msgid ""
"%pB: relocation %s against absolute symbol `%s' can not be used when making "
"a shared object"
msgstr ""
-#: elfnn-riscv.c:961
+#: elfnn-riscv.c:971
#, c-format
msgid ""
"%pB: relocation %s against non-absolute symbol `%s' can not be used in RV32 "
"when making a shared object"
msgstr ""
-#: elfnn-riscv.c:1847
+#: elfnn-riscv.c:1900
#, c-format
msgid ""
"final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds "
"available space"
msgstr ""
-#: elfnn-riscv.c:2082
+#: elfnn-riscv.c:2142
#, c-format
msgid "%pcrel_lo missing matching %pcrel_hi"
msgstr ""
-#: elfnn-riscv.c:2085
+#: elfnn-riscv.c:2145
#, c-format
msgid "%pcrel_lo with addend isn't allowed for R_RISCV_GOT_HI20"
msgstr ""
#. Check the overflow when adding reloc addend.
-#: elfnn-riscv.c:2090
+#: elfnn-riscv.c:2150
#, 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 ""
-#: elfnn-riscv.c:2098
+#: elfnn-riscv.c:2158
#, c-format
msgid "%pcrel_lo overflow with an addend"
msgstr ""
-#: elfnn-riscv.c:2549
+#: elfnn-riscv.c:2641
#, c-format
msgid ""
"%pB: warning: R_RISCV_SUB_ULEB128 with non-zero addend, please rebuild by "
"binutils 2.42 or up"
msgstr ""
-#: elfnn-riscv.c:2629
+#: elfnn-riscv.c:2721
msgid "The addend isn't allowed for R_RISCV_GOT_HI20"
msgstr ""
@@ -9425,96 +9471,106 @@ msgstr ""
#.
#. Perhaps we also need the similar checks for the
#. R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations.
-#: elfnn-riscv.c:2730
+#: elfnn-riscv.c:2822
#, 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 ""
-#: elfnn-riscv.c:2812
+#: elfnn-riscv.c:2904
#, c-format
msgid "%pcrel_lo section symbol with an addend"
msgstr ""
-#: elfnn-riscv.c:3022
+#: elfnn-riscv.c:2925
+#, c-format
+msgid "%tlsdesc_lo with addend"
+msgstr ""
+
+#: elfnn-riscv.c:3158
#, c-format
msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
-#: elfnn-riscv.c:3057
+#: elfnn-riscv.c:3193
msgid "%X%P: internal error: out of range error\n"
msgstr ""
-#: elfnn-riscv.c:3062
+#: elfnn-riscv.c:3198
msgid "%X%P: internal error: unsupported relocation error\n"
msgstr ""
-#: elfnn-riscv.c:3068
+#: elfnn-riscv.c:3204
msgid "dangerous relocation error"
msgstr ""
-#: elfnn-riscv.c:3074
+#: elfnn-riscv.c:3210
msgid "%X%P: internal error: unknown error\n"
msgstr ""
-#: elfnn-riscv.c:3620
+#: elfnn-riscv.c:3753
#, c-format
msgid ""
"error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' "
"but got '%s'"
msgstr ""
-#: elfnn-riscv.c:3663
+#: elfnn-riscv.c:3796
#, c-format
msgid "error: %pB: mis-matched ISA string to merge '%s' and '%s'"
msgstr ""
-#: elfnn-riscv.c:3800
+#: elfnn-riscv.c:3933
#, c-format
msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)"
msgstr ""
-#: elfnn-riscv.c:3820
+#: elfnn-riscv.c:3953
#, c-format
msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)"
msgstr ""
-#: elfnn-riscv.c:3828
+#: elfnn-riscv.c:3961
#, c-format
msgid "error: %pB: unsupported XLEN (%u), you might be using wrong emulation"
msgstr ""
-#: elfnn-riscv.c:3942
+#: 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 ""
-#: elfnn-riscv.c:3959
+#: elfnn-riscv.c:4092
msgid ""
"warning: privileged spec version 1.9.1 can not be linked with other spec "
"versions"
msgstr ""
-#: elfnn-riscv.c:3987
+#: elfnn-riscv.c:4120
#, c-format
msgid ""
"error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned"
msgstr ""
-#: elfnn-riscv.c:4084
+#: elfnn-riscv.c:4217
#, c-format
msgid "%pB: can't link %s modules with %s modules"
msgstr ""
-#: elfnn-riscv.c:4094
+#: elfnn-riscv.c:4227
#, c-format
msgid "%pB: can't link RVE with other target"
msgstr ""
-#: elfnn-riscv.c:961
+#: elfnn-riscv.c:4251
+#, c-format
+msgid "warning: %pB: unknown RISCV ABI object attribute %d"
+msgstr ""
+
+#: elfnn-riscv.c:971
#, c-format
msgid ""
"%pB: relocation %s against non-absolute symbol `%s' can not be used in RV64 "
@@ -9659,7 +9715,7 @@ msgstr ""
#: peXXigen.c:1393 peXXigen.c:1393
#, c-format
-msgid "\tvma: Hint/Ord Member-Name Bound-To\n"
+msgid "\tvma: Ordinal Hint Member-Name Bound-To\n"
msgstr ""
#: peXXigen.c:1418 peXXigen.c:1418
@@ -9669,42 +9725,42 @@ msgid ""
"There is a first thunk, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1465
-#: peXXigen.c:1504 peXXigen.c:1465
-#: peXXigen.c:1504
+#: peXXigen.c:1468
+#: peXXigen.c:1513 peXXigen.c:1468
+#: peXXigen.c:1513
#, c-format
-msgid "\t<corrupt: 0x%04lx>"
+msgid "\t<corrupt: 0x%08lx>"
msgstr ""
-#: peXXigen.c:1597 peXXigen.c:1597
+#: peXXigen.c:1607 peXXigen.c:1607
#, c-format
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
msgstr ""
-#: peXXigen.c:1610 peXXigen.c:1610
+#: peXXigen.c:1620 peXXigen.c:1620
#, c-format
msgid ""
"\n"
"There is an export table in %s, but it is too small (%d)\n"
msgstr ""
-#: peXXigen.c:1618 peXXigen.c:1618
+#: peXXigen.c:1628 peXXigen.c:1628
#, c-format
msgid ""
"\n"
"There is an export table in %s, but contents cannot be read\n"
msgstr ""
-#: peXXigen.c:1624 peXXigen.c:1624
+#: peXXigen.c:1634 peXXigen.c:1634
#, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
msgstr ""
-#: peXXigen.c:1655 peXXigen.c:1655
+#: peXXigen.c:1665 peXXigen.c:1665
#, c-format
msgid ""
"\n"
@@ -9712,149 +9768,149 @@ msgid ""
"\n"
msgstr ""
-#: peXXigen.c:1659 peXXigen.c:1659
+#: peXXigen.c:1669 peXXigen.c:1669
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr ""
-#: peXXigen.c:1662 peXXigen.c:1662
+#: peXXigen.c:1672 peXXigen.c:1672
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr ""
-#: peXXigen.c:1666 peXXigen.c:1666
+#: peXXigen.c:1676 peXXigen.c:1676
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr ""
-#: peXXigen.c:1669 peXXigen.c:1669
+#: peXXigen.c:1679 peXXigen.c:1679
#, c-format
msgid "Name \t\t\t\t"
msgstr ""
-#: peXXigen.c:1680 peXXigen.c:1680
+#: peXXigen.c:1690 peXXigen.c:1690
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr ""
-#: peXXigen.c:1683 peXXigen.c:1683
+#: peXXigen.c:1693 peXXigen.c:1693
#, c-format
msgid "Number in:\n"
msgstr ""
-#: peXXigen.c:1686 peXXigen.c:1686
+#: peXXigen.c:1696 peXXigen.c:1696
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr ""
-#: peXXigen.c:1690 peXXigen.c:1690
+#: peXXigen.c:1700 peXXigen.c:1700
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr ""
-#: peXXigen.c:1693 peXXigen.c:1693
+#: peXXigen.c:1703 peXXigen.c:1703
#, c-format
msgid "Table Addresses\n"
msgstr ""
-#: peXXigen.c:1696 peXXigen.c:1696
+#: peXXigen.c:1706 peXXigen.c:1706
#, c-format
msgid "\tExport Address Table \t\t"
msgstr ""
-#: peXXigen.c:1701 peXXigen.c:1701
+#: peXXigen.c:1711 peXXigen.c:1711
#, c-format
msgid "\tName Pointer Table \t\t"
msgstr ""
-#: peXXigen.c:1706 peXXigen.c:1706
+#: peXXigen.c:1716 peXXigen.c:1716
#, c-format
msgid "\tOrdinal Table \t\t\t"
msgstr ""
-#: peXXigen.c:1720 peXXigen.c:1720
+#: peXXigen.c:1730 peXXigen.c:1730
#, c-format
msgid ""
"\n"
"Export Address Table -- Ordinal Base %ld\n"
msgstr ""
-#: peXXigen.c:1729 peXXigen.c:1729
+#: peXXigen.c:1740 peXXigen.c:1740
#, c-format
msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1748 peXXigen.c:1748
+#: peXXigen.c:1759 peXXigen.c:1759
msgid "Forwarder RVA"
msgstr ""
-#: peXXigen.c:1760 peXXigen.c:1760
+#: peXXigen.c:1771 peXXigen.c:1771
msgid "Export RVA"
msgstr ""
-#: peXXigen.c:1767 peXXigen.c:1767
+#: peXXigen.c:1778 peXXigen.c:1778
#, c-format
msgid ""
"\n"
-"[Ordinal/Name Pointer] Table\n"
+"[Ordinal/Name Pointer] Table -- Ordinal Base %ld\n"
msgstr ""
-#: peXXigen.c:1775 peXXigen.c:1775
+#: peXXigen.c:1788 peXXigen.c:1788
#, c-format
msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1782 peXXigen.c:1782
+#: peXXigen.c:1795 peXXigen.c:1795
#, c-format
msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
-#: peXXigen.c:1796 peXXigen.c:1796
+#: peXXigen.c:1809 peXXigen.c:1809
#, c-format
-msgid "\t[%4ld] <corrupt offset: %lx>\n"
+msgid "\t[%4ld] +base[%4ld] %04lx <corrupt offset: %lx>\n"
msgstr ""
-#: peXXigen.c:1851
-#: peXXigen.c:2021 peXXigen.c:1851
-#: peXXigen.c:2021
+#: peXXigen.c:1866
+#: peXXigen.c:2036 peXXigen.c:1866
+#: peXXigen.c:2036
#, c-format
msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: peXXigen.c:1855
-#: peXXigen.c:2025 peXXigen.c:1855
-#: peXXigen.c:2025
+#: peXXigen.c:1870
+#: peXXigen.c:2040 peXXigen.c:1870
+#: peXXigen.c:2040
#, c-format
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
msgstr ""
-#: peXXigen.c:1858 peXXigen.c:1858
+#: peXXigen.c:1873 peXXigen.c:1873
#, c-format
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr ""
-#: peXXigen.c:1860 peXXigen.c:1860
+#: peXXigen.c:1875 peXXigen.c:1875
#, c-format
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
" \t\tAddress Address Handler Data Address Mask\n"
msgstr ""
-#: peXXigen.c:1873 peXXigen.c:1873
+#: peXXigen.c:1888 peXXigen.c:1888
#, c-format
msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
msgstr ""
-#: peXXigen.c:2027 peXXigen.c:2027
+#: peXXigen.c:2042 peXXigen.c:2042
#, c-format
msgid ""
" vma:\t\tBegin Prolog Function Flags Exception EH\n"
" \t\tAddress Length Length 32b exc Handler Data\n"
msgstr ""
-#: peXXigen.c:2152 peXXigen.c:2152
+#: peXXigen.c:2167 peXXigen.c:2167
#, c-format
msgid ""
"\n"
@@ -9862,86 +9918,86 @@ msgid ""
"PE File Base Relocations (interpreted .reloc section contents)\n"
msgstr ""
-#: peXXigen.c:2181 peXXigen.c:2181
+#: peXXigen.c:2196 peXXigen.c:2196
#, c-format
msgid ""
"\n"
"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
msgstr ""
-#: peXXigen.c:2199 peXXigen.c:2199
+#: peXXigen.c:2214 peXXigen.c:2214
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
-#: peXXigen.c:2260 peXXigen.c:2260
+#: peXXigen.c:2275 peXXigen.c:2275
#, c-format
msgid "%03x %*.s Entry: "
msgstr ""
-#: peXXigen.c:2284 peXXigen.c:2284
+#: peXXigen.c:2299 peXXigen.c:2299
#, c-format
msgid "name: [val: %08lx len %d]: "
msgstr ""
-#: peXXigen.c:2304 peXXigen.c:2304
+#: peXXigen.c:2319 peXXigen.c:2319
#, c-format
msgid "<corrupt string length: %#x>\n"
msgstr ""
-#: peXXigen.c:2314 peXXigen.c:2314
+#: peXXigen.c:2329 peXXigen.c:2329
#, c-format
msgid "<corrupt string offset: %#lx>\n"
msgstr ""
-#: peXXigen.c:2319 peXXigen.c:2319
+#: peXXigen.c:2334 peXXigen.c:2334
#, c-format
msgid "ID: %#08lx"
msgstr ""
-#: peXXigen.c:2322 peXXigen.c:2322
+#: peXXigen.c:2337 peXXigen.c:2337
#, c-format
msgid ", Value: %#08lx\n"
msgstr ""
-#: peXXigen.c:2344 peXXigen.c:2344
+#: peXXigen.c:2359 peXXigen.c:2359
#, c-format
msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr ""
-#: peXXigen.c:2386 peXXigen.c:2386
+#: peXXigen.c:2401 peXXigen.c:2401
#, c-format
msgid "<unknown directory type: %d>\n"
msgstr ""
-#: peXXigen.c:2394 peXXigen.c:2394
+#: peXXigen.c:2409 peXXigen.c:2409
#, c-format
msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr ""
-#: peXXigen.c:2482 peXXigen.c:2482
+#: peXXigen.c:2497 peXXigen.c:2497
#, c-format
msgid "Corrupt .rsrc section detected!\n"
msgstr ""
-#: peXXigen.c:2506 peXXigen.c:2506
+#: peXXigen.c:2521 peXXigen.c:2521
#, c-format
msgid ""
"\n"
"WARNING: Extra data in .rsrc section - it will be ignored by Windows:\n"
msgstr ""
-#: peXXigen.c:2512 peXXigen.c:2512
+#: peXXigen.c:2527 peXXigen.c:2527
#, c-format
msgid " String table starts at offset: %#03x\n"
msgstr ""
-#: peXXigen.c:2515 peXXigen.c:2515
+#: peXXigen.c:2530 peXXigen.c:2530
#, c-format
msgid " Resources start at offset: %#03x\n"
msgstr ""
-#: peXXigen.c:2572 peXXigen.c:2572
+#: peXXigen.c:2587 peXXigen.c:2587
#, c-format
msgid ""
"\n"
@@ -9949,14 +10005,14 @@ msgid ""
"found\n"
msgstr ""
-#: peXXigen.c:2578 peXXigen.c:2578
+#: peXXigen.c:2593 peXXigen.c:2593
#, c-format
msgid ""
"\n"
"There is a debug directory in %s, but that section has no contents\n"
msgstr ""
-#: peXXigen.c:2585 peXXigen.c:2585
+#: peXXigen.c:2600 peXXigen.c:2600
#, c-format
msgid ""
"\n"
@@ -9964,7 +10020,7 @@ msgid ""
"small\n"
msgstr ""
-#: peXXigen.c:2590 peXXigen.c:2590
+#: peXXigen.c:2605 peXXigen.c:2605
#, c-format
msgid ""
"\n"
@@ -9972,23 +10028,23 @@ msgid ""
"\n"
msgstr ""
-#: peXXigen.c:2597 peXXigen.c:2597
+#: peXXigen.c:2612 peXXigen.c:2612
#, c-format
msgid ""
"The debug data size field in the data directory is too big for the section"
msgstr ""
-#: peXXigen.c:2602 peXXigen.c:2602
+#: peXXigen.c:2617 peXXigen.c:2617
#, c-format
msgid "Type Size Rva Offset\n"
msgstr ""
-#: peXXigen.c:2650 peXXigen.c:2650
+#: peXXigen.c:2665 peXXigen.c:2665
#, c-format
msgid "(format %c%c%c%c signature %s age %ld pdb %s)\n"
msgstr ""
-#: peXXigen.c:2662 peXXigen.c:2662
+#: peXXigen.c:2677 peXXigen.c:2677
#, c-format
msgid ""
"The debug directory size is not a multiple of the debug directory entry "
@@ -9998,100 +10054,100 @@ 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:2746 peXXigen.c:2746
+#: peXXigen.c:2761 peXXigen.c:2761
#, c-format
msgid ""
"\n"
"Characteristics 0x%x\n"
msgstr ""
-#: peXXigen.c:3031 peXXigen.c:3031
+#: peXXigen.c:3046 peXXigen.c:3046
#, c-format
msgid ""
"%pB: Data Directory (%lx bytes at %<PRIx64>) extends across section boundary "
"at %<PRIx64>"
msgstr ""
-#: peXXigen.c:3072 peXXigen.c:3072
+#: peXXigen.c:3087 peXXigen.c:3087
msgid "failed to update file offsets in debug directory"
msgstr ""
-#: peXXigen.c:3081 peXXigen.c:3081
+#: peXXigen.c:3096 peXXigen.c:3096
#, c-format
msgid "%pB: failed to read debug data section"
msgstr ""
-#: peXXigen.c:3884 peXXigen.c:3884
+#: peXXigen.c:3899 peXXigen.c:3899
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr ""
-#: peXXigen.c:4019 peXXigen.c:4019
+#: peXXigen.c:4034 peXXigen.c:4034
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr ""
-#: peXXigen.c:4037 peXXigen.c:4037
+#: peXXigen.c:4052 peXXigen.c:4052
msgid ".rsrc merge failure: a directory matches a leaf"
msgstr ""
-#: peXXigen.c:4079 peXXigen.c:4079
+#: peXXigen.c:4094 peXXigen.c:4094
msgid ".rsrc merge failure: duplicate leaf"
msgstr ""
-#: peXXigen.c:4084 peXXigen.c:4084
+#: peXXigen.c:4099 peXXigen.c:4099
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
msgstr ""
-#: peXXigen.c:4151 peXXigen.c:4151
+#: peXXigen.c:4166 peXXigen.c:4166
msgid ".rsrc merge failure: dirs with differing characteristics"
msgstr ""
-#: peXXigen.c:4158 peXXigen.c:4158
+#: peXXigen.c:4173 peXXigen.c:4173
msgid ".rsrc merge failure: differing directory versions"
msgstr ""
#. Corrupted .rsrc section - cannot merge.
-#: peXXigen.c:4270 peXXigen.c:4270
+#: peXXigen.c:4285 peXXigen.c:4285
#, c-format
msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
msgstr ""
-#: peXXigen.c:4278 peXXigen.c:4278
+#: peXXigen.c:4293 peXXigen.c:4293
#, c-format
msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
msgstr ""
-#: peXXigen.c:4417 peXXigen.c:4417
+#: peXXigen.c:4432 peXXigen.c:4432
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
msgstr ""
-#: peXXigen.c:4437 peXXigen.c:4437
+#: peXXigen.c:4452 peXXigen.c:4452
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
msgstr ""
-#: peXXigen.c:4458 peXXigen.c:4458
+#: peXXigen.c:4473 peXXigen.c:4473
#, c-format
msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
msgstr ""
-#: peXXigen.c:4478 peXXigen.c:4478
+#: peXXigen.c:4493 peXXigen.c:4493
#, c-format
msgid ""
"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ."
"idata$6 is missing"
msgstr ""
-#: peXXigen.c:4520 peXXigen.c:4520
+#: peXXigen.c:4535 peXXigen.c:4535
#, c-format
msgid ""
"%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ."
"idata$6 is missing"
msgstr ""
-#: peXXigen.c:4545 peXXigen.c:4545
+#: peXXigen.c:4560 peXXigen.c:4560
#, c-format
msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
msgstr ""
diff --git a/bfd/version.h b/bfd/version.h
index c404586..f84e856 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 20240702
+#define BFD_VERSION_DATE 20240722
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
diff --git a/bfd/version.m4 b/bfd/version.m4
index ca259c8..360f96c 100644
--- a/bfd/version.m4
+++ b/bfd/version.m4
@@ -1 +1 @@
-m4_define([BFD_VERSION], [2.42.50])
+m4_define([BFD_VERSION], [2.43.50])
diff --git a/binutils/BRANCHES b/binutils/BRANCHES
index 98144e7..7098275 100644
--- a/binutils/BRANCHES
+++ b/binutils/BRANCHES
@@ -58,6 +58,7 @@ binutils-2_39-branch
binutils-2_40-branch
binutils-2_41-branch
binutils-2_42-branch
+binutils-2_43-branch
Copyright (C) 2012-2024 Free Software Foundation, Inc.
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index b74847a..892ee50 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-02-12 Frederic Cambus <fred@statdns.com>
* readelf.c (get_segment_type): Handle PT_OPENBSD_SYSCALLS segment
diff --git a/binutils/NEWS b/binutils/NEWS
index c473938..596d6484 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,7 @@
-*- text -*-
+Changes in 2.43:
+
* Readelf now displays RELR relocations in full detail.
* Readelf now has a -j/--display-section option which takes the name or index
@@ -20,6 +22,13 @@
legacy CPU previously defaulted to using this instruction set extension, the
assembler now defaults to no-FPU to avoid quietly misassembling legacy code.
+* gprofng:
+ Improved the support for hardware event counters:
+ - Re-designed and streamlined the implementation.
+ - Defined a common set of events for ARM processors.
+ - Added specific events for AMD ZEN3 / ZEN4, and Intel Ice Lake processors.
+ Added a minimal support for RISC-V.
+
Changes in 2.42:
* The objdump program has a new command line option -Z/--decompress which
diff --git a/binutils/README-how-to-make-a-release b/binutils/README-how-to-make-a-release
index 6c57137..9e71abd 100644
--- a/binutils/README-how-to-make-a-release
+++ b/binutils/README-how-to-make-a-release
@@ -55,8 +55,8 @@ Approx time to complete from here: 2 hours ...
4. Create the release branch using:
- git branch binutils-2_43-branch
- git push origin binutils-2_43-branch
+ git branch binutils-2_44-branch
+ git push origin binutils-2_44-branch
If you get a message like:
@@ -66,7 +66,7 @@ Approx time to complete from here: 2 hours ...
5. Make sure that the branch is there. IE check out the branch sources:
- git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_43-branch 2.43
+ git clone ssh://sourceware.org/git/binutils-gdb.git -b binutils-2_44-branch 2.44
If you get a message about being in a "detached head" state, something
has gone wrong...
@@ -88,8 +88,8 @@ Approx time to complete from here: 2 hours ...
ask Joel Brobecker <brobecker AT adacore DOT com>.
7. Rename the current HEAD version entry in Bugzilla, and create a
- new one. E.g. rename "2.43 (HEAD)" to 2.43, and create
- "2.44 (HEAD)":
+ new one. E.g. rename "2.44 (HEAD)" to 2.44, and create
+ "2.45 (HEAD)":
https://sourceware.org/bugzilla/editversions.cgi?product=binutils
@@ -97,18 +97,18 @@ Approx time to complete from here: 2 hours ...
of the next release and the BRANCH to indicate that it is almost
ready for the release.
- So if the release is going to be 2.43 then the version number on
- the BRANCH should be set to 2.42.90 - ie almost, but not quite 2.43,
- and the version number on the MAINLINE should be set to 2.43.50 -
- ie half way to 2.44 release.
+ So if the release is going to be 2.44 then the version number on
+ the BRANCH should be set to 2.43.90 - ie almost, but not quite 2.44,
+ and the version number on the MAINLINE should be set to 2.44.50 -
+ ie half way to 2.45 release.
So the BRANCH bfd/version.m4 has:
- m4_define([BFD_VERSION], [2.42.90])
+ m4_define([BFD_VERSION], [2.43.90])
and the MAINLINE has:
- m4_define([BFD_VERSION], [2.43.50])
+ m4_define([BFD_VERSION], [2.44.50])
Regenerate various files on both branch and HEAD by configuring
with "--enable-maintainer-mode --enable-gold --enable-shared" and then building
@@ -134,27 +134,21 @@ Approx time to complete from here: 2 hours ...
Add a .dirstamp file to the gas/doc subdirectory:
- touch -d <today's date> binutils-2.<release>/gas/doc/.dirstamp
- tar rvf binutils-<release>.tar binutils-<release>/gas/doc/.ditstamp
- rm binutils-<release>.tar.xz
- xz -9 binutils-<release>.tar
-
- eg:
- touch -d 2024-08-01 binutils-2.42.90/gas/doc/.dirstamp
- tar rvf binutils-2.41.90.tar binutils-2.42.90/gas/doc/.dirstamp
- rm binutils-2.42.90.tar.xz
- xz -9 binutils-2.42.90.tar
-
+ touch -d `date +%Y-%m-%d` binutils-2.43.90/gas/doc/.dirstamp
+ tar rvf binutils-2.43.90.tar binutils-2.43.90/gas/doc/.dirstamp
+ rm binutils-2.43.90.tar.xz
+ xz -9 -k binutils-2.43.90.tar
+
...END OF FIXME
c. Build a test target using this tarball.
- cp binutils-2.42.90.tar.xz /dev/shm
+ cp binutils-*.tar.xz /dev/shm
pushd /dev/shm
- tar xvf binutils-2.42.90.tar.xz
+ tar xvf binutils-*.tar.xz
mkdir build
cd build
- ../binutils-2.42.90/configure --quiet --enable-gold
+ ../binutils-*/configure --quiet --enable-gold
make
popd
@@ -162,11 +156,11 @@ Approx time to complete from here: 2 hours ...
d. Upload the pre-release snapshot to the sourceware FTP site:
- scp binutils-2.42.90.tar.xz sourceware.org:/var/ftp/pub/binutils/snapshots
- ssh sourceware.org sha256sum ~ftp/pub/binutils/snapshots/binutils-2.42.90.tar.xz
+ scp binutils-2.43.90.tar.xz sourceware.org:/var/ftp/pub/binutils/snapshots
+ ssh sourceware.org sha256sum ~ftp/pub/binutils/snapshots/binutils-2.43.90.tar.xz
Paranoia: Compare the checksum with the local version.
-
+
e. Clean up the source directory again.
git clean -fdx
@@ -193,7 +187,7 @@ Dear Translation Project
binutils mailing list. Set a date for when the release will
actually happen. Something like:
-
+------------------------------------------------------------------------
Hi Everyone,
The <NEW_VERSION> branch has now been created:
diff --git a/binutils/configure b/binutils/configure
index c948b85..ac3de5e 100755
--- a/binutils/configure
+++ b/binutils/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for binutils 2.42.50.
+# Generated by GNU Autoconf 2.69 for binutils 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='binutils'
PACKAGE_TARNAME='binutils'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='binutils 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='binutils 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1407,7 +1407,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures binutils 2.42.50 to adapt to many kinds of systems.
+\`configure' configures binutils 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1478,7 +1478,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of binutils 2.42.50:";;
+ short | recursive ) echo "Configuration of binutils 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1640,7 +1640,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-binutils configure 2.42.50
+binutils configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2108,7 +2108,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by binutils $as_me 2.42.50, which was
+It was created by binutils $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3091,7 +3091,7 @@ fi
# Define the identity of the package.
PACKAGE='binutils'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -17170,7 +17170,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by binutils $as_me 2.42.50, which was
+This file was extended by binutils $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17236,7 +17236,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-binutils config.status 2.42.50
+binutils config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index 5fb33b5..24e31cc 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -555,13 +555,12 @@ extern unsigned int VerilogDataWidth;
extern enum bfd_endian VerilogDataEndianness;
/* Forward declarations. */
-static void setup_section (bfd *, asection *, void *);
-static void setup_bfd_headers (bfd *, bfd *);
-static void copy_relocations_in_section (bfd *, asection *, void *);
-static void copy_section (bfd *, asection *, void *);
-static void get_sections (bfd *, asection *, void *);
+static bool setup_section (bfd *, asection *, bfd *);
+static bool setup_bfd_headers (bfd *, bfd *);
+static bool copy_relocations_in_section (bfd *, asection *, bfd *);
+static bool copy_section (bfd *, asection *, bfd *);
static int compare_section_lma (const void *, const void *);
-static void mark_symbols_used_in_relocations (bfd *, asection *, void *);
+static bool mark_symbols_used_in_relocations (bfd *, asection *, asymbol **);
static bool write_debugging_info (bfd *, void *, long *, asymbol ***);
static const char *lookup_sym_redefinition (const char *);
static const char *find_section_rename (const char *, flagword *);
@@ -1556,17 +1555,17 @@ create_new_symbol (struct addsym_node *ptr, bfd *obfd)
/* Choose which symbol entries to copy; put the result in OSYMS.
We don't copy in place, because that confuses the relocs.
- Return the number of symbols to print. */
+ Update the number of symbols to print. */
-static unsigned int
+static bool
filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
- asymbol **isyms, long symcount)
+ asymbol **isyms, long *symcount)
{
asymbol **from = isyms, **to = osyms;
long src_count = 0, dst_count = 0;
int relocatable = (abfd->flags & (EXEC_P | DYNAMIC)) == 0;
- for (; src_count < symcount; src_count++)
+ for (; src_count < *symcount; src_count++)
{
asymbol *sym = from[src_count];
flagword flags = sym->flags;
@@ -1709,7 +1708,7 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
if (used_in_reloc)
{
non_fatal (_("not stripping symbol `%s' because it is named in a relocation"), name);
- status = 1;
+ return false;
}
else
keep = false;
@@ -1781,8 +1780,9 @@ filter_symbols (bfd *abfd, bfd *obfd, asymbol **osyms,
}
to[dst_count] = NULL;
+ *symcount = dst_count;
- return dst_count;
+ return true;
}
/* Find the redefined name of symbol SOURCE. */
@@ -2177,14 +2177,16 @@ sort_gnu_build_notes (const void * data1, const void * data2)
return 0;
}
-/* Merge the notes on SEC, removing redundant entries.
- Returns the new, smaller size of the section upon success. */
+/* Merge the notes on SEC, removing redundant entries. NEW_SIZE is
+ set to the new, smaller size of the section. Returns true on
+ success, false on errors that result in objcopy failing. */
-static bfd_size_type
+static bool
merge_gnu_build_notes (bfd * abfd,
asection * sec,
bfd_size_type size,
- bfd_byte * contents)
+ bfd_byte * contents,
+ bfd_size_type *new_size)
{
objcopy_internal_note * pnotes_end;
objcopy_internal_note * pnotes = NULL;
@@ -2201,6 +2203,7 @@ merge_gnu_build_notes (bfd * abfd,
unsigned long previous_open_end = 0;
long relsize;
+ *new_size = size;
relsize = bfd_get_reloc_upper_bound (abfd, sec);
if (relsize > 0)
{
@@ -2530,7 +2533,6 @@ merge_gnu_build_notes (bfd * abfd,
bfd_byte * new_contents;
bfd_byte * old;
bfd_byte * new;
- bfd_size_type new_size;
bfd_vma prev_start = 0;
bfd_vma prev_end = 0;
@@ -2602,11 +2604,11 @@ merge_gnu_build_notes (bfd * abfd,
);
#endif
- new_size = new - new_contents;
- if (new_size < size)
+ size_t nsize = new - new_contents;
+ if (nsize < size)
{
- memcpy (contents, new_contents, new_size);
- size = new_size;
+ *new_size = nsize;
+ memcpy (contents, new_contents, nsize);
}
free (new_contents);
@@ -2615,11 +2617,10 @@ merge_gnu_build_notes (bfd * abfd,
{
bfd_set_error (bfd_error_bad_value);
bfd_nonfatal_message (NULL, abfd, sec, err);
- status = 1;
}
free (pnotes);
- return size;
+ return !err;
}
static flagword
@@ -2933,10 +2934,15 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
/* BFD mandates that all output sections be created and sizes set before
any output is done. Thus, we traverse all sections multiple times. */
- bfd_map_over_sections (ibfd, setup_section, obfd);
+ for (asection *s = ibfd->sections; s != NULL; s = s->next)
+ if (!setup_section (ibfd, s, obfd))
+ return false;
if (!extract_symbol)
- setup_bfd_headers (ibfd, obfd);
+ {
+ if (!setup_bfd_headers (ibfd, obfd))
+ return false;
+ }
if (add_sections != NULL)
{
@@ -3069,11 +3075,16 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
continue;
}
- merged->size = merge_gnu_build_notes (ibfd, osec, size,
- merged->contents);
+ if (!merge_gnu_build_notes (ibfd, osec, size,
+ merged->contents, &merged->size))
+ {
+ free (merged->contents);
+ free (merged);
+ return false;
+ }
/* FIXME: Once we have read the contents in, we must write
- them out again. So even if the mergeing has achieved
+ them out again. So even if the merging has achieved
nothing we still add this entry to the merge list. */
if (size != merged->size
@@ -3139,7 +3150,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
strerror (errno));
free (contents);
fclose (f);
- return false;
+ goto fail;
}
}
else
@@ -3172,7 +3183,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
bfd_nonfatal_message (NULL, obfd, NULL,
_("cannot create debug link section `%s'"),
gnu_debuglink_filename);
- return false;
+ goto fail;
}
/* Special processing for PE format files. We
@@ -3223,8 +3234,6 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
if (num_sec != 0
&& (gap_fill_set || pad_to_set))
{
- asection **set;
-
/* We must fill in gaps between the sections and/or we must pad
the last section to a specified address. We do this by
grabbing a list of the sections, sorting them by VMA, and
@@ -3232,8 +3241,9 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
We write out the gap contents below. */
osections = xmalloc (num_sec * sizeof (*osections));
- set = osections;
- bfd_map_over_sections (obfd, get_sections, &set);
+ asection **set = osections;
+ for (asection *s = obfd->sections; s != NULL; s = s->next)
+ *set++ = s;
qsort (osections, num_sec, sizeof (*osections), compare_section_lma);
@@ -3265,8 +3275,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
bfd_nonfatal_message (NULL, obfd, osections[i],
_("Can't fill gap after section"));
- status = 1;
- break;
+ goto fail;
}
gaps[i] = gap_stop - gap_start;
if (max_gap < gap_stop - gap_start)
@@ -3290,7 +3299,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
bfd_nonfatal_message (NULL, obfd, osections[num_sec - 1],
_("can't add padding"));
- status = 1;
+ goto fail;
}
else
{
@@ -3368,51 +3377,38 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
if (strip_symbols != STRIP_ALL)
{
bfd_set_error (bfd_error_no_error);
- bfd_map_over_sections (ibfd,
- mark_symbols_used_in_relocations,
- isympp);
- if (bfd_get_error () != bfd_error_no_error)
- {
- status = 1;
- return false;
- }
+ for (asection *s = ibfd->sections; s != NULL; s = s->next)
+ if (!mark_symbols_used_in_relocations (ibfd, s, isympp)
+ || bfd_get_error () != bfd_error_no_error)
+ goto fail;
}
osympp = (asymbol **) xmalloc ((symcount + add_symbols + 1) * sizeof (asymbol *));
- symcount = filter_symbols (ibfd, obfd, osympp, isympp, symcount);
+ if (!filter_symbols (ibfd, obfd, osympp, isympp, &symcount))
+ goto fail;
}
for (long s = 0; s < symcount; s++)
if (!bfd_copy_private_symbol_data (ibfd, osympp[s], obfd, osympp[s]))
- {
- status = 1;
- return false;
- }
+ goto fail;
if (dhandle != NULL)
{
- bool res;
-
- res = write_debugging_info (obfd, dhandle, &symcount, &osympp);
-
- if (! res)
- {
- status = 1;
- return false;
- }
+ if (!write_debugging_info (obfd, dhandle, &symcount, &osympp))
+ goto fail;
}
bfd_set_symtab (obfd, osympp, symcount);
/* This has to happen before section positions are set. */
- bfd_map_over_sections (ibfd, copy_relocations_in_section, obfd);
- if (status != 0)
- return false;
+ for (asection *s = ibfd->sections; s != NULL; s = s->next)
+ if (!copy_relocations_in_section (ibfd, s, obfd))
+ goto fail;
/* This has to happen after the symbol table has been set. */
- bfd_map_over_sections (ibfd, copy_section, obfd);
- if (status != 0)
- return false;
+ for (asection *s = ibfd->sections; s != NULL; s = s->next)
+ if (!copy_section (ibfd, s, obfd))
+ goto fail;
if (add_sections != NULL)
{
@@ -3424,7 +3420,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
0, padd->size))
{
bfd_nonfatal_message (NULL, obfd, padd->section, NULL);
- return false;
+ goto fail;
}
}
}
@@ -3442,7 +3438,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
0, pupdate->size))
{
bfd_nonfatal_message (NULL, obfd, osec, NULL);
- return false;
+ goto fail;
}
}
}
@@ -3493,19 +3489,19 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
bfd_nonfatal_message
(NULL, obfd, osec,
_("error: failed to copy merged notes into output"));
- return false;
+ goto fail;
}
merged = merged->next;
}
/* Free the memory. */
- merged_note_section * next;
- for (merged = merged_note_sections; merged != NULL; merged = next)
+ while (merged_note_sections != NULL)
{
- next = merged->next;
- free (merged->contents);
- free (merged);
+ merged_note_section *next = merged_note_sections->next;
+ free (merged_note_sections->contents);
+ free (merged_note_sections);
+ merged_note_sections = next;
}
}
else if (merge_notes && ! is_strip && ! strip_section_headers)
@@ -3520,7 +3516,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
bfd_nonfatal_message (NULL, obfd, NULL,
_("cannot fill debug link section `%s'"),
gnu_debuglink_filename);
- return false;
+ goto fail;
}
}
@@ -3558,7 +3554,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
bfd_nonfatal_message (NULL, obfd, osections[i], NULL);
free (buf);
- return false;
+ goto fail;
}
left -= now;
@@ -3570,6 +3566,8 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
free (buf);
free (gaps);
gaps = NULL;
+ free (osections);
+ osections = NULL;
}
/* Allow the BFD backend to copy any private data it understands
@@ -3580,7 +3578,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
{
bfd_nonfatal_message (NULL, obfd, NULL,
_("error copying private BFD data"));
- return false;
+ goto fail;
}
/* Switch to the alternate machine code. We have to do this at the
@@ -3603,6 +3601,18 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
}
return true;
+
+fail:
+ while (merged_note_sections != NULL)
+ {
+ merged_note_section *next = merged_note_sections->next;
+ free (merged_note_sections->contents);
+ free (merged_note_sections);
+ merged_note_sections = next;
+ }
+ free (gaps);
+ free (osections);
+ return false;
}
/* Read each archive element in turn from IBFD, copy the
@@ -3611,7 +3621,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
all elements in the new archive are of the type
'output_target'. */
-static void
+static bool
copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
bool force_output_target,
const bfd_arch_info_type *input_arch)
@@ -3626,6 +3636,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
bfd *this_element;
char *dir = NULL;
char *filename;
+ bool ok = true;
list = NULL;
@@ -3643,7 +3654,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
So for now we fail if an attempt is made to copy such libraries. */
if (ibfd->is_thin_archive)
{
- status = 1;
+ ok = false;
bfd_set_error (bfd_error_invalid_operation);
bfd_nonfatal_message (NULL, ibfd, NULL,
_("sorry: copying thin archives is not currently supported"));
@@ -3669,12 +3680,12 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
if (!bfd_set_format (obfd, bfd_get_format (ibfd)))
{
- status = 1;
+ ok = false;
bfd_nonfatal_message (NULL, obfd, NULL, NULL);
goto cleanup_and_exit;
}
- while (!status && this_element != NULL)
+ while (ok && this_element != NULL)
{
char *output_name;
bfd *output_element;
@@ -3712,7 +3723,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
non_fatal (_("cannot create tempdir for archive copying (error: %s)"),
strerror (errno));
bfd_close (this_element);
- status = 1;
+ ok = false;
goto cleanup_and_exit;
}
@@ -3755,31 +3766,31 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
{
bfd_nonfatal_message (output_name, NULL, NULL, NULL);
bfd_close (this_element);
- status = 1;
+ ok = false;
goto cleanup_and_exit;
}
if (ok_object)
{
- status = !copy_object (this_element, output_element, input_arch);
+ ok = copy_object (this_element, output_element, input_arch);
- if (status && bfd_get_arch (this_element) == bfd_arch_unknown)
+ if (!ok && bfd_get_arch (this_element) == bfd_arch_unknown)
/* Try again as an unknown object file. */
ok_object = false;
}
if (!ok_object)
- status = !copy_unknown_object (this_element, output_element);
+ ok = copy_unknown_object (this_element, output_element);
- if (!(ok_object && !status
+ if (!(ok_object && ok
? bfd_close : bfd_close_all_done) (output_element))
{
bfd_nonfatal_message (output_name, NULL, NULL, NULL);
/* Error in new object file. Don't change archive. */
- status = 1;
+ ok = false;
}
- if (status)
+ if (!ok)
{
unlink (output_name);
free (output_name);
@@ -3808,20 +3819,20 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
cleanup_and_exit:
filename = xstrdup (bfd_get_filename (obfd));
- if (!(status == 0 ? bfd_close : bfd_close_all_done) (obfd))
+ if (!(ok ? bfd_close : bfd_close_all_done) (obfd))
{
- if (!status)
+ if (ok)
bfd_nonfatal_message (filename, NULL, NULL, NULL);
- status = 1;
+ ok = false;
}
free (filename);
filename = xstrdup (bfd_get_filename (ibfd));
if (!bfd_close (ibfd))
{
- if (!status)
+ if (ok)
bfd_nonfatal_message (filename, NULL, NULL, NULL);
- status = 1;
+ ok = false;
}
free (filename);
@@ -3849,6 +3860,7 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
rmdir (dir);
free (dir);
}
+ return ok;
}
/* The top-level control. */
@@ -3962,7 +3974,9 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
gnu_debuglink_filename = NULL;
}
- copy_archive (ibfd, obfd, output_target, force_output_target, input_arch);
+ if (!copy_archive (ibfd, obfd, output_target, force_output_target,
+ input_arch))
+ status = 1;
}
else if (bfd_check_format_matches (ibfd, bfd_object, &obj_matching))
{
@@ -4092,21 +4106,20 @@ find_section_rename (const char *old_name, flagword *returned_flags)
/* Once each of the sections is copied, we may still need to do some
finalization work for private section headers. Do that here. */
-static void
+static bool
setup_bfd_headers (bfd *ibfd, bfd *obfd)
{
/* Allow the BFD backend to copy any private data it understands
from the input section to the output section. */
if (! bfd_copy_private_header_data (ibfd, obfd))
{
- status = 1;
bfd_nonfatal_message (NULL, ibfd, NULL,
_("error in private header data"));
- return;
+ return false;
}
/* All went well. */
- return;
+ return true;
}
static inline signed int
@@ -4156,10 +4169,9 @@ image_scn_align (unsigned int alignment)
/* Create a section in OBFD with the same
name and attributes as ISECTION in IBFD. */
-static void
-setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
+static bool
+setup_section (bfd *ibfd, sec_ptr isection, bfd *obfd)
{
- bfd *obfd = (bfd *) obfdarg;
struct section_list *p;
sec_ptr osection;
bfd_size_type size;
@@ -4174,7 +4186,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
unsigned int alignment;
if (is_strip_section (ibfd, isection))
- return;
+ return true;
/* Get the, possibly new, name of the output section. */
name = bfd_section_name (isection);
@@ -4408,11 +4420,11 @@ setup_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
elf_section_type (osection) = SHT_NOBITS;
if (!err)
- return;
+ return true;
loser:
- status = 1;
bfd_nonfatal_message (NULL, obfd, osection, err);
+ return false;
}
/* Return TRUE if input section ISECTION should be skipped. */
@@ -4501,17 +4513,16 @@ handle_remove_section_option (const char *section_pattern)
section with the same name in OBFDARG. If stripping then don't
copy any relocation info. */
-static void
-copy_relocations_in_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
+static bool
+copy_relocations_in_section (bfd *ibfd, sec_ptr isection, bfd *obfd)
{
- bfd *obfd = (bfd *) obfdarg;
long relsize;
arelent **relpp;
long relcount;
sec_ptr osection;
if (skip_section (ibfd, isection, false))
- return;
+ return true;
osection = isection->output_section;
@@ -4533,9 +4544,8 @@ copy_relocations_in_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
relsize = 0;
else
{
- status = 1;
bfd_nonfatal_message (NULL, ibfd, isection, NULL);
- return;
+ return false;
}
}
}
@@ -4557,10 +4567,9 @@ copy_relocations_in_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
relcount = bfd_canonicalize_reloc (ibfd, isection, relpp, isympp);
if (relcount < 0)
{
- status = 1;
bfd_nonfatal_message (NULL, ibfd, isection,
_("relocation count is negative"));
- return;
+ return false;
}
}
@@ -4585,21 +4594,21 @@ copy_relocations_in_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
bfd_set_reloc (obfd, osection, relcount == 0 ? NULL : relpp, relcount);
}
+ return true;
}
/* Copy the data of input section ISECTION of IBFD
to an output section with the same name in OBFD. */
-static void
-copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
+static bool
+copy_section (bfd *ibfd, sec_ptr isection, bfd *obfd)
{
- bfd *obfd = (bfd *) obfdarg;
struct section_list *p;
sec_ptr osection;
bfd_size_type size;
if (skip_section (ibfd, isection, true))
- return;
+ return true;
osection = isection->output_section;
/* The output SHF_COMPRESSED section size is different from input if
@@ -4618,10 +4627,9 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
&memhunk, &size))
{
bfd_set_section_size (osection, 0);
- status = 1;
bfd_nonfatal_message (NULL, ibfd, isection, NULL);
free (memhunk);
- return;
+ return false;
}
if (reverse_bytes)
@@ -4683,10 +4691,9 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
if (!bfd_set_section_contents (obfd, osection, memhunk, 0, size))
{
- status = 1;
bfd_nonfatal_message (NULL, obfd, osection, NULL);
free (memhunk);
- return;
+ return false;
}
free (memhunk);
}
@@ -4705,25 +4712,13 @@ copy_section (bfd *ibfd, sec_ptr isection, void *obfdarg)
memset (memhunk, 0, size);
if (! bfd_set_section_contents (obfd, osection, memhunk, 0, size))
{
- status = 1;
bfd_nonfatal_message (NULL, obfd, osection, NULL);
free (memhunk);
- return;
+ return false;
}
free (memhunk);
}
-}
-
-/* Get all the sections. This is used when --gap-fill or --pad-to is
- used. */
-
-static void
-get_sections (bfd *obfd ATTRIBUTE_UNUSED, asection *osection, void *secppparg)
-{
- asection ***secppp = (asection ***) secppparg;
-
- **secppp = osection;
- ++(*secppp);
+ return true;
}
/* Sort sections by LMA. This is called via qsort, and is used when
@@ -4778,34 +4773,36 @@ compare_section_lma (const void *arg1, const void *arg2)
Ignore relocations which will not appear in the output file. */
-static void
-mark_symbols_used_in_relocations (bfd *ibfd, sec_ptr isection, void *symbolsarg)
+static bool
+mark_symbols_used_in_relocations (bfd *ibfd, sec_ptr isection, asymbol **symbols)
{
- asymbol **symbols = (asymbol **) symbolsarg;
long relsize;
arelent **relpp;
long relcount, i;
/* Ignore an input section with no corresponding output section. */
if (isection->output_section == NULL)
- return;
+ return true;
relsize = bfd_get_reloc_upper_bound (ibfd, isection);
if (relsize < 0)
{
/* Do not complain if the target does not support relocations. */
if (relsize == -1 && bfd_get_error () == bfd_error_invalid_operation)
- return;
- bfd_fatal (bfd_get_filename (ibfd));
+ return true;
+ return false;
}
if (relsize == 0)
- return;
+ return true;
relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (ibfd, isection, relpp, symbols);
if (relcount < 0)
- bfd_fatal (bfd_get_filename (ibfd));
+ {
+ free (relpp);
+ return false;
+ }
/* Examine each symbol used in a relocation. If it's not one of the
special bfd section symbols, then mark it with BSF_KEEP. */
@@ -4821,6 +4818,7 @@ mark_symbols_used_in_relocations (bfd *ibfd, sec_ptr isection, void *symbolsarg)
}
free (relpp);
+ return true;
}
/* Write out debugging information. */
diff --git a/binutils/po/binutils.pot b/binutils/po/binutils.pot
index 679f4b9..0949403 100644
--- a/binutils/po/binutils.pot
+++ b/binutils/po/binutils.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-01-15 15:02+0000\n"
+"POT-Creation-Date: 2024-07-20 13:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -56,8 +56,8 @@ msgid ""
"\n"
msgstr ""
-#: addr2line.c:111 ar.c:354 ar.c:391 coffdump.c:470 dlltool.c:3804
-#: dllwrap.c:518 elfedit.c:976 objcopy.c:707 objcopy.c:763 readelf.c:5806
+#: 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
#: size.c:110 srconv.c:1705 strings.c:1361 sysdump.c:655 windmc.c:227
#: windres.c:690
#, c-format
@@ -95,12 +95,12 @@ msgstr ""
msgid "%s: cannot find section %s"
msgstr ""
-#: addr2line.c:514 ar.c:748 dlltool.c:3318 nm.c:1987 objcopy.c:6147
-#: objdump.c:5906 size.c:152 strings.c:356 windmc.c:958 windres.c:816
+#: 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
msgid "fatal error: libbfd ABI mismatch"
msgstr ""
-#: addr2line.c:541 nm.c:2013 objdump.c:5956 readelf.c:6110
+#: addr2line.c:541 nm.c:2013 objdump.c:6052 readelf.c:6612
#, c-format
msgid "unknown demangling style `%s'"
msgstr ""
@@ -460,7 +460,7 @@ msgstr ""
msgid "Cannot convert existing thin library %s to normal format"
msgstr ""
-#: ar.c:1076 ar.c:1177 ar.c:1499 objcopy.c:3721
+#: ar.c:1076 ar.c:1177 ar.c:1499 objcopy.c:3744
#, c-format
msgid "internal stat error on %s"
msgstr ""
@@ -763,7 +763,7 @@ msgstr ""
msgid "Symbol %s, tag %d, number %d"
msgstr ""
-#: coffdump.c:345 readelf.c:19750 readelf.c:19846
+#: coffdump.c:345 readelf.c:20364 readelf.c:20460
#, c-format
msgid "Type"
msgstr ""
@@ -975,7 +975,7 @@ msgstr ""
msgid "%s: is not a COFF format file"
msgstr ""
-#: cxxfilt.c:124 nm.c:380 objdump.c:463
+#: cxxfilt.c:124 nm.c:380 objdump.c:464
#, c-format
msgid "Report bugs to %s.\n"
msgstr ""
@@ -1073,522 +1073,522 @@ msgstr ""
msgid "debug_write_type: illegal type encountered"
msgstr ""
-#: dlltool.c:919 dlltool.c:944 dlltool.c:974
+#: dlltool.c:927 dlltool.c:952 dlltool.c:982
#, c-format
msgid "Internal error: Unknown machine type: %d"
msgstr ""
-#: dlltool.c:1016
+#: dlltool.c:1024
#, c-format
msgid "Can't open def file: %s"
msgstr ""
-#: dlltool.c:1021
+#: dlltool.c:1029
#, c-format
msgid "Processing def file: %s"
msgstr ""
-#: dlltool.c:1025
+#: dlltool.c:1033
msgid "Processed def file"
msgstr ""
-#: dlltool.c:1049
+#: dlltool.c:1057
#, c-format
msgid "Syntax error in def file %s:%d"
msgstr ""
-#: dlltool.c:1084
+#: dlltool.c:1092
#, c-format
msgid "%s: Path components stripped from image name, '%s'."
msgstr ""
-#: dlltool.c:1102
+#: dlltool.c:1110
#, c-format
msgid "NAME: %s base: %x"
msgstr ""
-#: dlltool.c:1105 dlltool.c:1126
+#: dlltool.c:1113 dlltool.c:1134
msgid "Can't have LIBRARY and NAME"
msgstr ""
-#: dlltool.c:1123
+#: dlltool.c:1131
#, c-format
msgid "LIBRARY: %s base: %x"
msgstr ""
-#: dlltool.c:1278
+#: dlltool.c:1286
#, c-format
msgid "VERSION %d.%d\n"
msgstr ""
-#: dlltool.c:1326
+#: dlltool.c:1334
#, c-format
msgid "run: %s %s"
msgstr ""
-#: dlltool.c:1367 resrc.c:289
+#: dlltool.c:1375 resrc.c:289
#, c-format
msgid "wait: %s"
msgstr ""
-#: dlltool.c:1372 dllwrap.c:416 resrc.c:294
+#: dlltool.c:1380 dllwrap.c:416 resrc.c:294
#, c-format
msgid "subprocess got fatal signal %d"
msgstr ""
-#: dlltool.c:1378 dllwrap.c:423 resrc.c:301
+#: dlltool.c:1386 dllwrap.c:423 resrc.c:301
#, c-format
msgid "%s exited with status %d"
msgstr ""
-#: dlltool.c:1409
+#: dlltool.c:1417
#, c-format
msgid "Sucking in info from %s section in %s"
msgstr ""
-#: dlltool.c:1550
+#: dlltool.c:1558
#, c-format
msgid "Excluding symbol: %s"
msgstr ""
-#: dlltool.c:1639 dlltool.c:1650 nm.c:1408 nm.c:1417
+#: dlltool.c:1647 dlltool.c:1658 nm.c:1408 nm.c:1417
#, c-format
msgid "%s: no symbols"
msgstr ""
#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1676
+#: dlltool.c:1684
#, c-format
msgid "Done reading %s"
msgstr ""
-#: dlltool.c:1686
+#: dlltool.c:1694
#, c-format
msgid "Unable to open object file: %s: %s"
msgstr ""
-#: dlltool.c:1689
+#: dlltool.c:1697
#, c-format
msgid "Scanning object file %s"
msgstr ""
-#: dlltool.c:1709
+#: dlltool.c:1717
#, c-format
msgid "Cannot produce mcore-elf dll from archive file: %s"
msgstr ""
-#: dlltool.c:1811
+#: dlltool.c:1819
msgid "Adding exports to output file"
msgstr ""
-#: dlltool.c:1863
+#: dlltool.c:1871
msgid "Added exports to output file"
msgstr ""
-#: dlltool.c:2031
+#: dlltool.c:2039
#, c-format
msgid "Generating export file: %s"
msgstr ""
-#: dlltool.c:2036
+#: dlltool.c:2044
#, c-format
msgid "Unable to open temporary assembler file: %s"
msgstr ""
-#: dlltool.c:2041
+#: dlltool.c:2049
#, c-format
msgid "Opened temporary file: %s"
msgstr ""
-#: dlltool.c:2217
+#: dlltool.c:2225
msgid "failed to read the number of entries from base file"
msgstr ""
-#: dlltool.c:2268
+#: dlltool.c:2276
msgid "Generated exports file"
msgstr ""
-#: dlltool.c:2426
+#: dlltool.c:2434
#, c-format
msgid "bfd_open failed open stub file: %s: %s"
msgstr ""
-#: dlltool.c:2430
+#: dlltool.c:2438
#, c-format
msgid "Creating stub file: %s"
msgstr ""
-#: dlltool.c:2767
+#: dlltool.c:2777
#, c-format
msgid "bfd_open failed reopen stub file: %s: %s"
msgstr ""
-#: dlltool.c:2781 dlltool.c:2860
+#: dlltool.c:2791 dlltool.c:2870
#, c-format
msgid "failed to open temporary head file: %s"
msgstr ""
-#: dlltool.c:2845 dlltool.c:2935
+#: dlltool.c:2855 dlltool.c:2945
#, c-format
msgid "failed to open temporary head file: %s: %s"
msgstr ""
-#: dlltool.c:2950
+#: dlltool.c:2960
#, c-format
msgid "failed to open temporary tail file: %s"
msgstr ""
-#: dlltool.c:2986
+#: dlltool.c:2996
#, c-format
msgid "failed to open temporary tail file: %s: %s"
msgstr ""
-#: dlltool.c:3009
+#: dlltool.c:3019
#, c-format
msgid "Can't create .lib file: %s: %s"
msgstr ""
-#: dlltool.c:3013
+#: dlltool.c:3023
#, c-format
msgid "Creating library file: %s"
msgstr ""
-#: dlltool.c:3105 dlltool.c:3111
+#: dlltool.c:3116 dlltool.c:3122
#, c-format
msgid "cannot delete %s: %s"
msgstr ""
-#: dlltool.c:3117
+#: dlltool.c:3128
msgid "Created lib file"
msgstr ""
-#: dlltool.c:3323
+#: dlltool.c:3334
#, c-format
msgid "Can't open .lib file: %s: %s"
msgstr ""
-#: dlltool.c:3331 dlltool.c:3353
+#: dlltool.c:3342 dlltool.c:3364
#, c-format
msgid "%s is not a library"
msgstr ""
-#: dlltool.c:3371
+#: dlltool.c:3382
#, c-format
msgid "Import library `%s' specifies two or more dlls"
msgstr ""
-#: dlltool.c:3382
+#: dlltool.c:3393
#, c-format
msgid "Unable to determine dll name for `%s' (not an import library?)"
msgstr ""
-#: dlltool.c:3608
+#: dlltool.c:3619
#, c-format
msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
msgstr ""
-#: dlltool.c:3614
+#: dlltool.c:3625
#, c-format
msgid "Error, duplicate EXPORT with ordinals: %s"
msgstr ""
-#: dlltool.c:3717
+#: dlltool.c:3730
msgid "Processing definitions"
msgstr ""
-#: dlltool.c:3744
+#: dlltool.c:3762
msgid "Processed definitions"
msgstr ""
#. xgetext:c-format
-#: dlltool.c:3751 dllwrap.c:477
+#: dlltool.c:3769 dllwrap.c:477
#, c-format
msgid "Usage %s <option(s)> <object-file(s)>\n"
msgstr ""
#. xgetext:c-format
-#: dlltool.c:3753
+#: dlltool.c:3771
#, c-format
msgid ""
" -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
msgstr ""
-#: dlltool.c:3754
+#: dlltool.c:3772
#, c-format
msgid ""
" possible <machine>: arm[_interwork], arm64, i386, mcore[-elf]{-le|-"
"be}, thumb\n"
msgstr ""
-#: dlltool.c:3755
+#: dlltool.c:3773
#, c-format
msgid " -e --output-exp <outname> Generate an export file.\n"
msgstr ""
-#: dlltool.c:3756
+#: dlltool.c:3774
#, c-format
msgid " -l --output-lib <outname> Generate an interface library.\n"
msgstr ""
-#: dlltool.c:3757
+#: dlltool.c:3775
#, c-format
msgid " -y --output-delaylib <outname> Create a delay-import library.\n"
msgstr ""
-#: dlltool.c:3758
+#: dlltool.c:3776
#, c-format
msgid " --deterministic-libraries\n"
msgstr ""
-#: dlltool.c:3760
+#: dlltool.c:3778
#, c-format
msgid ""
" Use zero for timestamps and uids/gids in output "
"libraries (default)\n"
msgstr ""
-#: dlltool.c:3762
+#: dlltool.c:3780
#, c-format
msgid ""
" Use zero for timestamps and uids/gids in output "
"libraries\n"
msgstr ""
-#: dlltool.c:3763
+#: dlltool.c:3781
#, c-format
msgid " --non-deterministic-libraries\n"
msgstr ""
-#: dlltool.c:3765
+#: dlltool.c:3783
#, c-format
msgid ""
" Use actual timestamps and uids/gids in output "
"libraries\n"
msgstr ""
-#: dlltool.c:3767
+#: dlltool.c:3785
#, c-format
msgid ""
" Use actual timestamps and uids/gids in output "
"libraries (default)\n"
msgstr ""
-#: dlltool.c:3768
+#: dlltool.c:3786
#, c-format
msgid " -a --add-indirect Add dll indirects to export file.\n"
msgstr ""
-#: dlltool.c:3769
+#: dlltool.c:3787
#, c-format
msgid ""
" -D --dllname <name> Name of input dll to put into interface lib.\n"
msgstr ""
-#: dlltool.c:3770
+#: dlltool.c:3788
#, c-format
msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
msgstr ""
-#: dlltool.c:3771
+#: dlltool.c:3789
#, c-format
msgid " -z --output-def <deffile> Name of .def file to be created.\n"
msgstr ""
-#: dlltool.c:3772
+#: dlltool.c:3790
#, c-format
msgid " --export-all-symbols Export all symbols to .def\n"
msgstr ""
-#: dlltool.c:3773
+#: dlltool.c:3791
#, c-format
msgid " --no-export-all-symbols Only export listed symbols\n"
msgstr ""
-#: dlltool.c:3774
+#: dlltool.c:3792
#, c-format
msgid " --exclude-symbols <list> Don't export <list>\n"
msgstr ""
-#: dlltool.c:3775
+#: dlltool.c:3793
#, c-format
msgid " --no-default-excludes Clear default exclude symbols\n"
msgstr ""
-#: dlltool.c:3776
+#: dlltool.c:3794
#, c-format
msgid " -b --base-file <basefile> Read linker generated base file.\n"
msgstr ""
-#: dlltool.c:3777
+#: dlltool.c:3795
#, c-format
msgid " -x --no-idata4 Don't generate idata$4 section.\n"
msgstr ""
-#: dlltool.c:3778
+#: dlltool.c:3796
#, c-format
msgid " -c --no-idata5 Don't generate idata$5 section.\n"
msgstr ""
-#: dlltool.c:3779
+#: dlltool.c:3797
#, c-format
msgid ""
" --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata"
"$5.\n"
msgstr ""
-#: dlltool.c:3780
+#: dlltool.c:3798
#, c-format
msgid ""
" -U --add-underscore Add underscores to all symbols in interface "
"library.\n"
msgstr ""
-#: dlltool.c:3781
+#: dlltool.c:3799
#, c-format
msgid ""
" --add-stdcall-underscore Add underscores to stdcall symbols in "
"interface library.\n"
msgstr ""
-#: dlltool.c:3782
+#: dlltool.c:3800
#, c-format
msgid ""
" --no-leading-underscore All symbols shouldn't be prefixed by an "
"underscore.\n"
msgstr ""
-#: dlltool.c:3783
+#: dlltool.c:3801
#, c-format
msgid ""
" --leading-underscore All symbols should be prefixed by an "
"underscore.\n"
msgstr ""
-#: dlltool.c:3784
+#: dlltool.c:3802
#, c-format
msgid " -k --kill-at Kill @<n> from exported names.\n"
msgstr ""
-#: dlltool.c:3785
+#: dlltool.c:3803
#, c-format
msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
msgstr ""
-#: dlltool.c:3786
+#: dlltool.c:3804
#, c-format
msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
msgstr ""
-#: dlltool.c:3787
+#: dlltool.c:3805
#, c-format
msgid " -S --as <name> Use <name> for assembler.\n"
msgstr ""
-#: dlltool.c:3788
+#: dlltool.c:3806
#, c-format
msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
msgstr ""
-#: dlltool.c:3789
+#: dlltool.c:3807
#, c-format
msgid ""
" -C --compat-implib Create backward compatible import library.\n"
msgstr ""
-#: dlltool.c:3790
+#: dlltool.c:3808
#, c-format
msgid ""
" -n --no-delete Keep temp files (repeat for extra "
"preservation).\n"
msgstr ""
-#: dlltool.c:3791
+#: dlltool.c:3809
#, c-format
msgid ""
" -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
msgstr ""
-#: dlltool.c:3792
+#: dlltool.c:3810
#, c-format
msgid ""
" -I --identify <implib> Report the name of the DLL associated with "
"<implib>.\n"
msgstr ""
-#: dlltool.c:3793
+#: dlltool.c:3811
#, c-format
msgid ""
" --identify-strict Causes --identify to report error when multiple "
"DLLs.\n"
msgstr ""
-#: dlltool.c:3794
+#: dlltool.c:3812
#, c-format
msgid " -v --verbose Be verbose.\n"
msgstr ""
-#: dlltool.c:3795
+#: dlltool.c:3813
#, c-format
msgid " -V --version Display the program version.\n"
msgstr ""
-#: dlltool.c:3796
+#: dlltool.c:3814
#, c-format
msgid " -h --help Display this information.\n"
msgstr ""
-#: dlltool.c:3797
+#: dlltool.c:3815
#, c-format
msgid " @<file> Read options from <file>.\n"
msgstr ""
-#: dlltool.c:3799
+#: dlltool.c:3817
#, c-format
msgid ""
" -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
msgstr ""
-#: dlltool.c:3800
+#: dlltool.c:3818
#, c-format
msgid " -L --linker <name> Use <name> as the linker.\n"
msgstr ""
-#: dlltool.c:3801
+#: dlltool.c:3819
#, c-format
msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
msgstr ""
-#: dlltool.c:3951
+#: dlltool.c:3969
#, c-format
msgid "Unable to open def-file: %s"
msgstr ""
-#: dlltool.c:3956
+#: dlltool.c:3974
#, c-format
msgid "Path components stripped from dllname, '%s'."
msgstr ""
-#: dlltool.c:4004
+#: dlltool.c:4022
#, c-format
msgid "Unable to open base-file: %s"
msgstr ""
-#: dlltool.c:4042
+#: dlltool.c:4060
#, c-format
msgid "Machine '%s' not supported"
msgstr ""
-#: dlltool.c:4141
+#: dlltool.c:4159
#, c-format
msgid "Warning, machine type (%d) not supported for delayimport."
msgstr ""
-#: dlltool.c:4209 dllwrap.c:206
+#: dlltool.c:4227 dllwrap.c:206
#, c-format
msgid "Tried file: %s"
msgstr ""
-#: dlltool.c:4216 dllwrap.c:213
+#: dlltool.c:4234 dllwrap.c:213
#, c-format
msgid "Using file: %s"
msgstr ""
@@ -1866,7 +1866,7 @@ msgstr ""
msgid "Encoded size of 0 is too small to read\n"
msgstr ""
-#: dwarf.c:263 readelf.c:3582 readelf.c:11485
+#: dwarf.c:263 readelf.c:3921 readelf.c:12029
msgid "unknown"
msgstr ""
@@ -1886,7 +1886,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:430 dwarf.c:5548
+#: dwarf.c:430 dwarf.c:5553
msgid "Badly formed extended line op encountered!\n"
msgstr ""
@@ -1917,7 +1917,7 @@ msgstr ""
msgid "define new File Table entry\n"
msgstr ""
-#: dwarf.c:463 dwarf.c:4821
+#: dwarf.c:463 dwarf.c:4826
#, c-format
msgid " Entry\tDir\tTime\tSize\tName\n"
msgstr ""
@@ -2001,7 +2001,7 @@ msgstr ""
#, c-format
msgid ""
"string index of %<PRIu64> converts to an offset of %#<PRIx64> which is too "
-"big for section %s"
+"big for section %s\n"
msgstr ""
#: dwarf.c:675
@@ -2268,34 +2268,35 @@ msgstr ""
#: dwarf.c:2843
#, c-format
-msgid "Unrecognized form: %#lx"
+msgid "Unrecognized form: %#lx\n"
msgstr ""
#: dwarf.c:2857
#, c-format
msgid ""
-"CU @ %#<PRIx64> has multiple loclists_base values (%#<PRIx64> and %#<PRIx64>)"
+"CU @ %#<PRIx64> has multiple loclists_base values (%#<PRIx64> and %"
+"#<PRIx64>)\n"
msgstr ""
#: dwarf.c:2864
#, c-format
msgid ""
"CU @ %#<PRIx64> has has a negative loclists_base value of %#<PRIx64> - "
-"treating as zero"
+"treating as zero\n"
msgstr ""
#: dwarf.c:2878
#, c-format
msgid ""
"CU @ %#<PRIx64> has multiple str_offsets_base values %#<PRIx64> and %"
-"#<PRIx64>)"
+"#<PRIx64>)\n"
msgstr ""
#: dwarf.c:2885
#, c-format
msgid ""
"CU @ %#<PRIx64> has has a negative stroffsets_base value of %#<PRIx64> - "
-"treating as zero"
+"treating as zero\n"
msgstr ""
#: dwarf.c:2953
@@ -2446,7 +2447,7 @@ msgstr ""
msgid " (location list)"
msgstr ""
-#: dwarf.c:3402 dwarf.c:6796 dwarf.c:6998 dwarf.c:7173
+#: dwarf.c:3402 dwarf.c:6809 dwarf.c:7011 dwarf.c:7186
#, c-format
msgid " [without DW_AT_frame_base]"
msgstr ""
@@ -2495,1128 +2496,1128 @@ msgstr ""
msgid "Unexpected form in top DIE\n"
msgstr ""
-#: dwarf.c:3702
+#: dwarf.c:3706
msgid "Unexpected form of DW_AT_rnglists_base in the top DIE\n"
msgstr ""
-#: dwarf.c:3712
+#: dwarf.c:3717
msgid "Unexpected form of DW_AT_addr_base in the top DIE\n"
msgstr ""
-#: dwarf.c:3759
+#: dwarf.c:3764
#, c-format
msgid "Reserved length value (%#<PRIx64>) found in section %s\n"
msgstr ""
-#: dwarf.c:3769
+#: dwarf.c:3774
#, c-format
msgid ""
"Corrupt unit length (got %#<PRIx64> expected at most %#tx) in section %s\n"
msgstr ""
-#: dwarf.c:3779
+#: dwarf.c:3784
#, c-format
msgid "No comp units in %s section ?\n"
msgstr ""
-#: dwarf.c:3793
+#: dwarf.c:3798
#, c-format
msgid "Not enough memory for a debug info array of %u entries\n"
msgstr ""
-#: dwarf.c:3827
+#: dwarf.c:3832
#, c-format
msgid "Unable to locate %s section!\n"
msgstr ""
-#: dwarf.c:3994
+#: dwarf.c:3999
#, c-format
msgid "Invalid pointer size (%d) in compunit header, using %d instead\n"
msgstr ""
-#: dwarf.c:4028
+#: dwarf.c:4033
#, c-format
msgid " Compilation Unit @ offset %#<PRIx64>:\n"
msgstr ""
-#: dwarf.c:4030
+#: dwarf.c:4035
#, c-format
msgid " Length: %#<PRIx64> (%s)\n"
msgstr ""
-#: dwarf.c:4033
+#: dwarf.c:4038
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:4038
+#: dwarf.c:4043
#, c-format
msgid " Unit Type: %s (%x)\n"
msgstr ""
-#: dwarf.c:4042
+#: dwarf.c:4047
#, c-format
msgid " Abbrev Offset: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:4044
+#: dwarf.c:4049
#, c-format
msgid " Pointer Size: %d\n"
msgstr ""
-#: dwarf.c:4047
+#: dwarf.c:4052
#, c-format
msgid " Signature: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:4048
+#: dwarf.c:4053
#, c-format
msgid " Type Offset: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:4051
+#: dwarf.c:4056
#, c-format
msgid " DWO ID: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:4057
+#: dwarf.c:4062
#, c-format
msgid " Section contributions:\n"
msgstr ""
-#: dwarf.c:4058
+#: dwarf.c:4063
#, c-format
msgid " .debug_abbrev.dwo: %#<PRIx64> %#zx\n"
msgstr ""
-#: dwarf.c:4060
+#: dwarf.c:4065
#, c-format
msgid " .debug_line.dwo: %#<PRIx64> %#zx\n"
msgstr ""
-#: dwarf.c:4062
+#: dwarf.c:4067
#, c-format
msgid " .debug_loc.dwo: %#<PRIx64> %#zx\n"
msgstr ""
-#: dwarf.c:4064
+#: dwarf.c:4069
#, c-format
msgid " .debug_str_offsets.dwo: %#<PRIx64> %#zx\n"
msgstr ""
-#: dwarf.c:4074
+#: dwarf.c:4079
#, c-format
msgid ""
"CU at offset %#<PRIx64> contains corrupt or unsupported version number: %d.\n"
msgstr ""
-#: dwarf.c:4086
+#: dwarf.c:4091
#, c-format
msgid ""
"CU at offset %#<PRIx64> contains corrupt or unsupported unit type: %d.\n"
msgstr ""
-#: dwarf.c:4131
+#: dwarf.c:4136
#, c-format
msgid " <%d><%lx>: Abbrev Number: 0\n"
msgstr ""
-#: dwarf.c:4141
+#: dwarf.c:4146
#, c-format
msgid "Bogus end-of-siblings marker detected at offset %lx in %s section\n"
msgstr ""
-#: dwarf.c:4145
+#: dwarf.c:4150
msgid "Further warnings about bogus end-of-sibling markers suppressed\n"
msgstr ""
-#: dwarf.c:4168
+#: dwarf.c:4173
#, c-format
msgid " <%d><%lx>: Abbrev Number: %lu"
msgstr ""
-#: dwarf.c:4172
+#: dwarf.c:4177
#, c-format
msgid " <%d><%lx>: ...\n"
msgstr ""
-#: dwarf.c:4192
+#: dwarf.c:4197
#, c-format
msgid ""
"DIE at offset %#lx refers to abbreviation number %lu which does not exist\n"
msgstr ""
-#: dwarf.c:4255
+#: dwarf.c:4260
#, c-format
msgid ""
"CU @ %#<PRIx64> has has a negative rnglists_base value of %#<PRIx64> - "
-"treating as zero"
+"treating as zero\n"
msgstr ""
-#: dwarf.c:4303
+#: dwarf.c:4308
msgid "DIE has locviews without loclist\n"
msgstr ""
-#: dwarf.c:4414
+#: dwarf.c:4419
#, c-format
msgid ""
"The length field (%#<PRIx64>) in the debug_line header is wrong - the "
"section is too small\n"
msgstr ""
-#: dwarf.c:4431
+#: dwarf.c:4436
msgid "Only DWARF version 2, 3, 4 and 5 line info is currently supported.\n"
msgstr ""
-#: dwarf.c:4443 dwarf.c:7336 dwarf.c:8273
+#: dwarf.c:4448 dwarf.c:7349 dwarf.c:8287
#, c-format
msgid "The %s section contains unsupported segment selector size: %d.\n"
msgstr ""
-#: dwarf.c:4460
+#: dwarf.c:4465
msgid "Invalid maximum operations per insn.\n"
msgstr ""
-#: dwarf.c:4487
+#: dwarf.c:4492
msgid "Directory Table"
msgstr ""
-#: dwarf.c:4487
+#: dwarf.c:4492
msgid "File Name Table"
msgstr ""
-#: dwarf.c:4491
+#: dwarf.c:4496
#, c-format
msgid "Unexpectedly large number of columns in the %s (%u)\n"
msgstr ""
-#: dwarf.c:4501
+#: dwarf.c:4506
#, c-format
msgid "%s: Corrupt format description entry\n"
msgstr ""
-#: dwarf.c:4509
+#: dwarf.c:4514
#, c-format
msgid ""
"\n"
" The %s is empty.\n"
msgstr ""
-#: dwarf.c:4515
+#: dwarf.c:4520
#, c-format
msgid "%s: Corrupt entry count %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:4521
+#: dwarf.c:4526
#, c-format
msgid "%s: format count is zero, but the table is not empty\n"
msgstr ""
-#: dwarf.c:4526
+#: dwarf.c:4531
#, c-format
msgid ""
"\n"
" The %s (offset %#tx, lines %<PRIu64>, columns %u):\n"
msgstr ""
-#: dwarf.c:4529
+#: dwarf.c:4534
#, c-format
msgid " Entry"
msgstr ""
-#: dwarf.c:4543
+#: dwarf.c:4548
#, c-format
msgid "\tName"
msgstr ""
-#: dwarf.c:4546
+#: dwarf.c:4551
#, c-format
msgid "\tDir"
msgstr ""
-#: dwarf.c:4549
+#: dwarf.c:4554
#, c-format
msgid "\tTime"
msgstr ""
-#: dwarf.c:4552
+#: dwarf.c:4557
#, c-format
msgid "\tSize"
msgstr ""
-#: dwarf.c:4555
+#: dwarf.c:4560
#, c-format
msgid "\tMD5\t\t\t"
msgstr ""
-#: dwarf.c:4558
+#: dwarf.c:4563
#, c-format
msgid "\t(Unknown format content type %<PRIu64>)"
msgstr ""
-#: dwarf.c:4592
+#: dwarf.c:4597
#, c-format
msgid ""
"\n"
"%s: Corrupt entries list\n"
msgstr ""
-#: dwarf.c:4618
+#: dwarf.c:4623
msgid "corrupt .debug_sup section: size is too small\n"
msgstr ""
-#: dwarf.c:4625
-msgid "corrupt .debug_sup section: version < 5"
+#: dwarf.c:4630
+msgid "corrupt .debug_sup section: version < 5\n"
msgstr ""
-#: dwarf.c:4629
+#: dwarf.c:4634
msgid "corrupt .debug_sup section: is_supplementary not 0 or 1\n"
msgstr ""
-#: dwarf.c:4633
+#: dwarf.c:4638
msgid ""
"corrupt .debug_sup section: filename not empty in supplementary section\n"
msgstr ""
-#: dwarf.c:4638
+#: dwarf.c:4643
msgid "corrupt .debug_sup section: filename is not NUL terminated\n"
msgstr ""
-#: dwarf.c:4646
+#: dwarf.c:4651
msgid "corrupt .debug_sup section: bad LEB128 field for checksum length\n"
msgstr ""
-#: dwarf.c:4652
+#: dwarf.c:4657
msgid ""
"corrupt .debug_sup section: checksum length is longer than the remaining "
"section length\n"
msgstr ""
-#: dwarf.c:4657
+#: dwarf.c:4662
#, c-format
msgid ""
"corrupt .debug_sup section: there are %#<PRIx64> extra, unused bytes at the "
"end of the section\n"
msgstr ""
-#: dwarf.c:4662
+#: dwarf.c:4667
#, c-format
msgid " Version: %u\n"
msgstr ""
-#: dwarf.c:4663
+#: dwarf.c:4668
#, c-format
msgid " Is Supp: %u\n"
msgstr ""
-#: dwarf.c:4664
+#: dwarf.c:4669
#, c-format
msgid " Filename: %s\n"
msgstr ""
-#: dwarf.c:4665
+#: dwarf.c:4670
#, c-format
msgid " Checksum Len: %<PRIu64>\n"
msgstr ""
-#: dwarf.c:4668
+#: dwarf.c:4673
#, c-format
msgid " Checksum: "
msgstr ""
-#: dwarf.c:4716 dwarf.c:5134
+#: dwarf.c:4721 dwarf.c:5139
msgid ""
"Partial .debug_line. section encountered without a prior full .debug_line "
"section\n"
msgstr ""
-#: dwarf.c:4729
+#: dwarf.c:4734
#, c-format
msgid " Offset: %#tx\n"
msgstr ""
-#: dwarf.c:4730
+#: dwarf.c:4735
#, c-format
msgid " Length: %<PRId64>\n"
msgstr ""
-#: dwarf.c:4731
+#: dwarf.c:4736
#, c-format
msgid " DWARF Version: %d\n"
msgstr ""
-#: dwarf.c:4734
+#: dwarf.c:4739
#, c-format
msgid " Address size (bytes): %d\n"
msgstr ""
-#: dwarf.c:4735
+#: dwarf.c:4740
#, c-format
msgid " Segment selector (bytes): %d\n"
msgstr ""
-#: dwarf.c:4737
+#: dwarf.c:4742
#, c-format
msgid " Prologue Length: %d\n"
msgstr ""
-#: dwarf.c:4738
+#: dwarf.c:4743
#, c-format
msgid " Minimum Instruction Length: %d\n"
msgstr ""
-#: dwarf.c:4740
+#: dwarf.c:4745
#, c-format
msgid " Maximum Ops per Instruction: %d\n"
msgstr ""
-#: dwarf.c:4741
+#: dwarf.c:4746
#, c-format
msgid " Initial value of 'is_stmt': %d\n"
msgstr ""
-#: dwarf.c:4742
+#: dwarf.c:4747
#, c-format
msgid " Line Base: %d\n"
msgstr ""
-#: dwarf.c:4743
+#: dwarf.c:4748
#, c-format
msgid " Line Range: %d\n"
msgstr ""
-#: dwarf.c:4744
+#: dwarf.c:4749
#, c-format
msgid " Opcode Base: %d\n"
msgstr ""
-#: dwarf.c:4749 dwarf.c:5150
+#: dwarf.c:4754 dwarf.c:5155
msgid "Line range of 0 is invalid, using 1 instead\n"
msgstr ""
-#: dwarf.c:4761
+#: dwarf.c:4766
msgid "Line Base extends beyond end of section\n"
msgstr ""
-#: dwarf.c:4765
+#: dwarf.c:4770
#, c-format
msgid ""
"\n"
" Opcodes:\n"
msgstr ""
-#: dwarf.c:4768
+#: dwarf.c:4773
#, c-format
msgid " Opcode %d has %d arg\n"
msgid_plural " Opcode %d has %d args\n"
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:4788
+#: dwarf.c:4793
#, c-format
msgid ""
"\n"
" The Directory Table is empty.\n"
msgstr ""
-#: dwarf.c:4793
+#: dwarf.c:4798
#, c-format
msgid ""
"\n"
" The Directory Table (offset %#tx):\n"
msgstr ""
-#: dwarf.c:4816
+#: dwarf.c:4821
#, c-format
msgid ""
"\n"
" The File Name Table is empty.\n"
msgstr ""
-#: dwarf.c:4819
+#: dwarf.c:4824
#, c-format
msgid ""
"\n"
" The File Name Table (offset %#tx):\n"
msgstr ""
-#: dwarf.c:4844
+#: dwarf.c:4849
msgid "Corrupt file name table entry\n"
msgstr ""
-#: dwarf.c:4861
+#: dwarf.c:4866
#, c-format
msgid " No Line Number Statements.\n"
msgstr ""
-#: dwarf.c:4864
+#: dwarf.c:4869
#, c-format
msgid " Line Number Statements:\n"
msgstr ""
-#: dwarf.c:4886
+#: dwarf.c:4891
#, c-format
msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>%s"
msgstr ""
-#: dwarf.c:4891 dwarf.c:4912 dwarf.c:4954 dwarf.c:4974 dwarf.c:5022
-#: dwarf.c:5042
+#: dwarf.c:4896 dwarf.c:4917 dwarf.c:4959 dwarf.c:4979 dwarf.c:5027
+#: dwarf.c:5047
msgid " (reset view)"
msgstr ""
-#: dwarf.c:4906
+#: dwarf.c:4911
#, c-format
msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>[%d]%s"
msgstr ""
-#: dwarf.c:4916
+#: dwarf.c:4921
#, c-format
msgid " and Line by %d to %d"
msgstr ""
-#: dwarf.c:4919 dwarf.c:4936
+#: dwarf.c:4924 dwarf.c:4941
#, c-format
msgid " (view %u)\n"
msgstr ""
-#: dwarf.c:4934
+#: dwarf.c:4939
#, c-format
msgid " Copy"
msgstr ""
-#: dwarf.c:4950
+#: dwarf.c:4955
#, c-format
msgid " Advance PC by %<PRIu64> to %#<PRIx64>%s\n"
msgstr ""
-#: dwarf.c:4969
+#: dwarf.c:4974
#, c-format
msgid " Advance PC by %<PRIu64> to %#<PRIx64>[%d]%s\n"
msgstr ""
-#: dwarf.c:4981
+#: dwarf.c:4986
#, c-format
msgid " Advance Line by %d to %d\n"
msgstr ""
-#: dwarf.c:4987
+#: dwarf.c:4992
#, c-format
msgid " Set File Name to entry %<PRIu64> in the File Name Table\n"
msgstr ""
-#: dwarf.c:4994
+#: dwarf.c:4999
#, c-format
msgid " Set column to %<PRIu64>\n"
msgstr ""
-#: dwarf.c:5001
+#: dwarf.c:5006
#, c-format
msgid " Set is_stmt to %d\n"
msgstr ""
-#: dwarf.c:5006
+#: dwarf.c:5011
#, c-format
msgid " Set basic block\n"
msgstr ""
-#: dwarf.c:5018
+#: dwarf.c:5023
#, c-format
msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>%s\n"
msgstr ""
-#: dwarf.c:5037
+#: dwarf.c:5042
#, c-format
msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>[%d]%s\n"
msgstr ""
-#: dwarf.c:5050
+#: dwarf.c:5055
#, c-format
msgid " Advance PC by fixed size amount %<PRIu64> to %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:5057
+#: dwarf.c:5062
#, c-format
msgid " Set prologue_end to true\n"
msgstr ""
-#: dwarf.c:5061
+#: dwarf.c:5066
#, c-format
msgid " Set epilogue_begin to true\n"
msgstr ""
-#: dwarf.c:5066
+#: dwarf.c:5071
#, c-format
msgid " Set ISA to %<PRIu64>\n"
msgstr ""
-#: dwarf.c:5070 dwarf.c:5747
+#: dwarf.c:5075 dwarf.c:5752
#, c-format
msgid " Unknown opcode %d with operands: "
msgstr ""
-#: dwarf.c:5163
+#: dwarf.c:5168
#, c-format
msgid "opcode base of %d extends beyond end of section\n"
msgstr ""
-#: dwarf.c:5178
+#: dwarf.c:5183
#, c-format
msgid "Unexpectedly large number of columns in the directory name table (%u)\n"
msgstr ""
-#: dwarf.c:5190 dwarf.c:5220 dwarf.c:5250
+#: dwarf.c:5195 dwarf.c:5225 dwarf.c:5255
msgid "Corrupt directories list\n"
msgstr ""
-#: dwarf.c:5198
+#: dwarf.c:5203
#, c-format
msgid "number of directories (0x%x) exceeds size of section %s\n"
msgstr ""
-#: dwarf.c:5258
+#: dwarf.c:5263
#, c-format
msgid "Unexpectedly large number of columns in the file name table (%u)\n"
msgstr ""
-#: dwarf.c:5271 dwarf.c:5302 dwarf.c:5349
+#: dwarf.c:5276 dwarf.c:5307 dwarf.c:5354
msgid "Corrupt file name list\n"
msgstr ""
-#: dwarf.c:5279
+#: dwarf.c:5284
#, c-format
msgid "number of files (0x%x) exceeds size of section %s\n"
msgstr ""
-#: dwarf.c:5371
+#: dwarf.c:5376
msgid "directory table ends unexpectedly\n"
msgstr ""
-#: dwarf.c:5411
+#: dwarf.c:5416
msgid "file table ends unexpectedly\n"
msgstr ""
-#: dwarf.c:5444
+#: dwarf.c:5449
#, c-format
msgid "CU: No directory table\n"
msgstr ""
-#: dwarf.c:5446
+#: dwarf.c:5451
#, c-format
msgid "CU: %s:\n"
msgstr ""
-#: dwarf.c:5456 dwarf.c:5788 readelf.c:7451 readelf.c:7547 readelf.c:7564
-#: readelf.c:7581 readelf.c:8385 readelf.c:12586 readelf.c:13248
-#: readelf.c:13261 readelf.c:18834 readelf.c:18866
+#: 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
msgid "<unknown>"
msgstr ""
-#: dwarf.c:5463 dwarf.c:5674
+#: dwarf.c:5468 dwarf.c:5679
#, c-format
msgid "directory index %u >= number of directories %u\n"
msgstr ""
-#: dwarf.c:5466 dwarf.c:5782 elfcomm.c:762 readelf.c:906 readelf.c:8562
-#: readelf.c:9129 readelf.c:11164 readelf.c:13555 readelf.c:13621
-#: readelf.c:13625 readelf.c:13739 readelf.c:17564 readelf.c:17653
-#: readelf.c:18246 readelf.c:18265 readelf.c:18384 readelf.c:18843
-#: readelf.c:20006 readelf.c:20009
+#: 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
#, c-format
msgid "<corrupt>"
msgstr ""
-#: dwarf.c:5472
+#: dwarf.c:5477
#, c-format
msgid "CU: %s/%s:\n"
msgstr ""
-#: dwarf.c:5482
+#: dwarf.c:5487
#, c-format
msgid ""
"File name Line number Starting address "
"View Stmt\n"
msgstr ""
-#: dwarf.c:5484
+#: dwarf.c:5489
#, c-format
msgid ""
"File name Line number Starting address View "
"Stmt\n"
msgstr ""
-#: dwarf.c:5487
+#: dwarf.c:5492
#, c-format
msgid "CU: Empty file name table\n"
msgstr ""
-#: dwarf.c:5594
+#: dwarf.c:5599
#, c-format
msgid "UNKNOWN (%u): length %ld\n"
msgstr ""
-#: dwarf.c:5644
+#: dwarf.c:5649
#, c-format
msgid ""
"\n"
" [Use file table entry %d]\n"
msgstr ""
-#: dwarf.c:5648 dwarf.c:5780
+#: dwarf.c:5653 dwarf.c:5785
#, c-format
msgid "file index %u >= number of files %u\n"
msgstr ""
-#: dwarf.c:5650
+#: dwarf.c:5655
#, c-format
msgid ""
"\n"
" <over large file table index %u>"
msgstr ""
-#: dwarf.c:5664
+#: dwarf.c:5669
#, c-format
msgid ""
"\n"
" [Use file %s in directory table entry %d]\n"
msgstr ""
-#: dwarf.c:5677
+#: dwarf.c:5682
#, c-format
msgid ""
"\n"
" <over large directory table entry %u>\n"
msgstr ""
-#: dwarf.c:5743
+#: dwarf.c:5748
#, c-format
msgid " Set ISA to %lu\n"
msgstr ""
-#: dwarf.c:5950
+#: dwarf.c:5955
msgid "no info"
msgstr ""
-#: dwarf.c:5951
+#: dwarf.c:5956
msgid "type"
msgstr ""
-#: dwarf.c:5952
+#: dwarf.c:5957
msgid "variable"
msgstr ""
-#: dwarf.c:5953
+#: dwarf.c:5958
msgid "function"
msgstr ""
-#: dwarf.c:5954
+#: dwarf.c:5959
msgid "other"
msgstr ""
-#: dwarf.c:5955
+#: dwarf.c:5960
msgid "unused5"
msgstr ""
-#: dwarf.c:5956
+#: dwarf.c:5961
msgid "unused6"
msgstr ""
-#: dwarf.c:5957
+#: dwarf.c:5962
msgid "unused7"
msgstr ""
-#: dwarf.c:5995
+#: dwarf.c:6000
#, c-format
msgid "Debug info is corrupted, %s header at %#lx has length %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6010 dwarf.c:7704
+#: dwarf.c:6015 dwarf.c:7717
#, c-format
msgid ""
".debug_info offset of %#<PRIx64> in %s section does not point to a CU "
"header.\n"
msgstr ""
-#: dwarf.c:6016
+#: dwarf.c:6021
#, c-format
msgid " Length: %<PRId64>\n"
msgstr ""
-#: dwarf.c:6018
+#: dwarf.c:6023
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:6020
+#: dwarf.c:6025
#, c-format
msgid " Offset into .debug_info section: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6022
+#: dwarf.c:6027
#, c-format
msgid " Size of area in .debug_info section: %<PRId64>\n"
msgstr ""
-#: dwarf.c:6031
+#: dwarf.c:6036
msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
msgstr ""
-#: dwarf.c:6039
+#: dwarf.c:6044
#, c-format
msgid ""
"\n"
" Offset Kind Name\n"
msgstr ""
-#: dwarf.c:6041
+#: dwarf.c:6046
#, c-format
msgid ""
"\n"
" Offset\tName\n"
msgstr ""
-#: dwarf.c:6075
+#: dwarf.c:6080
msgid "s"
msgstr ""
-#: dwarf.c:6075
+#: dwarf.c:6080
msgid "g"
msgstr ""
-#: dwarf.c:6133
+#: dwarf.c:6138
#, c-format
msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
msgstr ""
-#: dwarf.c:6139
+#: dwarf.c:6144
#, c-format
msgid " DW_MACINFO_end_file\n"
msgstr ""
-#: dwarf.c:6146
+#: dwarf.c:6151
#, c-format
msgid " DW_MACINFO_define - lineno : %d macro : %*s\n"
msgstr ""
-#: dwarf.c:6156
+#: dwarf.c:6161
#, c-format
msgid " DW_MACINFO_undef - lineno : %d macro : %*s\n"
msgstr ""
-#: dwarf.c:6169
+#: dwarf.c:6174
#, c-format
msgid " DW_MACINFO_vendor_ext - constant : %d string : %*s\n"
msgstr ""
-#: dwarf.c:6313
+#: dwarf.c:6326
#, c-format
msgid ""
"Expected to find a version number of 4 or 5 in section %s but found %d "
"instead\n"
msgstr ""
-#: dwarf.c:6320
+#: dwarf.c:6333
#, c-format
msgid " Offset: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6321
+#: dwarf.c:6334
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:6322
+#: dwarf.c:6335
#, c-format
msgid " Offset size: %d\n"
msgstr ""
-#: dwarf.c:6326
+#: dwarf.c:6339
#, c-format
msgid " Offset into .debug_line: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6340
+#: dwarf.c:6353
#, c-format
msgid " Extension opcode arguments:\n"
msgstr ""
-#: dwarf.c:6347
+#: dwarf.c:6360
#, c-format
msgid " DW_MACRO_%02x has no arguments\n"
msgstr ""
-#: dwarf.c:6350
+#: dwarf.c:6363
#, c-format
msgid " DW_MACRO_%02x arguments: "
msgstr ""
-#: dwarf.c:6376
+#: dwarf.c:6389
#, c-format
msgid "Invalid extension opcode form %s\n"
msgstr ""
-#: dwarf.c:6393
+#: dwarf.c:6406
msgid ".debug_macro section not zero terminated\n"
msgstr ""
-#: dwarf.c:6407
+#: dwarf.c:6420
#, c-format
msgid " DW_MACRO_define - lineno : %d macro : %*s\n"
msgstr ""
-#: dwarf.c:6417
+#: dwarf.c:6430
#, c-format
msgid " DW_MACRO_undef - lineno : %d macro : %*s\n"
msgstr ""
-#: dwarf.c:6432
+#: dwarf.c:6445
msgid "DW_MACRO_start_file used, but no .debug_line offset provided.\n"
msgstr ""
-#: dwarf.c:6438
+#: dwarf.c:6451
#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d\n"
msgstr ""
-#: dwarf.c:6441
+#: dwarf.c:6454
#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d filename: %s%s%s\n"
msgstr ""
-#: dwarf.c:6449
+#: dwarf.c:6462
#, c-format
msgid " DW_MACRO_end_file\n"
msgstr ""
-#: dwarf.c:6459
+#: dwarf.c:6472
#, c-format
msgid " DW_MACRO_define_strp - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:6470
+#: dwarf.c:6483
#, c-format
msgid " DW_MACRO_undef_strp - lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:6476
+#: dwarf.c:6489
#, c-format
msgid " DW_MACRO_import - offset : %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6483
+#: dwarf.c:6496
#, c-format
msgid " DW_MACRO_define_sup - lineno : %d macro offset : %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6491
+#: dwarf.c:6504
#, c-format
msgid " DW_MACRO_undef_sup - lineno : %d macro offset : %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6498
+#: dwarf.c:6511
#, c-format
msgid " DW_MACRO_import_sup - offset : %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:6513
+#: dwarf.c:6526
#, c-format
msgid "(with offset %#<PRIx64>) "
msgstr ""
-#: dwarf.c:6514
+#: dwarf.c:6527
#, c-format
msgid "lineno : %d macro : %s\n"
msgstr ""
-#: dwarf.c:6521
+#: dwarf.c:6534
#, c-format
msgid " <Target Specific macro op: %#x - UNHANDLED"
msgstr ""
-#: dwarf.c:6527
+#: dwarf.c:6540
#, c-format
msgid " Unknown macro opcode %02x seen\n"
msgstr ""
-#: dwarf.c:6538
+#: dwarf.c:6551
#, c-format
msgid " DW_MACRO_%02x\n"
msgstr ""
-#: dwarf.c:6541
+#: dwarf.c:6554
#, c-format
msgid " DW_MACRO_%02x -"
msgstr ""
-#: dwarf.c:6588
+#: dwarf.c:6601
#, c-format
msgid " Number TAG (%#<PRIx64>)\n"
msgstr ""
-#: dwarf.c:6597
+#: dwarf.c:6610
msgid "has children"
msgstr ""
-#: dwarf.c:6597
+#: dwarf.c:6610
msgid "no children"
msgstr ""
-#: dwarf.c:6661
+#: dwarf.c:6674
#, c-format
msgid "location view pair\n"
msgstr ""
-#: dwarf.c:6692
+#: dwarf.c:6705
#, c-format
msgid "No debug information available for loc lists of entry: %u\n"
msgstr ""
-#: dwarf.c:6704 dwarf.c:6845 dwarf.c:7066
+#: dwarf.c:6717 dwarf.c:6858 dwarf.c:7079
#, c-format
msgid "Invalid pointer size (%d) in debug info for entry %d\n"
msgstr ""
-#: dwarf.c:6716 dwarf.c:6769 dwarf.c:6778 dwarf.c:6857 dwarf.c:6972
-#: dwarf.c:6980 dwarf.c:7078 dwarf.c:7150 dwarf.c:7158
+#: 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
#, c-format
msgid "Location list starting at offset %#<PRIx64> is not terminated.\n"
msgstr ""
-#: dwarf.c:6738 dwarf.c:6885 dwarf.c:7115 dwarf.c:8074 dwarf.c:8133
+#: dwarf.c:6751 dwarf.c:6898 dwarf.c:7128 dwarf.c:8088 dwarf.c:8147
#, c-format
msgid "<End of list>\n"
msgstr ""
-#: dwarf.c:6750 dwarf.c:6895 dwarf.c:6930 dwarf.c:8142 dwarf.c:8166
+#: dwarf.c:6763 dwarf.c:6908 dwarf.c:6943 dwarf.c:8156 dwarf.c:8180
#, c-format
msgid "(base address)\n"
msgstr ""
-#: dwarf.c:6764 dwarf.c:6879 dwarf.c:7104
+#: dwarf.c:6777 dwarf.c:6892 dwarf.c:7117
#, c-format
msgid ""
"views at %8.8<PRIx64> for:\n"
" %*s "
msgstr ""
-#: dwarf.c:6799 dwarf.c:7001 dwarf.c:8093 dwarf.c:8199
+#: dwarf.c:6812 dwarf.c:7014 dwarf.c:8107 dwarf.c:8213
msgid " (start == end)"
msgstr ""
-#: dwarf.c:6801 dwarf.c:7003 dwarf.c:8095 dwarf.c:8201
+#: dwarf.c:6814 dwarf.c:7016 dwarf.c:8109 dwarf.c:8215
msgid " (start > end)"
msgstr ""
-#: dwarf.c:6891
+#: dwarf.c:6904
#, c-format
msgid "(index into .debug_addr) "
msgstr ""
-#: dwarf.c:6947
+#: dwarf.c:6960
#, c-format
msgid "View pair entry in loclist with locviews attribute\n"
msgstr ""
-#: dwarf.c:6954
+#: dwarf.c:6967
#, c-format
msgid "views for:\n"
msgstr ""
-#: dwarf.c:6959
+#: dwarf.c:6972
#, c-format
msgid "Invalid location list entry type %d\n"
msgstr ""
-#: dwarf.c:7012
+#: dwarf.c:7025
#, c-format
msgid "Trailing view pair not used in a range"
msgstr ""
-#: dwarf.c:7054
+#: dwarf.c:7067
#, c-format
msgid "No debug information for loc lists of entry: %u\n"
msgstr ""
-#: dwarf.c:7121
+#: dwarf.c:7134
#, c-format
msgid "(base address selection entry)\n"
msgstr ""
-#: dwarf.c:7142
+#: dwarf.c:7155
#, c-format
msgid "Unknown location list entry type 0x%x.\n"
msgstr ""
-#: dwarf.c:7226
+#: dwarf.c:7239
#, c-format
msgid "Table at Offset %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:7242 dwarf.c:8264
+#: dwarf.c:7255 dwarf.c:8278
#, c-format
msgid " Length: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:7243 dwarf.c:8265
+#: dwarf.c:7256 dwarf.c:8279
#, c-format
msgid " DWARF version: %u\n"
msgstr ""
-#: dwarf.c:7244 dwarf.c:8266
+#: dwarf.c:7257 dwarf.c:8280
#, c-format
msgid " Address size: %u\n"
msgstr ""
-#: dwarf.c:7245 dwarf.c:8267
+#: dwarf.c:7258 dwarf.c:8281
#, c-format
msgid " Segment size: %u\n"
msgstr ""
-#: dwarf.c:7246 dwarf.c:8268
+#: dwarf.c:7259 dwarf.c:8282
#, c-format
msgid " Offset entries: %u\n"
msgstr ""
-#: dwarf.c:7250
+#: dwarf.c:7263
#, c-format
msgid "The %s section contains an unsupported segment selector size: %d.\n"
msgstr ""
-#: dwarf.c:7258
+#: dwarf.c:7271
#, c-format
msgid ""
"\n"
" Offset Entries starting at %#tx:\n"
msgstr ""
-#: dwarf.c:7266 dwarf.c:8295
+#: dwarf.c:7279 dwarf.c:8309
#, c-format
msgid " [%6u] %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:7305 dwarf.c:7585 dwarf.c:7802 dwarf.c:7926 dwarf.c:8333
+#: dwarf.c:7318 dwarf.c:7598 dwarf.c:7815 dwarf.c:7939 dwarf.c:8347
#, c-format
msgid ""
"\n"
"The %s section is empty.\n"
msgstr ""
-#: dwarf.c:7325
+#: dwarf.c:7338
#, c-format
msgid "The %s section contains corrupt or unsupported version number: %d.\n"
msgstr ""
-#: dwarf.c:7352 dwarf.c:7808 dwarf.c:8341
+#: dwarf.c:7365 dwarf.c:7821 dwarf.c:8355
#, c-format
msgid ""
"Unable to load/parse the .debug_info section, so cannot interpret the %s "
"section.\n"
msgstr ""
-#: dwarf.c:7400
+#: dwarf.c:7413
msgid "No location lists in .debug_info section!\n"
msgstr ""
-#: dwarf.c:7408
+#: dwarf.c:7421
#, c-format
msgid ""
" Warning: This section has relocations - addresses seen here may not be "
@@ -3624,209 +3625,209 @@ msgid ""
"\n"
msgstr ""
-#: dwarf.c:7411 dwarf.c:7460
+#: dwarf.c:7424 dwarf.c:7473
#, c-format
msgid " Offset Begin End Expression\n"
msgstr ""
-#: dwarf.c:7499 dwarf.c:7503
+#: dwarf.c:7512 dwarf.c:7516
#, c-format
msgid "There is a hole [%#tx - %#<PRIx64>] in %s section.\n"
msgstr ""
-#: dwarf.c:7508
+#: dwarf.c:7521
#, c-format
msgid "There is an overlap [%#tx - %#<PRIx64>] in %s section.\n"
msgstr ""
-#: dwarf.c:7516
+#: dwarf.c:7529
#, c-format
msgid "Offset %#<PRIx64> is bigger than %s section size.\n"
msgstr ""
-#: dwarf.c:7523
+#: dwarf.c:7536
#, c-format
msgid "View Offset %#<PRIx64> is bigger than %s section size.\n"
msgstr ""
-#: dwarf.c:7540
+#: dwarf.c:7553
msgid "DWO is not yet supported.\n"
msgstr ""
-#: dwarf.c:7557
+#: dwarf.c:7570
msgid "Hole and overlap detection requires adjacent view lists and loclists.\n"
msgstr ""
-#: dwarf.c:7566
+#: dwarf.c:7579
#, 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] ""
msgstr[1] ""
-#: dwarf.c:7690
+#: dwarf.c:7703
#, c-format
msgid ""
"Debug info is corrupted, %s header at %#<PRIx64> has length %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:7718
+#: dwarf.c:7731
msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
msgstr ""
-#: dwarf.c:7722
+#: dwarf.c:7735
#, c-format
msgid " Length: %<PRId64>\n"
msgstr ""
-#: dwarf.c:7723
+#: dwarf.c:7736
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: dwarf.c:7724
+#: dwarf.c:7737
#, c-format
msgid " Offset into .debug_info: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:7726
+#: dwarf.c:7739
#, c-format
msgid " Pointer Size: %d\n"
msgstr ""
-#: dwarf.c:7727
+#: dwarf.c:7740
#, c-format
msgid " Segment Size: %d\n"
msgstr ""
-#: dwarf.c:7734
+#: dwarf.c:7747
#, c-format
msgid "Invalid address size in %s section!\n"
msgstr ""
-#: dwarf.c:7744
+#: dwarf.c:7757
msgid "Pointer size + Segment size is not a power of two.\n"
msgstr ""
-#: dwarf.c:7749
+#: dwarf.c:7762
#, c-format
msgid ""
"\n"
" Address Length\n"
msgstr ""
-#: dwarf.c:7751
+#: dwarf.c:7764
#, c-format
msgid ""
"\n"
" Address Length\n"
msgstr ""
-#: dwarf.c:7828
+#: dwarf.c:7841
#, c-format
msgid "Corrupt address base (%#<PRIx64>) found in debug section %u\n"
msgstr ""
-#: dwarf.c:7846
+#: dwarf.c:7859
#, c-format
msgid " For compilation unit at offset %#<PRIx64>:\n"
msgstr ""
-#: dwarf.c:7849
+#: dwarf.c:7862
#, c-format
msgid "\tIndex\tAddress\n"
msgstr ""
-#: dwarf.c:7861
+#: dwarf.c:7874
#, c-format
msgid ""
-"Corrupt %s section: expecting header size of 8 or 16, but found %zd instead"
+"Corrupt %s section: expecting header size of 8 or 16, but found %zd instead\n"
msgstr ""
-#: dwarf.c:7872
+#: dwarf.c:7885
#, c-format
-msgid "Corrupt %s section: unit_length field of %#<PRIx64> is invalid"
+msgid "Corrupt %s section: unit_length field of %#<PRIx64> is invalid\n"
msgstr ""
-#: dwarf.c:7879
+#: dwarf.c:7892
#, c-format
msgid ""
"Corrupt %s section: expecting version number 5 in header but found %d "
"instead\n"
msgstr ""
-#: dwarf.c:7894
+#: dwarf.c:7907
#, c-format
-msgid "Corrupt %s section: address size (%x) is wrong"
+msgid "Corrupt %s section: address size (%x) is wrong\n"
msgstr ""
-#: dwarf.c:7902
+#: dwarf.c:7915
#, c-format
msgid "\t%d:\t"
msgstr ""
-#: dwarf.c:7973 dwarf.c:7997
+#: dwarf.c:7987 dwarf.c:8011
#, c-format
msgid " Length: %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:7974 dwarf.c:7999
+#: dwarf.c:7988 dwarf.c:8013
#, c-format
msgid " Index Offset [String]\n"
msgstr ""
-#: dwarf.c:7982
+#: dwarf.c:7996
#, c-format
msgid "Section %s is too small %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:7990
+#: dwarf.c:8004
#, c-format
msgid "Unexpected version number in str_offset header: %#x\n"
msgstr ""
-#: dwarf.c:7995
+#: dwarf.c:8009
#, c-format
msgid "Unexpected value in str_offset header's padding field: %#x\n"
msgstr ""
-#: dwarf.c:7998
+#: dwarf.c:8012
#, c-format
msgid " Version: %#x\n"
msgstr ""
-#: dwarf.c:8120
+#: dwarf.c:8134
#, c-format
msgid "Range list starting at offset %#<PRIx64> is not terminated.\n"
msgstr ""
-#: dwarf.c:8138
+#: dwarf.c:8152
#, c-format
msgid "(base address index) "
msgstr ""
-#: dwarf.c:8178
+#: dwarf.c:8192
#, c-format
msgid "Invalid range list entry type %d\n"
msgstr ""
-#: dwarf.c:8246
+#: dwarf.c:8260
#, c-format
msgid ""
"The length field (%#<PRIx64>) in the debug_rnglists header is wrong - the "
"section is too small\n"
msgstr ""
-#: dwarf.c:8263
+#: dwarf.c:8277
#, c-format
msgid " Table at Offset: %#<PRIx64>:\n"
msgstr ""
-#: dwarf.c:8281
+#: dwarf.c:8295
msgid "Only DWARF version 5+ debug_rnglists info is currently supported.\n"
msgstr ""
-#: dwarf.c:8288
+#: dwarf.c:8302
#, c-format
msgid ""
"\n"
@@ -3835,677 +3836,759 @@ 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:8355
+#: dwarf.c:8369
#, c-format
msgid "No range lists referenced by .debug_info section.\n"
msgstr ""
-#: dwarf.c:8384
+#: dwarf.c:8398
#, c-format
msgid "Range lists in %s section start at %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:8389 dwarf.c:8424
+#: dwarf.c:8403 dwarf.c:8438
#, c-format
msgid " Offset Begin End\n"
msgstr ""
-#: dwarf.c:8407
+#: dwarf.c:8421
#, c-format
msgid "Corrupt pointer size (%d) in debug entry at offset %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:8414
+#: dwarf.c:8428
#, c-format
msgid "Corrupt offset (%#<PRIx64>) in range entry %u\n"
msgstr ""
-#: dwarf.c:8441
+#: dwarf.c:8455
#, c-format
msgid "There is a hole [%#tx - %#tx] in %s section.\n"
msgstr ""
-#: dwarf.c:8447
+#: dwarf.c:8461
#, c-format
msgid "There is an overlap [%#tx - %#tx] in %s section.\n"
msgstr ""
-#: dwarf.c:8532
+#: dwarf.c:8546
#, c-format
msgid "Unfeasibly large register number: %u\n"
msgstr ""
-#: dwarf.c:8546
+#: dwarf.c:8560
#, c-format
msgid "Out of memory allocating %u columns in dwarf frame arrays\n"
msgstr ""
-#: dwarf.c:9012
+#: dwarf.c:9027
msgid "No terminator for augmentation name\n"
msgstr ""
-#: dwarf.c:9030
+#: dwarf.c:9045
#, c-format
msgid "Invalid pointer size (%d) in CIE data\n"
msgstr ""
-#: dwarf.c:9038
+#: dwarf.c:9053
#, c-format
msgid "Invalid segment size (%d) in CIE data\n"
msgstr ""
-#: dwarf.c:9074 dwarf.c:9446
+#: dwarf.c:9089 dwarf.c:9720
#, c-format
msgid "Augmentation data too long: %#<PRIx64>, expected at most %#tx\n"
msgstr ""
-#: dwarf.c:9159
+#: dwarf.c:9174
#, c-format
msgid " Augmentation data: "
msgstr ""
-#: dwarf.c:9175
+#: dwarf.c:9332
+msgid ".eh_frame_hdr section is too small\n"
+msgstr ""
+
+#: dwarf.c:9339
+#, c-format
+msgid "Unsupported .eh_frame_hdr version %u\n"
+msgstr ""
+
+#: dwarf.c:9343 dwarf.c:11269
+#, c-format
+msgid " Version: %u\n"
+msgstr ""
+
+#. Strictly speaking this is the encoding format of the eh_frame_ptr field below.
+#: dwarf.c:9347
+#, c-format
+msgid " Pointer Encoding Format: %#x (%s)\n"
+msgstr ""
+
+#: dwarf.c:9350
+#, c-format
+msgid " Count Encoding Format: %#x (%s)\n"
+msgstr ""
+
+#: dwarf.c:9353
+#, c-format
+msgid " Table Encoding Format: %#x (%s)\n"
+msgstr ""
+
+#: dwarf.c:9362
+msgid "unable to read eh_frame_ptr field in .eh_frame_hdr section\n"
+msgstr ""
+
+#: dwarf.c:9365
+#, c-format
+msgid " Start of frame section: %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:9369
+#, c-format
+msgid " (offset: %#<PRIx64>)"
+msgstr ""
+
+#: dwarf.c:9376
+msgid ""
+"It is suspicious to have a .eh_frame_hdr section with an empty search table\n"
+msgstr ""
+
+#: dwarf.c:9382
+msgid "The count field format should be absolute, not relative to an address\n"
+msgstr ""
+
+#: dwarf.c:9389
+msgid "unable to read fde_count field in .eh_frame_hdr section\n"
+msgstr ""
+
+#: dwarf.c:9392
+#, c-format
+msgid " Entries in search table: %#<PRIx64>"
+msgstr ""
+
+#: dwarf.c:9398
+msgid ""
+"It is suspicious to have a .eh_frame_hdr section an empty table but a non "
+"empty count field\n"
+msgstr ""
+
+#: dwarf.c:9412
+#, c-format
+msgid ""
+"Failed to read location field for entry %#<PRIx64> in the .eh_frame_hdr's "
+"search table\n"
+msgstr ""
+
+#: dwarf.c:9420
+#, c-format
+msgid ""
+"Failed to read address field for entry %#<PRIx64> in the .eh_frame_hdr's "
+"search table\n"
+msgstr ""
+
+#: dwarf.c:9449
msgid "bad register: "
msgstr ""
-#: dwarf.c:9346
+#: dwarf.c:9620
msgid "Failed to read CIE information\n"
msgstr ""
-#: dwarf.c:9357 dwarf.c:9378 dwarf.c:9407
+#: dwarf.c:9631 dwarf.c:9652 dwarf.c:9681
msgid "Invalid max register\n"
msgstr ""
#. PR 17512: file: 9e196b3e.
-#: dwarf.c:9422
+#: dwarf.c:9696
#, c-format
msgid "Probably corrupt segment size: %d - using 4 instead\n"
msgstr ""
#. Ideally translate "invalid " to 8 chars, trailing space
#. is optional.
-#: dwarf.c:9466
+#: dwarf.c:9740
#, c-format
msgid "cie=invalid "
msgstr ""
-#: dwarf.c:9900
+#: dwarf.c:10174
msgid "Invalid column number in saved frame state\n"
msgstr ""
-#: dwarf.c:9950 dwarf.c:9974
+#: dwarf.c:10224 dwarf.c:10248
#, c-format
msgid " %s: <corrupt len %<PRIu64>>\n"
msgstr ""
-#: dwarf.c:10118
+#: dwarf.c:10392
#, c-format
msgid " DW_CFA_??? (User defined call frame op: %#x)\n"
msgstr ""
-#: dwarf.c:10120
+#: dwarf.c:10394
#, c-format
msgid "Unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
msgstr ""
-#: dwarf.c:10224
+#: dwarf.c:10498
#, c-format
msgid "Debug info is corrupted, %s header at %#tx has length %#<PRIx64>\n"
msgstr ""
-#: dwarf.c:10233
+#: dwarf.c:10507
#, c-format
msgid "Version %d\n"
msgstr ""
-#: dwarf.c:10239
+#: dwarf.c:10513
msgid "Only DWARF version 5 .debug_names is currently supported.\n"
msgstr ""
-#: dwarf.c:10246
+#: dwarf.c:10520
#, c-format
msgid "Padding field of .debug_names must be 0 (found 0x%x)\n"
msgstr ""
-#: dwarf.c:10251
+#: dwarf.c:10525
msgid "Compilation unit count must be >= 1 in .debug_names\n"
msgstr ""
-#: dwarf.c:10262
+#: dwarf.c:10536
#, c-format
msgid ""
"Augmentation string length %u must be rounded up to a multiple of 4 in ."
"debug_names.\n"
msgstr ""
-#: dwarf.c:10270
+#: dwarf.c:10544
#, c-format
msgid "Augmentation string:"
msgstr ""
-#: dwarf.c:10297
+#: dwarf.c:10571
#, c-format
msgid "CU table:\n"
msgstr ""
-#: dwarf.c:10310
+#: dwarf.c:10584
#, c-format
msgid "TU table:\n"
msgstr ""
-#: dwarf.c:10323
+#: dwarf.c:10597
#, c-format
msgid "Foreign TU table:\n"
msgstr ""
-#: dwarf.c:10332
+#: dwarf.c:10606
#, c-format
msgid "[%3u] "
msgstr ""
-#: dwarf.c:10343
+#: dwarf.c:10617
#, c-format
msgid ""
"Entry pool offset (%#<PRIx64>) exceeds unit size %#tx for unit %#tx in the "
"debug_names\n"
msgstr ""
-#: dwarf.c:10371
+#: dwarf.c:10645
#, c-format
msgid "Used %zu of %lu bucket.\n"
msgid_plural "Used %zu of %lu buckets.\n"
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:10400
+#: dwarf.c:10674
#, c-format
msgid ""
"Out of %<PRIu64> items there are %zu bucket clashes (longest of %zu "
"entries).\n"
msgstr ""
-#: dwarf.c:10405
+#: dwarf.c:10679
#, c-format
msgid ""
"The name_count (%<PRIu64>) is not the same as the used bucket_count (%zu) + "
-"the hash clash count (%zu)"
+"the hash clash count (%zu)\n"
msgstr ""
-#: dwarf.c:10443
+#: dwarf.c:10717
#, c-format
msgid ""
"Duplicate abbreviation tag %<PRIu64> in unit %#tx in the debug_names "
"section\n"
msgstr ""
-#: dwarf.c:10465 dwarf.c:10759
+#: dwarf.c:10739 dwarf.c:11042
#, c-format
msgid ""
"\n"
"Symbol table:\n"
msgstr ""
-#: dwarf.c:10521
+#: dwarf.c:10772
+#, c-format
+msgid "Invalid entry offset value: %<PRIx64>\n"
+msgstr ""
+
+#: dwarf.c:10804
#, c-format
msgid ""
"Undefined abbreviation tag %<PRId64> in unit %#tx in the debug_names "
"section\n"
msgstr ""
-#: dwarf.c:10552
+#: dwarf.c:10835
#, c-format
msgid " <no entries>"
msgstr ""
-#: dwarf.c:10584
+#: dwarf.c:10867
msgid "The debuglink filename is corrupt/missing\n"
msgstr ""
-#: dwarf.c:10588
+#: dwarf.c:10871
#, c-format
msgid " Separate debug info file: %s\n"
msgstr ""
-#: dwarf.c:10599
+#: dwarf.c:10882
msgid "CRC offset missing/truncated\n"
msgstr ""
-#: dwarf.c:10605
+#: dwarf.c:10888
#, c-format
msgid " CRC value: %#x\n"
msgstr ""
-#: dwarf.c:10609
+#: dwarf.c:10892
#, c-format
msgid "There are %#<PRIx64> extraneous bytes at the end of the section\n"
msgstr ""
-#: dwarf.c:10624
+#: dwarf.c:10907
#, c-format
msgid "Build-ID is too short (%#zx bytes)\n"
msgstr ""
-#: dwarf.c:10628
+#: dwarf.c:10911
#, c-format
msgid " Build-ID (%#zx bytes):"
msgstr ""
-#: dwarf.c:10660
+#: dwarf.c:10943
#, c-format
msgid "Truncated header in the %s section.\n"
msgstr ""
-#: dwarf.c:10664
+#: dwarf.c:10947
#, c-format
msgid "Version %lu\n"
msgstr ""
-#: dwarf.c:10670
+#: dwarf.c:10953
#, c-format
msgid "Unsupported version %lu.\n"
msgstr ""
-#: dwarf.c:10674
+#: dwarf.c:10957
msgid "The address table data in version 3 may be wrong.\n"
msgstr ""
-#: dwarf.c:10676
+#: dwarf.c:10959
msgid "Version 4 does not support case insensitive lookups.\n"
msgstr ""
-#: dwarf.c:10678
+#: dwarf.c:10961
msgid "Version 5 does not include inlined functions.\n"
msgstr ""
-#: dwarf.c:10680
+#: dwarf.c:10963
msgid "Version 6 does not include symbol attributes.\n"
msgstr ""
-#: dwarf.c:10708
+#: dwarf.c:10991
#, c-format
msgid "Corrupt header in the %s section.\n"
msgstr ""
-#: dwarf.c:10724
+#: dwarf.c:11007
#, c-format
msgid ""
"\n"
"CU table:\n"
msgstr ""
-#: dwarf.c:10734
+#: dwarf.c:11017
#, c-format
msgid ""
"\n"
"TU table:\n"
msgstr ""
-#: dwarf.c:10747
+#: dwarf.c:11030
#, c-format
msgid ""
"\n"
"Address table:\n"
msgstr ""
-#: dwarf.c:10774
+#: dwarf.c:11057
#, c-format
msgid "[%3u] <corrupt offset: %x>"
msgstr ""
-#: dwarf.c:10775
+#: dwarf.c:11058
#, c-format
msgid "Corrupt name offset of 0x%x found for symbol table slot %d\n"
msgstr ""
-#: dwarf.c:10786
+#: dwarf.c:11069
#, c-format
msgid "<invalid CU vector offset: %x>\n"
msgstr ""
-#: dwarf.c:10787
+#: dwarf.c:11070
#, c-format
msgid "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
msgstr ""
-#: dwarf.c:10798
+#: dwarf.c:11081
#, c-format
msgid "Invalid number of CUs (0x%x) for symbol table slot %d\n"
msgstr ""
-#: dwarf.c:10823
+#: dwarf.c:11106
msgid "static"
msgstr ""
-#: dwarf.c:10823
+#: dwarf.c:11106
msgid "global"
msgstr ""
-#: dwarf.c:10835
+#: dwarf.c:11118
#, c-format
msgid ""
"\n"
"Shortcut table:\n"
msgstr ""
-#: dwarf.c:10839
+#: dwarf.c:11122
#, c-format
msgid "Corrupt shortcut table in the %s section.\n"
msgstr ""
-#: dwarf.c:10844
+#: dwarf.c:11127
#, c-format
msgid "Language of main: "
msgstr ""
-#: dwarf.c:10848
+#: dwarf.c:11131
#, c-format
msgid "Name of main: "
msgstr ""
-#: dwarf.c:10850
+#: dwarf.c:11133
#, c-format
msgid "<unknown>\n"
msgstr ""
-#: dwarf.c:10856
+#: dwarf.c:11139
#, c-format
msgid "<corrupt offset: %x>\n"
msgstr ""
-#: dwarf.c:10857
+#: dwarf.c:11140
#, c-format
msgid "Corrupt name offset of 0x%x found for name of main\n"
msgstr ""
-#: dwarf.c:10961
+#: dwarf.c:11244
#, c-format
msgid "Section %s is empty\n"
msgstr ""
-#: dwarf.c:10967
+#: dwarf.c:11250
#, c-format
msgid "Section %s is too small to contain a CU/TU header\n"
msgstr ""
-#: dwarf.c:10986
-#, c-format
-msgid " Version: %u\n"
-msgstr ""
-
-#: dwarf.c:10988
+#: dwarf.c:11271
#, c-format
msgid " Number of columns: %u\n"
msgstr ""
-#: dwarf.c:10989
+#: dwarf.c:11272
#, c-format
msgid " Number of used entries: %u\n"
msgstr ""
-#: dwarf.c:10990
+#: dwarf.c:11273
#, c-format
msgid ""
" Number of slots: %u\n"
"\n"
msgstr ""
-#: dwarf.c:10997
+#: dwarf.c:11280
#, c-format
msgid "Section %s is too small for %u slot\n"
msgid_plural "Section %s is too small for %u slots\n"
msgstr[0] ""
msgstr[1] ""
-#: dwarf.c:11030
+#: dwarf.c:11313
msgid "Section index pool located before start of section\n"
msgstr ""
-#: dwarf.c:11034
+#: dwarf.c:11317
#, c-format
msgid " [%3d] Signature: %#<PRIx64> Sections: "
msgstr ""
-#: dwarf.c:11040
+#: dwarf.c:11323
#, c-format
msgid "Section %s too small for shndx pool\n"
msgstr ""
-#: dwarf.c:11083
+#: dwarf.c:11366
#, c-format
msgid "Section %s too small for offset and size tables\n"
msgstr ""
-#: dwarf.c:11090
+#: dwarf.c:11373
#, c-format
msgid " Offset table\n"
msgstr ""
-#: dwarf.c:11092 dwarf.c:11179
+#: dwarf.c:11375 dwarf.c:11462
msgid "signature"
msgstr ""
-#: dwarf.c:11092 dwarf.c:11179
+#: dwarf.c:11375 dwarf.c:11462
msgid "dwo_id"
msgstr ""
-#: dwarf.c:11131
+#: dwarf.c:11414
#, c-format
msgid "Row index (%u) is larger than number of used entries (%u)\n"
msgstr ""
-#: dwarf.c:11159 dwarf.c:11230
+#: dwarf.c:11442 dwarf.c:11513
#, c-format
msgid "Overlarge Dwarf section index detected: %u\n"
msgstr ""
-#: dwarf.c:11177
+#: dwarf.c:11460
#, c-format
msgid " Size table\n"
msgstr ""
-#: dwarf.c:11216
+#: dwarf.c:11499
#, c-format
msgid "Too many rows/columns in DWARF index section %s\n"
msgstr ""
-#: dwarf.c:11245
+#: dwarf.c:11528
#, c-format
msgid " Unsupported version (%d)\n"
msgstr ""
-#: dwarf.c:11317
+#: dwarf.c:11600
#, c-format
msgid "Displaying the debug contents of section %s is not yet supported.\n"
msgstr ""
-#: dwarf.c:11348
+#: dwarf.c:11631
#, c-format
msgid ""
"Attempt to allocate an array with an excessive number of elements: %"
"#<PRIx64>\n"
msgstr ""
-#: dwarf.c:11366
+#: dwarf.c:11649
#, c-format
msgid ""
"Attempt to re-allocate an array with an excessive number of elements: %"
"#<PRIx64>\n"
msgstr ""
-#: dwarf.c:11382
+#: dwarf.c:11665
#, c-format
msgid ""
"Attempt to allocate a zero'ed array with an excessive number of elements: %"
"#<PRIx64>\n"
msgstr ""
-#: dwarf.c:11480
+#: dwarf.c:11763
#, c-format
msgid "Unable to reopen separate debug info file: %s\n"
msgstr ""
-#: dwarf.c:11492
+#: dwarf.c:11775
#, c-format
msgid "Separate debug info file %s found, but CRC does not match - ignoring\n"
msgstr ""
-#: dwarf.c:11671
+#: dwarf.c:11954
#, c-format
msgid "Corrupt debuglink section: %s\n"
msgstr ""
-#: dwarf.c:11710
-msgid "Out of memory"
+#: dwarf.c:11993 elfcomm.c:295 elfcomm.c:320 elfcomm.c:794
+msgid "Out of memory\n"
msgstr ""
#. Failed to find the file.
-#: dwarf.c:11786
+#: dwarf.c:12069
#, c-format
msgid "could not find separate debug file '%s'\n"
msgstr ""
-#: dwarf.c:11788 dwarf.c:11793 dwarf.c:11799 dwarf.c:11803 dwarf.c:11808
-#: dwarf.c:11811 dwarf.c:11814 dwarf.c:11817
+#: dwarf.c:12071 dwarf.c:12076 dwarf.c:12082 dwarf.c:12086 dwarf.c:12091
+#: dwarf.c:12094 dwarf.c:12097 dwarf.c:12100
#, c-format
msgid "tried: %s\n"
msgstr ""
-#: dwarf.c:11827
+#: dwarf.c:12110
#, c-format
msgid "tried: DEBUGINFOD_URLS=%s\n"
msgstr ""
-#: dwarf.c:11855
+#: dwarf.c:12138
#, c-format
msgid "failed to open separate debug file: %s\n"
msgstr ""
-#: dwarf.c:11864
+#: dwarf.c:12147
#, c-format
msgid ""
"\n"
"%s: Found separate debug info file: %s\n"
msgstr ""
-#: dwarf.c:11887
+#: dwarf.c:12170
msgid "Out of memory allocating dwo filename\n"
msgstr ""
-#: dwarf.c:11893
+#: dwarf.c:12176
#, c-format
msgid "Unable to load dwo file: %s\n"
msgstr ""
#. FIXME: We should check the dwo_id.
-#: dwarf.c:11900
+#: dwarf.c:12183
#, c-format
msgid ""
"%s: Found separate debug object file: %s\n"
"\n"
msgstr ""
-#: dwarf.c:11932
+#: dwarf.c:12215
msgid "Unable to load the .note.gnu.build-id section\n"
msgstr ""
-#: dwarf.c:11938
+#: dwarf.c:12221
msgid ".note.gnu.build-id section is corrupt/empty\n"
msgstr ""
-#: dwarf.c:11959
+#: dwarf.c:12242
msgid ".note.gnu.build-id data size is too small\n"
msgstr ""
-#: dwarf.c:11965
+#: dwarf.c:12248
msgid ".note.gnu.build-id data size is too big\n"
msgstr ""
-#: dwarf.c:12026
+#: dwarf.c:12309
msgid ".debug_sup section is corrupt/empty\n"
msgstr ""
-#: dwarf.c:12036
+#: dwarf.c:12319
msgid "filename in .debug_sup section is corrupt\n"
msgstr ""
-#: dwarf.c:12051
-msgid "unable to construct path for supplementary debug file"
+#: dwarf.c:12334
+msgid "unable to construct path for supplementary debug file\n"
msgstr ""
-#: dwarf.c:12065
+#: dwarf.c:12348
msgid "out of memory constructing filename for .debug_sup link\n"
msgstr ""
-#: dwarf.c:12073
+#: dwarf.c:12356
#, c-format
msgid "unable to open file '%s' referenced from .debug_sup section\n"
msgstr ""
-#: dwarf.c:12078
+#: dwarf.c:12361
#, c-format
msgid ""
"%s: Found supplementary debug file: %s\n"
"\n"
msgstr ""
-#: dwarf.c:12179
+#: dwarf.c:12462
msgid "Multiple DWO_NAMEs encountered for the same CU\n"
msgstr ""
-#: dwarf.c:12191
+#: dwarf.c:12474
msgid "multiple DWO_IDs encountered for the same CU\n"
msgstr ""
-#: dwarf.c:12196
+#: dwarf.c:12479
msgid "Unexpected DWO INFO type"
msgstr ""
-#: dwarf.c:12211
+#: dwarf.c:12494
#, c-format
msgid ""
"The %s section contains link(s) to dwo file(s):\n"
"\n"
msgstr ""
-#: dwarf.c:12216
+#: dwarf.c:12499
#, c-format
msgid " Name: %s\n"
msgstr ""
-#: dwarf.c:12217
+#: dwarf.c:12500
#, c-format
msgid " Directory: %s\n"
msgstr ""
-#: dwarf.c:12217
+#: dwarf.c:12500
msgid "<not-found>"
msgstr ""
-#: dwarf.c:12219
+#: dwarf.c:12502
#, c-format
msgid " ID: "
msgstr ""
-#: dwarf.c:12221
+#: dwarf.c:12504
#, c-format
msgid " ID: <not specified>\n"
msgstr ""
-#: dwarf.c:12378
+#: dwarf.c:12661
#, c-format
msgid "Unrecognized debug option '%s'\n"
msgstr ""
-#: dwarf.c:12422
+#: dwarf.c:12705
#, c-format
msgid "Unrecognized debug letter option '%c'\n"
msgstr ""
-#: dwarf.h:281
+#: dwarf.h:282
msgid "end of data encountered whilst reading LEB\n"
msgstr ""
-#: dwarf.h:283
+#: dwarf.h:284
msgid "read LEB value is too large to store in destination variable\n"
msgstr ""
@@ -4519,129 +4602,130 @@ msgstr ""
msgid "%s: Warning: "
msgstr ""
-#: elfcomm.c:73 elfcomm.c:88 elfcomm.c:158 elfcomm.c:221
+#: elfcomm.c:75
#, c-format
-msgid "Unhandled data length: %d\n"
+msgid "%s: Info: "
msgstr ""
-#: elfcomm.c:281 elfcomm.c:306 elfcomm.c:780
-msgid "Out of memory\n"
+#: elfcomm.c:87 elfcomm.c:102 elfcomm.c:172 elfcomm.c:235
+#, c-format
+msgid "Unhandled data length: %d\n"
msgstr ""
-#: elfcomm.c:298
+#: elfcomm.c:312
#, c-format
msgid "Abnormal length of thin archive member name: %lx\n"
msgstr ""
-#: elfcomm.c:342
+#: elfcomm.c:356
#, c-format
msgid "%s: invalid archive header size: %ld\n"
msgstr ""
-#: elfcomm.c:355
+#: elfcomm.c:369
#, c-format
msgid "%s: failed to skip archive symbol table\n"
msgstr ""
-#: elfcomm.c:374
+#: elfcomm.c:388
#, c-format
msgid "%s: the archive index is empty\n"
msgstr ""
-#: elfcomm.c:382 elfcomm.c:411
+#: elfcomm.c:396 elfcomm.c:425
#, c-format
msgid "%s: failed to read archive index\n"
msgstr ""
-#: elfcomm.c:393
+#: 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 ""
-#: elfcomm.c:403
+#: elfcomm.c:417
msgid "Out of memory whilst trying to read archive symbol index\n"
msgstr ""
-#: elfcomm.c:423
+#: elfcomm.c:437
msgid "Out of memory whilst trying to convert the archive symbol index\n"
msgstr ""
-#: elfcomm.c:436
+#: elfcomm.c:450
#, c-format
msgid "%s: the archive has an index but no symbols\n"
msgstr ""
-#: elfcomm.c:444
+#: elfcomm.c:458
msgid "Out of memory whilst trying to read archive index symbol table\n"
msgstr ""
-#: elfcomm.c:452
+#: elfcomm.c:466
#, c-format
msgid "%s: failed to read archive index symbol table\n"
msgstr ""
-#: elfcomm.c:462
+#: elfcomm.c:476
#, c-format
msgid "%s: failed to read archive header following archive index\n"
msgstr ""
-#: elfcomm.c:495
+#: elfcomm.c:509
#, c-format
msgid "%s: failed to seek to first archive header\n"
msgstr ""
#. PR 24049 - we cannot use filedata->file_name as this will
#. have already been freed.
-#: elfcomm.c:504 elfcomm.c:738 elfedit.c:613 readelf.c:23373
+#: elfcomm.c:518 elfcomm.c:752 elfedit.c:613 readelf.c:23987
#, c-format
msgid "%s: failed to read archive header\n"
msgstr ""
-#: elfcomm.c:521
+#: elfcomm.c:535
#, c-format
msgid "%s has no archive index\n"
msgstr ""
-#: elfcomm.c:533
+#: elfcomm.c:547
#, c-format
msgid "%s: long name table is too small, (size = %<PRId64>)\n"
msgstr ""
-#: elfcomm.c:541
+#: elfcomm.c:555
#, c-format
msgid "%s: long name table is too big, (size = %#<PRIx64>)\n"
msgstr ""
-#: elfcomm.c:552
+#: elfcomm.c:566
msgid "Out of memory reading long symbol names in archive\n"
msgstr ""
-#: elfcomm.c:560
+#: elfcomm.c:574
#, c-format
msgid "%s: failed to read long symbol name string table\n"
msgstr ""
-#: elfcomm.c:643
+#: elfcomm.c:657
msgid "Archive member uses long names, but no longname table found\n"
msgstr ""
-#: elfcomm.c:657
+#: elfcomm.c:671
#, c-format
msgid "Found long name index (%ld) beyond end of long name table\n"
msgstr ""
-#: elfcomm.c:676
+#: elfcomm.c:690
msgid "Invalid Thin archive member name\n"
msgstr ""
-#: elfcomm.c:732
+#: elfcomm.c:746
#, c-format
msgid "%s: failed to seek to next file name\n"
msgstr ""
-#: elfcomm.c:743 elfedit.c:620 readelf.c:23380
+#: elfcomm.c:757 elfedit.c:620 readelf.c:23994
#, c-format
msgid "%s: did not find a valid archive header\n"
msgstr ""
@@ -4727,12 +4811,12 @@ msgstr ""
msgid "%s: Failed to seek to ELF header\n"
msgstr ""
-#: elfedit.c:604 readelf.c:23361
+#: elfedit.c:604 readelf.c:23975
#, c-format
msgid "%s: failed to seek to next archive header\n"
msgstr ""
-#: elfedit.c:635 elfedit.c:644 readelf.c:23393 readelf.c:23402
+#: elfedit.c:635 elfedit.c:644 readelf.c:24007 readelf.c:24016
#, c-format
msgid "%s: bad archive file name\n"
msgstr ""
@@ -4747,22 +4831,22 @@ msgstr ""
msgid "%s: failed to seek to archive member\n"
msgstr ""
-#: elfedit.c:735 readelf.c:23521
+#: elfedit.c:735 readelf.c:24135
#, c-format
msgid "'%s': No such file\n"
msgstr ""
-#: elfedit.c:737 readelf.c:23523
+#: elfedit.c:737 readelf.c:24137
#, c-format
msgid "Could not locate '%s'. System error message: %s\n"
msgstr ""
-#: elfedit.c:758 readelf.c:23530
+#: elfedit.c:758 readelf.c:24144
#, c-format
msgid "'%s' is not an ordinary file\n"
msgstr ""
-#: elfedit.c:784 readelf.c:23552
+#: elfedit.c:784 readelf.c:24166
#, c-format
msgid "%s: Failed to read file's magic number\n"
msgstr ""
@@ -4792,7 +4876,7 @@ msgstr ""
msgid " Update the ELF header of ELF files\n"
msgstr ""
-#: elfedit.c:946 nm.c:294 objcopy.c:574 objcopy.c:716 strings.c:1332
+#: elfedit.c:946 nm.c:294 objcopy.c:573 objcopy.c:715 strings.c:1332
#, c-format
msgid " The options are:\n"
msgstr ""
@@ -4892,7 +4976,7 @@ msgstr ""
msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr ""
-#: nm.c:303 readelf.c:5683
+#: nm.c:303 readelf.c:6179
msgid " STYLE can be "
msgstr ""
@@ -5086,17 +5170,17 @@ msgstr ""
msgid "%s: invalid output format"
msgstr ""
-#: nm.c:451 readelf.c:13169 readelf.c:13212
+#: nm.c:451 readelf.c:13713 readelf.c:13756
#, c-format
msgid "<processor specific>: %d"
msgstr ""
-#: nm.c:453 readelf.c:13176 readelf.c:13229
+#: nm.c:453 readelf.c:13720 readelf.c:13773
#, c-format
msgid "<OS specific>: %d"
msgstr ""
-#: nm.c:455 readelf.c:13179 readelf.c:13232
+#: nm.c:455 readelf.c:13723 readelf.c:13776
#, c-format
msgid "<unknown>: %d"
msgstr ""
@@ -5175,7 +5259,7 @@ msgstr ""
msgid "Print width has not been initialized (%d)"
msgstr ""
-#: nm.c:2103 objdump.c:6248 readelf.c:6144 strings.c:314
+#: nm.c:2103 objdump.c:6347 readelf.c:6646 strings.c:314
#, c-format
msgid "invalid argument to -U/--unicode: %s"
msgstr ""
@@ -5192,17 +5276,17 @@ msgstr ""
msgid "will produce no output, since undefined symbols have no size."
msgstr ""
-#: objcopy.c:572 srconv.c:1694
+#: objcopy.c:571 srconv.c:1694
#, c-format
msgid "Usage: %s [option(s)] in-file [out-file]\n"
msgstr ""
-#: objcopy.c:573
+#: objcopy.c:572
#, c-format
msgid " Copies a binary file, possibly transforming it in the process\n"
msgstr ""
-#: objcopy.c:575
+#: objcopy.c:574
#, c-format
msgid ""
" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
@@ -5217,7 +5301,7 @@ msgid ""
"output\n"
msgstr ""
-#: objcopy.c:583 objcopy.c:724
+#: objcopy.c:582 objcopy.c:723
#, c-format
msgid ""
" -D --enable-deterministic-archives\n"
@@ -5227,7 +5311,7 @@ msgid ""
" Disable -D behavior\n"
msgstr ""
-#: objcopy.c:589 objcopy.c:730
+#: objcopy.c:588 objcopy.c:729
#, c-format
msgid ""
" -D --enable-deterministic-archives\n"
@@ -5237,7 +5321,7 @@ msgid ""
" Disable -D behavior (default)\n"
msgstr ""
-#: objcopy.c:594
+#: objcopy.c:593
#, c-format
msgid ""
" -j --only-section <name> Only copy section <name> into the output\n"
@@ -5389,17 +5473,17 @@ msgid ""
"supported\n"
msgstr ""
-#: objcopy.c:714
+#: objcopy.c:713
#, c-format
msgid "Usage: %s <option(s)> in-file(s)\n"
msgstr ""
-#: objcopy.c:715
+#: objcopy.c:714
#, c-format
msgid " Removes symbols and sections from files\n"
msgstr ""
-#: objcopy.c:717
+#: objcopy.c:716
#, c-format
msgid ""
" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
@@ -5411,7 +5495,7 @@ msgid ""
"output\n"
msgstr ""
-#: objcopy.c:735
+#: objcopy.c:734
#, c-format
msgid ""
" -R --remove-section=<name> Also remove section <name> from the "
@@ -5445,684 +5529,703 @@ msgid ""
" -o <file> Place stripped output into <file>\n"
msgstr ""
-#: objcopy.c:815
+#: objcopy.c:814
#, c-format
msgid "unrecognized section flag `%s'"
msgstr ""
-#: objcopy.c:816 objcopy.c:890
+#: objcopy.c:815 objcopy.c:889
#, c-format
msgid "supported flags: %s"
msgstr ""
-#: objcopy.c:889
+#: objcopy.c:888
#, c-format
msgid "unrecognized symbol flag `%s'"
msgstr ""
-#: objcopy.c:948
+#: objcopy.c:947
#, c-format
msgid "error: %s both copied and removed"
msgstr ""
-#: objcopy.c:954
+#: objcopy.c:953
#, c-format
msgid "error: %s both sets and alters VMA"
msgstr ""
-#: objcopy.c:960
+#: objcopy.c:959
#, c-format
msgid "error: %s both sets and alters LMA"
msgstr ""
-#: objcopy.c:1123
+#: objcopy.c:1122
#, c-format
msgid "cannot open '%s': %s"
msgstr ""
-#: objcopy.c:1126 objcopy.c:5205
+#: objcopy.c:1125 objcopy.c:5313
#, c-format
msgid "%s: fread failed"
msgstr ""
-#: objcopy.c:1199
+#: objcopy.c:1198
#, c-format
msgid "%s:%d: Ignoring rubbish found on this line"
msgstr ""
-#: objcopy.c:1371
+#: objcopy.c:1370
#, c-format
msgid "error: section %s matches both remove and copy options"
msgstr ""
-#: objcopy.c:1374
+#: objcopy.c:1373
#, c-format
msgid "error: section %s matches both update and remove options"
msgstr ""
-#: objcopy.c:1549
+#: objcopy.c:1548
#, c-format
msgid "Section %s not found"
msgstr ""
-#: objcopy.c:1599
+#: objcopy.c:1598
msgid "redefining symbols does not work on LTO-compiled object files"
msgstr ""
-#: objcopy.c:1711
+#: objcopy.c:1710
#, c-format
msgid "not stripping symbol `%s' because it is named in a relocation"
msgstr ""
-#: objcopy.c:1772
+#: objcopy.c:1773
#, c-format
msgid "'before=%s' not found"
msgstr ""
-#: objcopy.c:1811
+#: objcopy.c:1813
#, c-format
msgid "%s: Multiple redefinition of symbol \"%s\""
msgstr ""
-#: objcopy.c:1815
+#: objcopy.c:1817
#, c-format
msgid "%s: Symbol \"%s\" is target of more than one redefinition"
msgstr ""
-#: objcopy.c:1842
+#: objcopy.c:1844
#, c-format
msgid "couldn't open symbol redefinition file %s (error: %s)"
msgstr ""
-#: objcopy.c:1920
+#: objcopy.c:1922
#, c-format
msgid "%s:%d: garbage found at end of line"
msgstr ""
-#: objcopy.c:1923
+#: objcopy.c:1925
#, c-format
msgid "%s:%d: missing new symbol name"
msgstr ""
-#: objcopy.c:1933
+#: objcopy.c:1935
#, c-format
msgid "%s:%d: premature end of file"
msgstr ""
-#: objcopy.c:1959
+#: objcopy.c:1961
#, c-format
msgid "stat returns negative size for `%s'"
msgstr ""
-#: objcopy.c:1971
+#: objcopy.c:1973
#, c-format
msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
msgstr ""
-#: objcopy.c:2216
+#: objcopy.c:2221
#, c-format
msgid "%s[%s]: Cannot merge - there are relocations against this section"
msgstr ""
-#: objcopy.c:2238
+#: objcopy.c:2243
msgid "corrupt GNU build attribute note: description size not a factor of 4"
msgstr ""
-#: objcopy.c:2245
+#: objcopy.c:2250
msgid "corrupt GNU build attribute note: wrong note type"
msgstr ""
-#: objcopy.c:2251
+#: objcopy.c:2256
msgid "corrupt GNU build attribute note: note too big"
msgstr ""
-#: objcopy.c:2257
+#: objcopy.c:2262
msgid "corrupt GNU build attribute note: name too small"
msgstr ""
-#: objcopy.c:2280
+#: objcopy.c:2285
msgid "corrupt GNU build attribute note: unsupported version"
msgstr ""
-#: objcopy.c:2314
+#: objcopy.c:2319
msgid "corrupt GNU build attribute note: bad description size"
msgstr ""
-#: objcopy.c:2350
+#: objcopy.c:2355
msgid "corrupt GNU build attribute note: name not NUL terminated"
msgstr ""
-#: objcopy.c:2362
+#: objcopy.c:2367
msgid "corrupt GNU build attribute notes: excess data at end"
msgstr ""
-#: objcopy.c:2369
+#: objcopy.c:2374
msgid "bad GNU build attribute notes: no known versions detected"
msgstr ""
#. This happens with glibc. No idea why.
-#: objcopy.c:2373
+#: objcopy.c:2378
#, c-format
msgid "%s[%s]: Warning: version note missing - assuming version 3"
msgstr ""
-#: objcopy.c:2383
+#: objcopy.c:2388
msgid "bad GNU build attribute notes: multiple different versions"
msgstr ""
-#: objcopy.c:2633
+#: objcopy.c:2636
#, c-format
msgid "%s[%s]: Note - dropping 'share' flag as output format is not COFF"
msgstr ""
-#: objcopy.c:2645
+#: objcopy.c:2648
#, c-format
msgid "%s[%s]: 'large' flag is ELF x86-64 specific"
msgstr ""
#. PR 17636: Call non-fatal so that we return to our parent who
#. may need to tidy temporary files.
-#: objcopy.c:2691
+#: objcopy.c:2694
#, c-format
msgid "unable to change endianness of '%s'"
msgstr ""
-#: objcopy.c:2698
+#: objcopy.c:2701
#, c-format
msgid "unable to modify '%s' due to errors"
msgstr ""
-#: objcopy.c:2711
+#: objcopy.c:2714
#, c-format
msgid "error: the input file '%s' has no sections"
msgstr ""
-#: objcopy.c:2739
+#: objcopy.c:2742
#, c-format
msgid ""
"--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi|zstd] is unsupported on `%"
"s'"
msgstr ""
-#: objcopy.c:2747
+#: objcopy.c:2750
#, c-format
msgid "--elf-stt-common=[yes|no] is unsupported on `%s'"
msgstr ""
-#: objcopy.c:2754
+#: objcopy.c:2757
#, c-format
msgid "--strip-section-headers is unsupported on `%s'"
msgstr ""
-#: objcopy.c:2761
+#: objcopy.c:2764
#, c-format
msgid "copy from `%s' [%s] to `%s' [%s]\n"
msgstr ""
-#: objcopy.c:2809
+#: objcopy.c:2812
#, c-format
msgid "Input file `%s' ignores binary architecture parameter."
msgstr ""
-#: objcopy.c:2825
+#: objcopy.c:2828
#, c-format
msgid "Unable to recognise the format of the input file `%s'"
msgstr ""
-#: objcopy.c:2828
+#: objcopy.c:2831
#, c-format
msgid "Output file cannot represent architecture `%s'"
msgstr ""
-#: objcopy.c:2894
+#: objcopy.c:2897
#, c-format
msgid "warning: file alignment (0x%<PRIx64>) > section alignment (0x%<PRIx64>)"
msgstr ""
-#: objcopy.c:2963
+#: objcopy.c:2971
#, c-format
msgid "can't add section '%s'"
msgstr ""
-#: objcopy.c:2977
+#: objcopy.c:2985
#, c-format
msgid "can't create section `%s'"
msgstr ""
-#: objcopy.c:3025
+#: objcopy.c:3033
#, c-format
msgid "error: %s not found, can't be updated"
msgstr ""
-#: objcopy.c:3065
+#: objcopy.c:3073
msgid "warning: could not load note section"
msgstr ""
-#: objcopy.c:3081
+#: objcopy.c:3094
msgid "warning: failed to set merged notes size"
msgstr ""
-#: objcopy.c:3107
+#: objcopy.c:3120
#, c-format
msgid "can't dump section '%s' - it does not exist"
msgstr ""
-#: objcopy.c:3115
+#: objcopy.c:3128
msgid "can't dump section - it has no contents"
msgstr ""
-#: objcopy.c:3127
+#: objcopy.c:3140
msgid "could not open section dump file"
msgstr ""
-#: objcopy.c:3135
+#: objcopy.c:3148
#, c-format
msgid "error writing section contents to %s (error: %s)"
msgstr ""
-#: objcopy.c:3145
+#: objcopy.c:3158
msgid "could not retrieve section contents"
msgstr ""
-#: objcopy.c:3159
+#: objcopy.c:3172
#, c-format
msgid "%s: debuglink section already exists"
msgstr ""
-#: objcopy.c:3171
+#: objcopy.c:3184
#, c-format
msgid "cannot create debug link section `%s'"
msgstr ""
-#: objcopy.c:3265
+#: objcopy.c:3277
msgid "Can't fill gap after section"
msgstr ""
-#: objcopy.c:3290
+#: objcopy.c:3301
msgid "can't add padding"
msgstr ""
-#: objcopy.c:3468
+#: objcopy.c:3473
msgid "error: failed to locate merged notes"
msgstr ""
-#: objcopy.c:3477
+#: objcopy.c:3482
msgid "error: failed to merge notes"
msgstr ""
-#: objcopy.c:3486
+#: objcopy.c:3491
msgid "error: failed to copy merged notes into output"
msgstr ""
-#: objcopy.c:3503
+#: objcopy.c:3508
#, c-format
msgid "%s: Could not find any mergeable note sections"
msgstr ""
-#: objcopy.c:3512
+#: objcopy.c:3517
#, c-format
msgid "cannot fill debug link section `%s'"
msgstr ""
-#: objcopy.c:3573
+#: objcopy.c:3580
msgid "error copying private BFD data"
msgstr ""
-#: objcopy.c:3584
+#: objcopy.c:3591
#, c-format
msgid "this target does not support %lu alternative machine codes"
msgstr ""
-#: objcopy.c:3588
+#: objcopy.c:3595
msgid "treating that number as an absolute e_machine value instead"
msgstr ""
-#: objcopy.c:3592
+#: objcopy.c:3599
msgid "ignoring the alternative value"
msgstr ""
-#: objcopy.c:3640
+#: objcopy.c:3660
msgid "sorry: copying thin archives is not currently supported"
msgstr ""
-#: objcopy.c:3647 objcopy.c:3699
+#: objcopy.c:3667 objcopy.c:3723
#, c-format
msgid "cannot create tempdir for archive copying (error: %s)"
msgstr ""
-#: objcopy.c:3680
+#: objcopy.c:3702
+#, c-format
+msgid "warning: illegal pathname found in archive member: %s"
+msgstr ""
+
+#: objcopy.c:3708
#, c-format
-msgid "illegal pathname found in archive member: %s"
+msgid "warning: using the basename of the member instead: %s"
msgstr ""
-#: objcopy.c:3734
+#: objcopy.c:3756
msgid "Unable to recognise the format of file"
msgstr ""
-#: objcopy.c:3858
+#: objcopy.c:3881
#, c-format
msgid "error: the input file '%s' is empty"
msgstr ""
-#: objcopy.c:3893
+#: objcopy.c:3916
msgid "--compress-debug-sections=zstd: binutils is not built with zstd support"
msgstr ""
-#: objcopy.c:3949
+#: objcopy.c:3972
#, c-format
msgid "--add-gnu-debuglink ignored for archive %s"
msgstr ""
-#: objcopy.c:4047
+#: objcopy.c:4072
#, c-format
msgid "Multiple renames of section %s"
msgstr ""
-#: objcopy.c:4093
+#: objcopy.c:4117
msgid "error in private header data"
msgstr ""
-#: objcopy.c:4206 objcopy.c:4214
+#: objcopy.c:4273 objcopy.c:4281
msgid "failed to create output section"
msgstr ""
-#: objcopy.c:4223
+#: objcopy.c:4290
msgid "failed to set size"
msgstr ""
-#: objcopy.c:4239
+#: objcopy.c:4309
msgid "failed to set vma"
msgstr ""
-#: objcopy.c:4266
+#: objcopy.c:4358
msgid "failed to set alignment"
msgstr ""
-#: objcopy.c:4295
+#: objcopy.c:4373
+#, c-format
+msgid "output section %s's alignment does not match its VMA"
+msgstr ""
+
+#: objcopy.c:4387
+#, c-format
+msgid "output section %s's alignment does not match its LMA"
+msgstr ""
+
+#: objcopy.c:4417
msgid "failed to copy private data"
msgstr ""
-#: objcopy.c:4452
+#: objcopy.c:4571
msgid "relocation count is negative"
msgstr ""
#. User must pad the section up in order to do this.
-#: objcopy.c:4539
+#: objcopy.c:4657
#, c-format
msgid ""
"cannot reverse bytes: length of section %s must be evenly divisible by %d"
msgstr ""
-#: objcopy.c:4749
+#: objcopy.c:4857
msgid "can't create debugging section"
msgstr ""
-#: objcopy.c:4763
+#: objcopy.c:4871
msgid "can't set debugging section contents"
msgstr ""
-#: objcopy.c:4773
+#: objcopy.c:4881
#, c-format
msgid "don't know how to write debugging information for %s"
msgstr ""
-#: objcopy.c:4965
+#: objcopy.c:5073
msgid "could not create temporary file to hold stripped copy"
msgstr ""
-#: objcopy.c:5039
+#: objcopy.c:5147
#, c-format
msgid "%s: bad version in PE subsystem"
msgstr ""
-#: objcopy.c:5069
+#: objcopy.c:5177
#, c-format
msgid "unknown PE subsystem: %s"
msgstr ""
-#: objcopy.c:5158 objcopy.c:5434 objcopy.c:5514 objcopy.c:5652 objcopy.c:5684
-#: objcopy.c:5747 objcopy.c:5751 objcopy.c:5771
+#: objcopy.c:5266 objcopy.c:5542 objcopy.c:5622 objcopy.c:5760 objcopy.c:5792
+#: objcopy.c:5848 objcopy.c:5852 objcopy.c:5872
#, c-format
msgid "bad format for %s"
msgstr ""
-#: objcopy.c:5187
+#: objcopy.c:5295
#, c-format
msgid "cannot open: %s: %s"
msgstr ""
-#: objcopy.c:5242
+#: objcopy.c:5350
msgid "byte number must be non-negative"
msgstr ""
-#: objcopy.c:5248
+#: objcopy.c:5356
#, c-format
msgid "architecture %s unknown"
msgstr ""
-#: objcopy.c:5256
+#: objcopy.c:5364
msgid "interleave must be positive"
msgstr ""
-#: objcopy.c:5265
+#: objcopy.c:5373
msgid "interleave width must be positive"
msgstr ""
-#: objcopy.c:5589
+#: objcopy.c:5697
#, c-format
msgid "unrecognized --compress-debug-sections type `%s'"
msgstr ""
-#: objcopy.c:5610
+#: objcopy.c:5718
#, c-format
msgid "unrecognized --elf-stt-common= option `%s'"
msgstr ""
-#: objcopy.c:5621
+#: objcopy.c:5729
#, c-format
msgid "Warning: truncating gap-fill from 0x%<PRIx64> to 0x%x"
msgstr ""
-#: objcopy.c:5707
+#: objcopy.c:5815
msgid "bad format for --set-section-alignment: argument needed"
msgstr ""
-#: objcopy.c:5711
+#: objcopy.c:5819
msgid "bad format for --set-section-alignment: numeric argument needed"
msgstr ""
-#. Number has more than on 1, i.e. wasn't a power of 2.
-#: objcopy.c:5723
+#: objcopy.c:5824
msgid "bad format for --set-section-alignment: alignment is not a power of two"
msgstr ""
-#: objcopy.c:5830
+#: objcopy.c:5931
#, c-format
msgid "unknown long section names option '%s'"
msgstr ""
-#: objcopy.c:5853
+#: objcopy.c:5954
msgid "unable to parse alternative machine code"
msgstr ""
-#: objcopy.c:5902
+#: objcopy.c:6003
msgid "number of bytes to reverse must be positive and even"
msgstr ""
-#: objcopy.c:5905
+#: objcopy.c:6006
#, c-format
msgid "Warning: ignoring previous --reverse-bytes value of %d"
msgstr ""
-#: objcopy.c:5920
+#: objcopy.c:6021
#, c-format
msgid "%s: invalid reserve value for --heap"
msgstr ""
-#: objcopy.c:5926
+#: objcopy.c:6027
#, c-format
msgid "%s: invalid commit value for --heap"
msgstr ""
-#: objcopy.c:5951
+#: objcopy.c:6042
+#, c-format
+msgid "--section-alignment argument is not a power of two: %s - ignoring"
+msgstr ""
+
+#: objcopy.c:6057
#, c-format
msgid "%s: invalid reserve value for --stack"
msgstr ""
-#: objcopy.c:5957
+#: objcopy.c:6063
#, c-format
msgid "%s: invalid commit value for --stack"
msgstr ""
-#: objcopy.c:5975
+#: objcopy.c:6081
msgid "error: verilog data width must be 1, 2, 4, 8 or 16"
msgstr ""
-#: objcopy.c:5993
+#: objcopy.c:6099
msgid "--globalize-symbol(s) is incompatible with -G/--keep-global-symbol(s)"
msgstr ""
-#: objcopy.c:6005
+#: objcopy.c:6111
msgid "interleave start byte must be set with --byte"
msgstr ""
-#: objcopy.c:6008
+#: objcopy.c:6114
msgid "byte number must be less than interleave"
msgstr ""
-#: objcopy.c:6011
+#: objcopy.c:6117
msgid "interleave width must be less than or equal to interleave - byte`"
msgstr ""
-#: objcopy.c:6034
+#: objcopy.c:6140
#, c-format
msgid "unknown input EFI target: %s"
msgstr ""
-#: objcopy.c:6044
+#: objcopy.c:6150
#, c-format
msgid "unknown output EFI target: %s"
msgstr ""
-#: objcopy.c:6068
+#: objcopy.c:6174
#, c-format
msgid ""
"warning: could not create temporary file whilst copying '%s', (error: %s)"
msgstr ""
-#: objcopy.c:6100 objcopy.c:6108
+#: objcopy.c:6206 objcopy.c:6214
#, c-format
msgid "%s %s%c0x%<PRIx64> never used"
msgstr ""
-#: objdump.c:254
+#: objdump.c:255
#, c-format
msgid "Usage: %s <option(s)> <file(s)>\n"
msgstr ""
-#: objdump.c:255
+#: objdump.c:256
#, c-format
msgid " Display information from object <file(s)>.\n"
msgstr ""
-#: objdump.c:256
+#: objdump.c:257
#, c-format
msgid " At least one of the following switches must be given:\n"
msgstr ""
-#: objdump.c:257
+#: objdump.c:258
#, c-format
msgid " -a, --archive-headers Display archive header information\n"
msgstr ""
-#: objdump.c:259
+#: objdump.c:260
#, c-format
msgid ""
" -f, --file-headers Display the contents of the overall file header\n"
msgstr ""
-#: objdump.c:261
+#: objdump.c:262
#, c-format
msgid ""
" -p, --private-headers Display object format specific file header "
"contents\n"
msgstr ""
-#: objdump.c:263
+#: objdump.c:264
#, c-format
msgid " -P, --private=OPT,OPT... Display object format specific contents\n"
msgstr ""
-#: objdump.c:265
+#: objdump.c:266
#, c-format
msgid ""
" -h, --[section-]headers Display the contents of the section headers\n"
msgstr ""
-#: objdump.c:267
+#: objdump.c:268
#, c-format
msgid " -x, --all-headers Display the contents of all headers\n"
msgstr ""
-#: objdump.c:269
+#: objdump.c:270
#, c-format
msgid ""
" -d, --disassemble Display assembler contents of executable "
"sections\n"
msgstr ""
-#: objdump.c:271
+#: objdump.c:272
#, c-format
msgid " -D, --disassemble-all Display assembler contents of all sections\n"
msgstr ""
-#: objdump.c:273
+#: objdump.c:274
#, c-format
msgid " --disassemble=<sym> Display assembler contents from <sym>\n"
msgstr ""
-#: objdump.c:275
+#: objdump.c:276
#, c-format
msgid " -S, --source Intermix source code with disassembly\n"
msgstr ""
-#: objdump.c:277
+#: objdump.c:278
#, c-format
msgid " --source-comment[=<txt>] Prefix lines of source code with <txt>\n"
msgstr ""
-#: objdump.c:279
+#: objdump.c:280
#, c-format
msgid ""
" -s, --full-contents Display the full contents of all sections "
"requested\n"
msgstr ""
-#: objdump.c:281
+#: objdump.c:282
#, c-format
msgid ""
" -Z, --decompress Decompress section(s) before displaying their "
"contents\n"
msgstr ""
-#: objdump.c:283
+#: objdump.c:284
#, c-format
msgid " -g, --debugging Display debug information in object file\n"
msgstr ""
-#: objdump.c:285
+#: objdump.c:286
#, c-format
msgid ""
" -e, --debugging-tags Display debug information using ctags style\n"
msgstr ""
-#: objdump.c:287
+#: objdump.c:288
#, c-format
msgid ""
" -G, --stabs Display (in raw form) any STABS info in the file\n"
msgstr ""
-#: objdump.c:289
+#: objdump.c:290
#, c-format
msgid ""
" -W, --dwarf[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
@@ -6133,14 +6236,14 @@ msgid ""
" Display the contents of DWARF debug sections\n"
msgstr ""
-#: objdump.c:296
+#: objdump.c:297
#, c-format
msgid ""
" -Wk,--dwarf=links Display the contents of sections that link to\n"
" separate debuginfo files\n"
msgstr ""
-#: objdump.c:300
+#: objdump.c:301
#, c-format
msgid ""
" -WK,--dwarf=follow-links\n"
@@ -6148,21 +6251,21 @@ msgid ""
"(default)\n"
msgstr ""
-#: objdump.c:303
+#: objdump.c:304
#, c-format
msgid ""
" -WN,--dwarf=no-follow-links\n"
" Do not follow links to separate debug info files\n"
msgstr ""
-#: objdump.c:307
+#: objdump.c:308
#, c-format
msgid ""
" -WK,--dwarf=follow-links\n"
" Follow links to separate debug info files\n"
msgstr ""
-#: objdump.c:310
+#: objdump.c:311
#, c-format
msgid ""
" -WN,--dwarf=no-follow-links\n"
@@ -6170,7 +6273,7 @@ msgid ""
" (default)\n"
msgstr ""
-#: objdump.c:316
+#: objdump.c:317
#, c-format
msgid ""
" -WD --dwarf=use-debuginfod\n"
@@ -6178,7 +6281,7 @@ msgid ""
"servers (default)\n"
msgstr ""
-#: objdump.c:319
+#: objdump.c:320
#, c-format
msgid ""
" -WE --dwarf=do-not-use-debuginfod\n"
@@ -6186,154 +6289,154 @@ msgid ""
"servers\n"
msgstr ""
-#: objdump.c:323
+#: objdump.c:324
#, c-format
msgid ""
" -L, --process-links Display the contents of non-debug sections in\n"
" separate debuginfo files. (Implies -WK)\n"
msgstr ""
-#: objdump.c:327
+#: objdump.c:328
#, c-format
msgid ""
" --ctf[=SECTION] Display CTF info from SECTION, (default `.ctf')\n"
msgstr ""
-#: objdump.c:330
+#: objdump.c:331
#, c-format
msgid ""
" --sframe[=SECTION] Display SFrame info from SECTION, (default '."
"sframe')\n"
msgstr ""
-#: objdump.c:332
+#: objdump.c:333
#, c-format
msgid ""
" -t, --syms Display the contents of the symbol table(s)\n"
msgstr ""
-#: objdump.c:334
+#: objdump.c:335
#, c-format
msgid ""
" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
msgstr ""
-#: objdump.c:336
+#: objdump.c:337
#, c-format
msgid " -r, --reloc Display the relocation entries in the file\n"
msgstr ""
-#: objdump.c:338
+#: objdump.c:339
#, c-format
msgid ""
" -R, --dynamic-reloc Display the dynamic relocation entries in the "
"file\n"
msgstr ""
-#: objdump.c:340
+#: objdump.c:341
#, c-format
msgid " @<file> Read options from <file>\n"
msgstr ""
-#: objdump.c:342
+#: objdump.c:343
#, c-format
msgid " -v, --version Display this program's version number\n"
msgstr ""
-#: objdump.c:344
+#: objdump.c:345
#, c-format
msgid ""
" -i, --info List object formats and architectures supported\n"
msgstr ""
-#: objdump.c:346
+#: objdump.c:347
#, c-format
msgid " -H, --help Display this information\n"
msgstr ""
-#: objdump.c:353
+#: objdump.c:354
#, c-format
msgid ""
"\n"
" The following switches are optional:\n"
msgstr ""
-#: objdump.c:354
+#: objdump.c:355
#, c-format
msgid ""
" -b, --target=BFDNAME Specify the target object format as "
"BFDNAME\n"
msgstr ""
-#: objdump.c:356
+#: objdump.c:357
#, c-format
msgid ""
" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
msgstr ""
-#: objdump.c:358
+#: objdump.c:359
#, c-format
msgid ""
" -j, --section=NAME Only display information for section NAME\n"
msgstr ""
-#: objdump.c:360
+#: objdump.c:361
#, c-format
msgid " -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
msgstr ""
-#: objdump.c:362
+#: objdump.c:363
#, c-format
msgid ""
" -EB --endian=big Assume big endian format when "
"disassembling\n"
msgstr ""
-#: objdump.c:364
+#: objdump.c:365
#, c-format
msgid ""
" -EL --endian=little Assume little endian format when "
"disassembling\n"
msgstr ""
-#: objdump.c:366
+#: objdump.c:367
#, c-format
msgid ""
" --file-start-context Include context from start of file (with -"
"S)\n"
msgstr ""
-#: objdump.c:368
+#: objdump.c:369
#, c-format
msgid ""
" -I, --include=DIR Add DIR to search list for source files\n"
msgstr ""
-#: objdump.c:370
+#: objdump.c:371
#, c-format
msgid ""
" -l, --line-numbers Include line numbers and filenames in "
"output\n"
msgstr ""
-#: objdump.c:372
+#: objdump.c:373
#, c-format
msgid ""
" -F, --file-offsets Include file offsets when displaying "
"information\n"
msgstr ""
-#: objdump.c:374
+#: objdump.c:375
#, c-format
msgid ""
" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr ""
-#: objdump.c:376
+#: objdump.c:377
msgid " STYLE can be "
msgstr ""
-#: objdump.c:378
+#: objdump.c:379
#, c-format
msgid ""
" --recurse-limit Enable a limit on recursion whilst "
@@ -6341,20 +6444,20 @@ msgid ""
" (default)\n"
msgstr ""
-#: objdump.c:381
+#: objdump.c:382
#, c-format
msgid ""
" --no-recurse-limit Disable a limit on recursion whilst "
"demangling\n"
msgstr ""
-#: objdump.c:383
+#: objdump.c:384
#, c-format
msgid ""
" -w, --wide Format output for more than 80 columns\n"
msgstr ""
-#: objdump.c:385
+#: objdump.c:386
#, c-format
msgid ""
" -U[d|l|i|x|e|h] Controls the display of UTF-8 unicode "
@@ -6362,169 +6465,169 @@ msgid ""
" --unicode=[default|locale|invalid|hex|escape|highlight]\n"
msgstr ""
-#: objdump.c:388
+#: objdump.c:389
#, c-format
msgid ""
" -z, --disassemble-zeroes Do not skip blocks of zeroes when "
"disassembling\n"
msgstr ""
-#: objdump.c:390
+#: objdump.c:391
#, c-format
msgid ""
" --start-address=ADDR Only process data whose address is >= ADDR\n"
msgstr ""
-#: objdump.c:392
+#: objdump.c:393
#, c-format
msgid ""
" --stop-address=ADDR Only process data whose address is < ADDR\n"
msgstr ""
-#: objdump.c:394
+#: objdump.c:395
#, c-format
msgid ""
" --no-addresses Do not print address alongside disassembly\n"
msgstr ""
-#: objdump.c:396
+#: objdump.c:397
#, c-format
msgid ""
" --prefix-addresses Print complete address alongside "
"disassembly\n"
msgstr ""
-#: objdump.c:398
+#: objdump.c:399
#, c-format
msgid ""
" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
msgstr ""
-#: objdump.c:400
+#: objdump.c:401
#, c-format
msgid ""
" --insn-width=WIDTH Display WIDTH bytes on a single line for -"
"d\n"
msgstr ""
-#: objdump.c:402
+#: objdump.c:403
#, c-format
msgid ""
" --adjust-vma=OFFSET Add OFFSET to all displayed section "
"addresses\n"
msgstr ""
-#: objdump.c:404
+#: objdump.c:405
#, c-format
msgid ""
" --show-all-symbols When disassembling, display all symbols at "
"a given address\n"
msgstr ""
-#: objdump.c:406
+#: objdump.c:407
#, c-format
msgid ""
" --special-syms Include special symbols in symbol dumps\n"
msgstr ""
-#: objdump.c:408
+#: objdump.c:409
#, c-format
msgid ""
" --inlines Print all inlines for source line (with -"
"l)\n"
msgstr ""
-#: objdump.c:410
+#: objdump.c:411
#, c-format
msgid " --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
msgstr ""
-#: objdump.c:412
+#: objdump.c:413
#, c-format
msgid " --prefix-strip=LEVEL Strip initial directory names for -S\n"
msgstr ""
-#: objdump.c:414
+#: objdump.c:415
#, c-format
msgid ""
" --dwarf-depth=N Do not display DIEs at depth N or greater\n"
msgstr ""
-#: objdump.c:416
+#: objdump.c:417
#, c-format
msgid " --dwarf-start=N Display DIEs starting at offset N\n"
msgstr ""
-#: objdump.c:418
+#: objdump.c:419
#, c-format
msgid ""
" --dwarf-check Make additional dwarf consistency checks.\n"
msgstr ""
-#: objdump.c:421
+#: objdump.c:422
#, c-format
msgid ""
" --ctf-parent=NAME Use CTF archive member NAME as the CTF "
"parent\n"
msgstr ""
-#: objdump.c:424
+#: objdump.c:425
#, c-format
msgid ""
" --visualize-jumps Visualize jumps by drawing ASCII art lines\n"
msgstr ""
-#: objdump.c:426
+#: objdump.c:427
#, c-format
msgid " --visualize-jumps=color Use colors in the ASCII art\n"
msgstr ""
-#: objdump.c:428
+#: objdump.c:429
#, c-format
msgid ""
" --visualize-jumps=extended-color\n"
" Use extended 8-bit color codes\n"
msgstr ""
-#: objdump.c:431
+#: objdump.c:432
#, c-format
msgid " --visualize-jumps=off Disable jump visualization\n"
msgstr ""
-#: objdump.c:434
+#: objdump.c:435
#, c-format
msgid ""
" --disassembler-color=off Disable disassembler color output.\n"
msgstr ""
-#: objdump.c:436
+#: objdump.c:437
#, c-format
msgid ""
" --disassembler-color=terminal Enable disassembler color output if "
"displaying on a terminal. (default)\n"
msgstr ""
-#: objdump.c:439
+#: objdump.c:440
#, c-format
msgid ""
" --disassembler-color=off Disable disassembler color output. "
"(default)\n"
msgstr ""
-#: objdump.c:441
+#: objdump.c:442
#, c-format
msgid ""
" --disassembler-color=terminal Enable disassembler color output if "
"displaying on a terminal.\n"
msgstr ""
-#: objdump.c:444
+#: objdump.c:445
#, c-format
msgid ""
" --disassembler-color=on Enable disassembler color output.\n"
msgstr ""
-#: objdump.c:446
+#: objdump.c:447
#, c-format
msgid ""
" --disassembler-color=extended Use 8-bit colors in disassembler "
@@ -6532,340 +6635,330 @@ msgid ""
"\n"
msgstr ""
-#: objdump.c:457
+#: objdump.c:458
#, c-format
msgid ""
"\n"
"Options supported for -P/--private switch:\n"
msgstr ""
-#: objdump.c:828
+#: objdump.c:831
#, c-format
msgid "section '%s' mentioned in a -j option, but not found in any input file"
msgstr ""
-#: objdump.c:986
+#: objdump.c:989
#, c-format
msgid "Sections:\n"
msgstr ""
-#: objdump.c:992
+#: objdump.c:995
#, c-format
msgid "Idx %-*s Size %-*s%-*sFile off Algn"
msgstr ""
-#: objdump.c:998
+#: objdump.c:1001
#, c-format
msgid " Flags"
msgstr ""
-#: objdump.c:1015
+#: objdump.c:1018
#, c-format
msgid "failed to read symbol table from: %s"
msgstr ""
-#: objdump.c:1017 objdump.c:5422 objdump.c:5474
+#: objdump.c:1020 objdump.c:5517 objdump.c:5569
msgid "error message was"
msgstr ""
-#: objdump.c:1046
+#: objdump.c:1049
#, c-format
msgid "%s: not a dynamic object"
msgstr ""
-#: objdump.c:1651 objdump.c:1679
+#: objdump.c:1654 objdump.c:1719
#, c-format
msgid " (File Offset: 0x%lx)"
msgstr ""
-#: objdump.c:2077
+#: objdump.c:2141
#, c-format
msgid "source file %s is more recent than object file\n"
msgstr ""
-#: objdump.c:2446
+#: objdump.c:2510
msgid "disassembly color not correctly selected"
msgstr ""
-#: objdump.c:3320
+#: objdump.c:3384
#, c-format
msgid "\t... (skipping %lu zeroes, resuming at file offset: 0x%lx)\n"
msgstr ""
-#: objdump.c:3459
+#: objdump.c:3523
#, c-format
msgid "disassemble_fn returned length %d"
msgstr ""
-#: objdump.c:3796 objdump.c:5039
+#: objdump.c:3860 objdump.c:5134
#, c-format
msgid "Reading section %s failed because: %s"
msgstr ""
-#: objdump.c:3817
+#: objdump.c:3876
#, c-format
msgid ""
"\n"
"Disassembly of section %s:\n"
msgstr ""
-#: objdump.c:4135
+#: objdump.c:4187
#, c-format
msgid "can't use supplied machine %s"
msgstr ""
-#: objdump.c:4158
+#: objdump.c:4210
#, c-format
msgid "can't disassemble for architecture %s\n"
msgstr ""
-#: objdump.c:4252
+#: objdump.c:4303
#, c-format
msgid ""
"\n"
"Section '%s' has an invalid size: %#<PRIx64>.\n"
msgstr ""
-#: objdump.c:4297
+#: objdump.c:4352
#, c-format
msgid ""
"\n"
"Can't get contents for section '%s'.\n"
msgstr ""
-#: objdump.c:4455
+#: objdump.c:4515
#, c-format
msgid "File %s does not contain any dwarf debug information\n"
msgstr ""
-#: objdump.c:4491
+#: objdump.c:4551
#, c-format
msgid ""
"No %s section present\n"
"\n"
msgstr ""
-#: objdump.c:4500
+#: objdump.c:4560
#, c-format
msgid "reading %s section of %s failed: %s"
msgstr ""
-#: objdump.c:4538
+#: objdump.c:4598
#, c-format
msgid ""
"Contents of %s section:\n"
"\n"
msgstr ""
-#: objdump.c:4680
+#: objdump.c:4740
#, c-format
msgid "architecture: %s, "
msgstr ""
-#: objdump.c:4683
+#: objdump.c:4743
#, c-format
msgid "flags 0x%08x:\n"
msgstr ""
-#: objdump.c:4696
+#: objdump.c:4756
#, c-format
msgid ""
"\n"
"start address 0x"
msgstr ""
-#: objdump.c:4746 readelf.c:16338
+#: objdump.c:4806 readelf.c:16892
#, c-format
msgid "%s: %s"
msgstr ""
-#: objdump.c:4746 readelf.c:16338
+#: objdump.c:4806 readelf.c:16892
msgid "warning"
msgstr ""
-#: objdump.c:4746 readelf.c:16338
+#: objdump.c:4806 readelf.c:16892
msgid "error"
msgstr ""
-#: objdump.c:4752 readelf.c:16343
+#: objdump.c:4812 readelf.c:16897
#, c-format
msgid "CTF error: cannot get CTF errors: `%s'"
msgstr ""
-#: objdump.c:4776 readelf.c:16365
+#: objdump.c:4836 readelf.c:16919
#, c-format
msgid ""
"\n"
"CTF archive member: %s:\n"
msgstr ""
-#: objdump.c:4796
+#: objdump.c:4856
#, c-format
msgid "Iteration failed: %s, %s"
msgstr ""
-#: objdump.c:4838 objdump.c:4847
+#: objdump.c:4902 objdump.c:4922 objdump.c:4935
#, c-format
msgid "CTF open failure: %s"
msgstr ""
-#: objdump.c:4854
+#: objdump.c:4943
#, c-format
msgid "Contents of CTF section %s:\n"
msgstr ""
-#: objdump.c:4861
+#: objdump.c:4950
#, c-format
msgid "CTF archive member open failure: %s"
msgstr ""
-#: objdump.c:4906 readelf.c:16539
+#: objdump.c:5001 readelf.c:17093
#, c-format
msgid "Contents of the SFrame section %s:"
msgstr ""
-#: objdump.c:4920
+#: objdump.c:5015
#, c-format
msgid "warning: private headers incomplete: %s"
msgstr ""
-#: objdump.c:4938
+#: objdump.c:5033
msgid "option -P/--private not supported by this file"
msgstr ""
-#: objdump.c:4962
+#: objdump.c:5057
#, c-format
msgid "target specific dump '%s' not supported"
msgstr ""
-#: objdump.c:5028
+#: objdump.c:5123
#, c-format
msgid "Contents of section %s:"
msgstr ""
-#: objdump.c:5030
+#: objdump.c:5125
#, c-format
msgid " (Starting at file offset: 0x%lx)"
msgstr ""
-#: objdump.c:5035 readelf.c:16042
+#: objdump.c:5130 readelf.c:16596
#, c-format
msgid ""
" NOTE: This section is compressed, but its contents have NOT been expanded "
"for this dump.\n"
msgstr ""
-#: objdump.c:5143
+#: objdump.c:5238
#, c-format
msgid "no symbols\n"
msgstr ""
-#: objdump.c:5150
+#: objdump.c:5245
#, c-format
msgid "no information for symbol number %ld\n"
msgstr ""
-#: objdump.c:5153
+#: objdump.c:5248
#, c-format
msgid "could not determine the type of symbol number %ld\n"
msgstr ""
-#: objdump.c:5420 objdump.c:5472
+#: objdump.c:5515 objdump.c:5567
#, c-format
msgid "failed to read relocs in: %s"
msgstr ""
-#: objdump.c:5603
+#: objdump.c:5698
#, c-format
msgid ""
"\n"
"%s: file format %s\n"
msgstr ""
-#: objdump.c:5713
+#: objdump.c:5809
#, c-format
msgid "%s: printing debugging information failed"
msgstr ""
-#: objdump.c:5803
+#: objdump.c:5899
#, c-format
msgid "In archive %s:\n"
msgstr ""
#. Prevent corrupted files from spinning us into an
#. infinite loop. 100 is an arbitrary heuristic.
-#: objdump.c:5808
+#: objdump.c:5904
msgid "Archive nesting is too deep"
msgstr ""
-#: objdump.c:5813
+#: objdump.c:5909
#, c-format
msgid "In nested archive %s:\n"
msgstr ""
-#: objdump.c:5977
+#: objdump.c:6073
msgid "error: the start address should be before the end address"
msgstr ""
-#: objdump.c:5982
+#: objdump.c:6078
msgid "error: the stop address should be after the start address"
msgstr ""
-#: objdump.c:5994
+#: objdump.c:6090
msgid "error: prefix strip must be non-negative"
msgstr ""
-#: objdump.c:5999
+#: objdump.c:6095
msgid "error: instruction width must be positive"
msgstr ""
-#: objdump.c:6021
+#: objdump.c:6117
msgid "unrecognized argument to --visualize-option"
msgstr ""
-#: objdump.c:6041
+#: objdump.c:6137
msgid "unrecognized argument to --disassembler-color"
msgstr ""
-#: objdump.c:6052
+#: objdump.c:6148
msgid "unrecognized -E option"
msgstr ""
-#: objdump.c:6063
+#: objdump.c:6159
#, c-format
msgid "unrecognized --endian type `%s'"
msgstr ""
-#: od-elf32_avr.c:53
+#: 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"
-msgstr ""
-
-#: od-elf32_avr.c:200
-#, c-format
-msgid "Warning: textsize (%#lx) + datasize (%#lx) overflows size type\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 ""
-#: od-elf32_avr.c:210
+#: od-elf32_avr.c:190
#, c-format
msgid ""
-"Warning: textsize (%#lx) + datasize (%#lx) + bootloadersize (%#lx) overflows "
-"size type\n"
-msgstr ""
-
-#: od-elf32_avr.c:221
-#, c-format
-msgid "Warning: datatsize (%#lx) + bssssize (%#lx) overflows size type\n"
+"Warning: section %s has a negative size of %ld bytes, saturating to 0 bytes\n"
msgstr ""
-#: od-elf32_avr.c:232
+#: od-elf32_avr.c:197
#, c-format
msgid ""
-"Warning: datasize (%#lx) + bsssize (%#lx) + noinitsize (%#lx) overflows size "
-"type\n"
+"Warning: section %s has an impossible size of %lu bytes, truncating to %lu "
+"bytes\n"
msgstr ""
#: od-macho.c:75
@@ -7246,7 +7339,7 @@ msgstr ""
msgid "Time/Date:\t\t\t%#08lx\t- "
msgstr ""
-#: od-pe.c:388 od-xcoff.c:422 readelf.c:21071
+#: od-pe.c:388 od-xcoff.c:422 readelf.c:21680
#, c-format
msgid "not set\n"
msgstr ""
@@ -7288,7 +7381,7 @@ msgstr ""
msgid "Magic:\t\t\t\t%x\t\t- %s\n"
msgstr ""
-#: od-pe.c:425 od-pe.c:510 readelf.c:18925 readelf.c:18994
+#: od-pe.c:425 od-pe.c:510 readelf.c:19539 readelf.c:19608
msgid "Unknown"
msgstr ""
@@ -7474,48 +7567,123 @@ msgid ""
" Optional header not present\n"
msgstr ""
-#: od-pe.c:611
+#: od-pe.c:600
+#, c-format
+msgid "Align: 8192 "
+msgstr ""
+
+#: od-pe.c:602
+#, c-format
+msgid "Align: 4096 "
+msgstr ""
+
+#: od-pe.c:604
+#, c-format
+msgid "Align: 2048 "
+msgstr ""
+
+#: od-pe.c:606
+#, c-format
+msgid "Align: 1024 "
+msgstr ""
+
+#: od-pe.c:608
+#, c-format
+msgid "Align: 512 "
+msgstr ""
+
+#: od-pe.c:610
+#, c-format
+msgid "Align: 256 "
+msgstr ""
+
+#: od-pe.c:612
+#, c-format
+msgid "Align: 128 "
+msgstr ""
+
+#: od-pe.c:614
+#, c-format
+msgid "Align: 64 "
+msgstr ""
+
+#: od-pe.c:616
+#, c-format
+msgid "Align: 32 "
+msgstr ""
+
+#: od-pe.c:618
+#, c-format
+msgid "Align: 16 "
+msgstr ""
+
+#: od-pe.c:620
+#, c-format
+msgid "Align: 8 "
+msgstr ""
+
+#: od-pe.c:622
+#, c-format
+msgid "Align: 4 "
+msgstr ""
+
+#: od-pe.c:624
+#, c-format
+msgid "Align: 2 "
+msgstr ""
+
+#: od-pe.c:626
+#, c-format
+msgid "Align: 1 "
+msgstr ""
+
+#: od-pe.c:628
+#, c-format
+msgid "Align: *unknown* "
+msgstr ""
+
+#: od-pe.c:648
#, c-format
msgid ""
"\n"
"Section headers (at offset 0x%08x):\n"
msgstr ""
-#: od-pe.c:615
+#: od-pe.c:652
#, c-format
msgid " No section headers\n"
msgstr ""
-#: od-pe.c:620
+#: od-pe.c:657
msgid "cannot seek to section headers start\n"
msgstr ""
-#: od-pe.c:638 od-xcoff.c:535 od-xcoff.c:547 od-xcoff.c:602
+#: od-pe.c:675 od-xcoff.c:535 od-xcoff.c:547 od-xcoff.c:602
msgid "cannot read section header"
msgstr ""
-#: od-pe.c:655
+#: od-pe.c:692
#, c-format
msgid " %08x "
msgstr ""
-#: od-pe.c:657
+#: od-pe.c:694
#, c-format
msgid ""
"\n"
" Flags: %08x: "
msgstr ""
-#: od-pe.c:695
+#: od-pe.c:734
msgid "cannot seek to/read file header"
msgstr ""
-#: od-pe.c:715
+#: od-pe.c:754
#, c-format
msgid "cannot seek to/read image header at offset %#x"
msgstr ""
-#: od-pe.c:738
+#: od-pe.c:777
msgid "cannot seek to/read image header"
msgstr ""
@@ -7996,398 +8164,422 @@ msgstr ""
msgid "Last stabs entries before error:\n"
msgstr ""
-#: readelf.c:502
+#: readelf.c:509
#, c-format
msgid ""
"Size overflow prevents reading %<PRIu64> elements of size %<PRIu64> for %s\n"
msgstr ""
-#: readelf.c:515
+#: readelf.c:522
#, c-format
msgid "Reading %<PRIu64> bytes extends past end of file for %s\n"
msgstr ""
-#: readelf.c:524
+#: readelf.c:531
#, c-format
msgid "Unable to seek to %#<PRIx64> for %s\n"
msgstr ""
-#: readelf.c:538
+#: readelf.c:545
#, c-format
msgid "Out of memory allocating %<PRIu64> bytes for %s\n"
msgstr ""
-#: readelf.c:549
+#: readelf.c:556
#, c-format
msgid "Unable to read in %<PRIu64> bytes of %s\n"
msgstr ""
-#: readelf.c:900
+#: readelf.c:912
msgid "<internal error>"
msgstr ""
-#: readelf.c:902
+#: readelf.c:914
msgid "<none>"
msgstr ""
-#: readelf.c:904
+#: readelf.c:916
msgid "<no-strings>"
msgstr ""
-#: readelf.c:1039
+#: readelf.c:1051
#, c-format
msgid "BAD[0x%lx]"
msgstr ""
-#: readelf.c:1261
+#: readelf.c:1293
msgid "Don't know about relocations on this machine architecture\n"
msgstr ""
-#: readelf.c:1288 readelf.c:1388
+#: readelf.c:1320 readelf.c:1420
msgid "32-bit relocation data"
msgstr ""
-#: readelf.c:1300 readelf.c:1330 readelf.c:1399 readelf.c:1428 readelf.c:1502
+#: readelf.c:1332 readelf.c:1362 readelf.c:1431 readelf.c:1460
msgid "out of memory parsing relocs\n"
msgstr ""
-#: readelf.c:1318 readelf.c:1417
+#: readelf.c:1350 readelf.c:1449
msgid "64-bit relocation data"
msgstr ""
-#: readelf.c:1476
+#: readelf.c:1779 readelf.c:1846
msgid "RELR relocation data"
msgstr ""
-#: readelf.c:1616
+#: readelf.c:1842
+msgid "Unexpected entsize for RELR section\n"
+msgstr ""
+
+#: readelf.c:1867
#, c-format
-msgid " %<PRIu64> offset\n"
-msgid_plural " %<PRIu64> offsets\n"
-msgstr[0] ""
-msgstr[1] ""
+msgid "Index: Entry Address Symbolic Address\n"
+msgstr ""
+
+#: readelf.c:1869
+#, c-format
+msgid "Index: Entry Address Symbolic Address\n"
+msgstr ""
-#: readelf.c:1630
+#. We assume that there will never be more than 9999 entries.
+#: readelf.c:1881
+#, c-format
+msgid "%04u: "
+msgstr ""
+
+#: readelf.c:1903
+msgid "Unusual RELR bitmap - no previous entry to set the base address\n"
+msgstr ""
+
+#: readelf.c:1917
+#, c-format
+msgid ""
+"\n"
+"%*s "
+msgstr ""
+
+#: readelf.c:1973
#, c-format
msgid ""
" Offset Info Type Sym. Value Symbol's Name + Addend\n"
msgstr ""
-#: readelf.c:1632
+#: readelf.c:1975
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
msgstr ""
-#: readelf.c:1637
+#: readelf.c:1980
#, c-format
msgid " Offset Info Type Sym. Value Symbol's Name\n"
msgstr ""
-#: readelf.c:1639
+#: readelf.c:1982
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name\n"
msgstr ""
-#: readelf.c:1647
+#: readelf.c:1990
#, c-format
msgid ""
" Offset Info Type Symbol's Value "
"Symbol's Name + Addend\n"
msgstr ""
-#: readelf.c:1649
+#: readelf.c:1992
#, c-format
msgid ""
" Offset Info Type Sym. Value Sym. Name + "
"Addend\n"
msgstr ""
-#: readelf.c:1654
+#: readelf.c:1997
#, c-format
msgid ""
" Offset Info Type Symbol's Value "
"Symbol's Name\n"
msgstr ""
-#: readelf.c:1656
+#: readelf.c:1999
#, c-format
msgid ""
" Offset Info Type Sym. Value Sym. Name\n"
msgstr ""
-#: readelf.c:2036 readelf.c:2195 readelf.c:2203
+#: readelf.c:2379 readelf.c:2538 readelf.c:2546
#, c-format
msgid "unrecognized: %-7lx"
msgstr ""
-#: readelf.c:2062
+#: readelf.c:2405
#, c-format
msgid "<unknown addend: %<PRIx64>>"
msgstr ""
-#: readelf.c:2071
+#: readelf.c:2414
#, c-format
msgid " bad symbol index: %08lx in reloc\n"
msgstr ""
-#: readelf.c:2141
+#: readelf.c:2484
#, c-format
msgid "<string table index: %3ld>"
msgstr ""
-#: readelf.c:2144
+#: readelf.c:2487
#, c-format
msgid "<corrupt string table index: %3ld>\n"
msgstr ""
-#: readelf.c:2683
+#: readelf.c:3026
#, c-format
msgid "Processor Specific: %lx"
msgstr ""
-#: readelf.c:2710
+#: readelf.c:3053
#, c-format
msgid "Operating System specific: %lx"
msgstr ""
-#: readelf.c:2714 readelf.c:5183
+#: readelf.c:3057 readelf.c:5558
#, c-format
msgid "<unknown>: %lx"
msgstr ""
-#: readelf.c:2814
+#: readelf.c:3157
msgid "NONE (None)"
msgstr ""
-#: readelf.c:2815
+#: readelf.c:3158
msgid "REL (Relocatable file)"
msgstr ""
-#: readelf.c:2816
+#: readelf.c:3159
msgid "EXEC (Executable file)"
msgstr ""
-#: readelf.c:2819
+#: readelf.c:3162
msgid "DYN (Position-Independent Executable file)"
msgstr ""
-#: readelf.c:2821
+#: readelf.c:3164
msgid "DYN (Shared object file)"
msgstr ""
-#: readelf.c:2822
+#: readelf.c:3165
msgid "CORE (Core file)"
msgstr ""
-#: readelf.c:2826
+#: readelf.c:3169
#, c-format
msgid "Processor Specific: (%x)"
msgstr ""
-#: readelf.c:2828
+#: readelf.c:3171
#, c-format
msgid "OS Specific: (%x)"
msgstr ""
-#: readelf.c:2830
+#: readelf.c:3173
#, c-format
msgid "<unknown>: %x"
msgstr ""
#. Please keep this switch table sorted by increasing EM_ value.
#. 0
-#: readelf.c:2844 readelf.c:18923 readelf.c:18934
+#: readelf.c:3187 readelf.c:19537 readelf.c:19548
msgid "None"
msgstr ""
-#: readelf.c:3092
+#: readelf.c:3435
#, c-format
msgid "<unknown>: 0x%x"
msgstr ""
-#: readelf.c:3379
+#: readelf.c:3718
msgid ", <unknown>"
msgstr ""
-#: readelf.c:3546
+#: readelf.c:3885
#, c-format
msgid "Unrecognised IA64 VMS Command Code: %x\n"
msgstr ""
-#: readelf.c:3583
+#: readelf.c:3922
msgid "unknown mac"
msgstr ""
-#: readelf.c:3667
+#: readelf.c:4006
msgid ", <unknown MeP cpu type>"
msgstr ""
-#: readelf.c:3688
+#: readelf.c:4027
msgid "<unknown MeP copro type>"
msgstr ""
-#: readelf.c:3700 readelf.c:4649
+#: readelf.c:4039 readelf.c:4988
#, c-format
msgid ", unknown flags bits: %#x"
msgstr ""
-#: readelf.c:3809
+#: readelf.c:4148
msgid ", unknown CPU"
msgstr ""
-#: readelf.c:3834
+#: readelf.c:4173
msgid ", unknown ABI"
msgstr ""
-#: readelf.c:3883 readelf.c:4330
+#: readelf.c:4222 readelf.c:4669
msgid ", unknown ISA"
msgstr ""
-#: readelf.c:3892
+#: readelf.c:4231
msgid ": architecture variant: "
msgstr ""
-#: readelf.c:3941
+#: readelf.c:4280
msgid ": unknown"
msgstr ""
-#: readelf.c:3946
+#: readelf.c:4285
msgid ": unknown extra flag bits also present"
msgstr ""
-#: readelf.c:4469
+#: readelf.c:4808
msgid ", unknown v850 architecture variant"
msgstr ""
-#: readelf.c:4502
+#: readelf.c:4841
msgid ", unknown"
msgstr ""
-#: readelf.c:4568
+#: readelf.c:4907
#, c-format
msgid ", <unknown AMDGPU GPU type: %#x>"
msgstr ""
-#: readelf.c:4616
+#: readelf.c:4955
#, c-format
msgid ", <unknown xnack value: %#x>"
msgstr ""
-#: readelf.c:4641
+#: readelf.c:4980
#, c-format
msgid ", <unknown sramecc value: %#x>"
msgstr ""
-#: readelf.c:4714
+#: readelf.c:5053
msgid ", relocatable"
msgstr ""
-#: readelf.c:4717
+#: readelf.c:5056
msgid ", relocatable-lib"
msgstr ""
-#: readelf.c:4917
+#: readelf.c:5257
msgid "Standalone App"
msgstr ""
-#: readelf.c:4926
+#: readelf.c:5266
msgid "Bare-metal C6000"
msgstr ""
-#: readelf.c:4936 readelf.c:6207 readelf.c:6223 readelf.c:20368
-#: readelf.c:20468 readelf.c:20515 readelf.c:20552 readelf.c:20613
-#: readelf.c:20640 readelf.c:20662
+#: 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
#, c-format
msgid "<unknown: %x>"
msgstr ""
#. This message is probably going to be displayed in a 15
#. character wide field, so put the hex value first.
-#: readelf.c:5555
+#: readelf.c:6052
#, c-format
msgid "%08x: <unknown>"
msgstr ""
-#: readelf.c:5648
+#: readelf.c:6144
#, c-format
msgid "Usage: readelf <option(s)> elf-file(s)\n"
msgstr ""
-#: readelf.c:5649
+#: readelf.c:6145
#, c-format
msgid " Display information about the contents of ELF format files\n"
msgstr ""
-#: readelf.c:5650
+#: readelf.c:6146
#, c-format
msgid " Options are:\n"
msgstr ""
-#: readelf.c:5651
+#: readelf.c:6147
#, c-format
msgid " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
msgstr ""
-#: readelf.c:5653
+#: readelf.c:6149
#, c-format
msgid " -h --file-header Display the ELF file header\n"
msgstr ""
-#: readelf.c:5655
+#: readelf.c:6151
#, c-format
msgid " -l --program-headers Display the program headers\n"
msgstr ""
-#: readelf.c:5657
+#: readelf.c:6153
#, c-format
msgid " --segments An alias for --program-headers\n"
msgstr ""
-#: readelf.c:5659
+#: readelf.c:6155
#, c-format
msgid " -S --section-headers Display the sections' header\n"
msgstr ""
-#: readelf.c:5661
+#: readelf.c:6157
#, c-format
msgid " --sections An alias for --section-headers\n"
msgstr ""
-#: readelf.c:5663
+#: readelf.c:6159
#, c-format
msgid " -g --section-groups Display the section groups\n"
msgstr ""
-#: readelf.c:5665
+#: readelf.c:6161
#, c-format
msgid " -t --section-details Display the section details\n"
msgstr ""
-#: readelf.c:5667
+#: readelf.c:6163
#, c-format
msgid " -e --headers Equivalent to: -h -l -S\n"
msgstr ""
-#: readelf.c:5669
+#: readelf.c:6165
#, c-format
msgid " -s --syms Display the symbol table\n"
msgstr ""
-#: readelf.c:5671
+#: readelf.c:6167
#, c-format
msgid " --symbols An alias for --syms\n"
msgstr ""
-#: readelf.c:5673
+#: readelf.c:6169
#, c-format
msgid " --dyn-syms Display the dynamic symbol table\n"
msgstr ""
-#: readelf.c:5675
+#: readelf.c:6171
#, c-format
msgid " --lto-syms Display LTO symbol tables\n"
msgstr ""
-#: readelf.c:5677
+#: readelf.c:6173
#, c-format
msgid ""
" --sym-base=[0|8|10|16] \n"
@@ -8395,29 +8587,29 @@ msgid ""
" mixed (the default), octal, decimal, hexadecimal.\n"
msgstr ""
-#: readelf.c:5681
+#: readelf.c:6177
#, c-format
msgid " -C --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr ""
-#: readelf.c:5685
+#: readelf.c:6181
#, c-format
msgid ""
" --no-demangle Do not demangle low-level symbol names. (default)\n"
msgstr ""
-#: readelf.c:5687
+#: readelf.c:6183
#, c-format
msgid ""
" --recurse-limit Enable a demangling recursion limit. (default)\n"
msgstr ""
-#: readelf.c:5689
+#: readelf.c:6185
#, c-format
msgid " --no-recurse-limit Disable a demangling recursion limit\n"
msgstr ""
-#: readelf.c:5691
+#: readelf.c:6187
#, c-format
msgid ""
" -U[dlexhi] --unicode=[default|locale|escape|hex|highlight|invalid]\n"
@@ -8430,71 +8622,71 @@ msgid ""
" \"{hex sequences}\"\n"
msgstr ""
-#: readelf.c:5697
+#: readelf.c:6193
#, c-format
msgid ""
" -X --extra-sym-info Display extra information when showing symbols\n"
msgstr ""
-#: readelf.c:5699
+#: readelf.c:6195
#, c-format
msgid ""
" --no-extra-sym-info Do not display extra information when showing "
"symbols (default)\n"
msgstr ""
-#: readelf.c:5701
+#: readelf.c:6197
#, c-format
msgid ""
" -n --notes Display the contents of note sections (if present)\n"
msgstr ""
-#: readelf.c:5703
+#: readelf.c:6199
#, c-format
msgid " -r --relocs Display the relocations (if present)\n"
msgstr ""
-#: readelf.c:5705
+#: readelf.c:6201
#, c-format
msgid " -u --unwind Display the unwind info (if present)\n"
msgstr ""
-#: readelf.c:5707
+#: readelf.c:6203
#, c-format
msgid " -d --dynamic Display the dynamic section (if present)\n"
msgstr ""
-#: readelf.c:5709
+#: readelf.c:6205
#, c-format
msgid " -V --version-info Display the version sections (if present)\n"
msgstr ""
-#: readelf.c:5711
+#: readelf.c:6207
#, c-format
msgid ""
" -A --arch-specific Display architecture specific information (if any)\n"
msgstr ""
-#: readelf.c:5713
+#: readelf.c:6209
#, c-format
msgid " -c --archive-index Display the symbol/file index in an archive\n"
msgstr ""
-#: readelf.c:5715
+#: readelf.c:6211
#, c-format
msgid ""
" -D --use-dynamic Use the dynamic section info when displaying "
"symbols\n"
msgstr ""
-#: readelf.c:5717
+#: readelf.c:6213
#, c-format
msgid ""
" -L --lint|--enable-checks\n"
" Display warning messages for possible problems\n"
msgstr ""
-#: readelf.c:5720
+#: readelf.c:6216
#, c-format
msgid ""
" -x --hex-dump=<number|name>\n"
@@ -8502,7 +8694,7 @@ msgid ""
"bytes\n"
msgstr ""
-#: readelf.c:5723
+#: readelf.c:6219
#, c-format
msgid ""
" -p --string-dump=<number|name>\n"
@@ -8510,7 +8702,7 @@ msgid ""
"strings\n"
msgstr ""
-#: readelf.c:5726
+#: readelf.c:6222
#, c-format
msgid ""
" -R --relocated-dump=<number|name>\n"
@@ -8518,12 +8710,21 @@ msgid ""
"name>\n"
msgstr ""
-#: readelf.c:5729
+#: readelf.c:6225
#, c-format
msgid " -z --decompress Decompress section before dumping it\n"
msgstr ""
-#: readelf.c:5731
+#: readelf.c:6227
+#, c-format
+msgid ""
+"\n"
+" -j --display-section=<name|number>\n"
+"\t\t Display the contents of the indicated section. Can be "
+"repeated\n"
+msgstr ""
+
+#: readelf.c:6230
#, c-format
msgid ""
" -w --debug-dump[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/"
@@ -8538,7 +8739,7 @@ msgid ""
" Display the contents of DWARF debug sections\n"
msgstr ""
-#: readelf.c:5738
+#: readelf.c:6237
#, c-format
msgid ""
" -wk --debug-dump=links Display the contents of sections that link to "
@@ -8546,7 +8747,7 @@ msgid ""
" debuginfo files\n"
msgstr ""
-#: readelf.c:5741
+#: readelf.c:6240
#, c-format
msgid ""
" -P --process-links Display the contents of non-debug sections in "
@@ -8554,7 +8755,7 @@ msgid ""
" debuginfo files. (Implies -wK)\n"
msgstr ""
-#: readelf.c:5745
+#: readelf.c:6244
#, c-format
msgid ""
" -wK --debug-dump=follow-links\n"
@@ -8562,21 +8763,21 @@ msgid ""
"(default)\n"
msgstr ""
-#: readelf.c:5748
+#: readelf.c:6247
#, c-format
msgid ""
" -wN --debug-dump=no-follow-links\n"
" Do not follow links to separate debug info files\n"
msgstr ""
-#: readelf.c:5752
+#: readelf.c:6251
#, c-format
msgid ""
" -wK --debug-dump=follow-links\n"
" Follow links to separate debug info files\n"
msgstr ""
-#: readelf.c:5755
+#: readelf.c:6254
#, c-format
msgid ""
" -wN --debug-dump=no-follow-links\n"
@@ -8584,7 +8785,7 @@ msgid ""
" (default)\n"
msgstr ""
-#: readelf.c:5761
+#: readelf.c:6260
#, c-format
msgid ""
" -wD --debug-dump=use-debuginfod\n"
@@ -8592,7 +8793,7 @@ msgid ""
"(default)\n"
msgstr ""
-#: readelf.c:5764
+#: readelf.c:6263
#, c-format
msgid ""
" -wE --debug-dump=do-not-use-debuginfod\n"
@@ -8600,28 +8801,28 @@ msgid ""
"servers\n"
msgstr ""
-#: readelf.c:5768
+#: readelf.c:6267
#, c-format
msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
msgstr ""
-#: readelf.c:5770
+#: readelf.c:6269
#, c-format
msgid " --dwarf-start=N Display DIEs starting at offset N\n"
msgstr ""
-#: readelf.c:5773
+#: readelf.c:6272
#, c-format
msgid " --ctf=<number|name> Display CTF info from section <number|name>\n"
msgstr ""
-#: readelf.c:5775
+#: readelf.c:6274
#, c-format
msgid ""
" --ctf-parent=<name> Use CTF archive member <name> as the CTF parent\n"
msgstr ""
-#: readelf.c:5777
+#: readelf.c:6276
#, c-format
msgid ""
" --ctf-symbols=<number|name>\n"
@@ -8629,7 +8830,7 @@ msgid ""
"symtab\n"
msgstr ""
-#: readelf.c:5780
+#: readelf.c:6279
#, c-format
msgid ""
" --ctf-strings=<number|name>\n"
@@ -8637,651 +8838,651 @@ msgid ""
"strtab\n"
msgstr ""
-#: readelf.c:5784
+#: readelf.c:6283
#, c-format
msgid ""
" --sframe[=NAME] Display SFrame info from section NAME, (default '."
"sframe')\n"
msgstr ""
-#: readelf.c:5788
+#: readelf.c:6287
#, c-format
msgid ""
" -i --instruction-dump=<number|name>\n"
" Disassemble the contents of section <number|name>\n"
msgstr ""
-#: readelf.c:5792
+#: readelf.c:6291
#, c-format
msgid " -I --histogram Display histogram of bucket list lengths\n"
msgstr ""
-#: readelf.c:5794
+#: readelf.c:6293
#, c-format
msgid " -W --wide Allow output width to exceed 80 characters\n"
msgstr ""
-#: readelf.c:5796
+#: readelf.c:6295
#, c-format
msgid ""
" -T --silent-truncation If a symbol name is truncated, do not add [...] "
"suffix\n"
msgstr ""
-#: readelf.c:5798
+#: readelf.c:6297
#, c-format
msgid " @<file> Read options from <file>\n"
msgstr ""
-#: readelf.c:5800
+#: readelf.c:6299
#, c-format
msgid " -H --help Display this information\n"
msgstr ""
-#: readelf.c:5802
+#: readelf.c:6301
#, c-format
msgid " -v --version Display the version number of readelf\n"
msgstr ""
-#: readelf.c:5828 readelf.c:5859 readelf.c:5863
+#: readelf.c:6327 readelf.c:6358 readelf.c:6362
msgid "Out of memory allocating dump request table.\n"
msgstr ""
-#: readelf.c:6130
+#: readelf.c:6632
msgid "Missing arg to -U/--unicode"
msgstr ""
-#: readelf.c:6169
+#: readelf.c:6671
#, c-format
msgid "Invalid option '-%c'\n"
msgstr ""
-#: readelf.c:6203 readelf.c:6219 readelf.c:12560
+#: readelf.c:6705 readelf.c:6721 readelf.c:13104
msgid "none"
msgstr ""
-#: readelf.c:6220
+#: readelf.c:6722
msgid "2's complement, little endian"
msgstr ""
-#: readelf.c:6221
+#: readelf.c:6723
msgid "2's complement, big endian"
msgstr ""
-#: readelf.c:6254
+#: readelf.c:6756
msgid "This is a LLVM bitcode file - try using llvm-bcanalyzer\n"
msgstr ""
-#: readelf.c:6255
+#: readelf.c:6757
msgid ""
"This is a LLVM bitcode file - try extracting and then using llvm-bcanalyzer\n"
msgstr ""
-#: readelf.c:6258
+#: readelf.c:6760
msgid ""
"This is a GO binary file - try using 'go tool objdump' or 'go tool nm'\n"
msgstr ""
-#: readelf.c:6282
+#: readelf.c:6784
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr ""
-#: readelf.c:6304
+#: readelf.c:6806
#, c-format
msgid "ELF Header in linked file '%s':\n"
msgstr ""
-#: readelf.c:6306
+#: readelf.c:6808
#, c-format
msgid "ELF Header:\n"
msgstr ""
-#: readelf.c:6307
+#: readelf.c:6809
#, c-format
msgid " Magic: "
msgstr ""
-#: readelf.c:6311
+#: readelf.c:6813
#, c-format
msgid " Class: %s\n"
msgstr ""
-#: readelf.c:6313
+#: readelf.c:6815
#, c-format
msgid " Data: %s\n"
msgstr ""
-#: readelf.c:6315
+#: readelf.c:6817
#, c-format
msgid " Version: %d%s\n"
msgstr ""
-#: readelf.c:6318
+#: readelf.c:6820
msgid " (current)"
msgstr ""
-#: readelf.c:6320
+#: readelf.c:6822
msgid " <unknown>"
msgstr ""
-#: readelf.c:6322
+#: readelf.c:6824
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: readelf.c:6324
+#: readelf.c:6826
#, c-format
msgid " ABI Version: %d\n"
msgstr ""
-#: readelf.c:6326
+#: readelf.c:6828
#, c-format
msgid " Type: %s\n"
msgstr ""
-#: readelf.c:6328
+#: readelf.c:6830
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: readelf.c:6330
+#: readelf.c:6832
#, c-format
msgid " Version: 0x%lx\n"
msgstr ""
-#: readelf.c:6333
+#: readelf.c:6835
#, c-format
msgid " Entry point address: "
msgstr ""
-#: readelf.c:6335
+#: readelf.c:6837
#, c-format
msgid ""
"\n"
" Start of program headers: "
msgstr ""
-#: readelf.c:6337
+#: readelf.c:6839
#, c-format
msgid ""
" (bytes into file)\n"
" Start of section headers: "
msgstr ""
-#: readelf.c:6339
+#: readelf.c:6841
#, c-format
msgid " (bytes into file)\n"
msgstr ""
-#: readelf.c:6341
+#: readelf.c:6843
#, c-format
msgid " Flags: 0x%lx%s\n"
msgstr ""
-#: readelf.c:6344
+#: readelf.c:6846
#, c-format
msgid " Size of this header: %u (bytes)\n"
msgstr ""
-#: readelf.c:6346
+#: readelf.c:6848
#, c-format
msgid " Size of program headers: %u (bytes)\n"
msgstr ""
-#: readelf.c:6348
+#: readelf.c:6850
#, c-format
msgid " Number of program headers: %u"
msgstr ""
-#: readelf.c:6355
+#: readelf.c:6857
#, c-format
msgid " Size of section headers: %u (bytes)\n"
msgstr ""
-#: readelf.c:6357
+#: readelf.c:6859
#, c-format
msgid " Number of section headers: %u"
msgstr ""
-#: readelf.c:6365
+#: readelf.c:6867
#, c-format
msgid " Section header string table index: %u"
msgstr ""
-#: readelf.c:6377
+#: readelf.c:6879
#, c-format
msgid " <corrupt: out of range>"
msgstr ""
-#: readelf.c:6421 readelf.c:6468
+#: readelf.c:6923 readelf.c:6970
msgid ""
"The e_phentsize field in the ELF header is less than the size of an ELF "
"program header\n"
msgstr ""
-#: readelf.c:6425 readelf.c:6472
+#: readelf.c:6927 readelf.c:6974
msgid ""
"The e_phentsize field in the ELF header is larger than the size of an ELF "
"program header\n"
msgstr ""
-#: readelf.c:6428 readelf.c:6475
+#: readelf.c:6930 readelf.c:6977
msgid "program headers"
msgstr ""
-#: readelf.c:6514
+#: readelf.c:7016
#, c-format
msgid "Too many program headers - %#x - the file is not that big\n"
msgstr ""
-#: readelf.c:6523
+#: readelf.c:7025
#, c-format
msgid "Out of memory reading %u program headers\n"
msgstr ""
-#: readelf.c:6553
+#: readelf.c:7055
msgid ""
"possibly corrupt ELF header - it has a non-zero program header offset, but "
"no program headers\n"
msgstr ""
-#: readelf.c:6558
+#: readelf.c:7060
#, c-format
msgid ""
"\n"
"There are no program headers in linked file '%s'.\n"
msgstr ""
-#: readelf.c:6561
+#: readelf.c:7063
#, c-format
msgid ""
"\n"
"There are no program headers in this file.\n"
msgstr ""
-#: readelf.c:6572
+#: readelf.c:7074
#, c-format
msgid ""
"\n"
"Elf file type is %s\n"
msgstr ""
-#: readelf.c:6573
+#: readelf.c:7075
#, c-format
msgid "Entry point 0x%<PRIx64>\n"
msgstr ""
-#: readelf.c:6575
+#: readelf.c:7077
#, 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] ""
msgstr[1] ""
-#: readelf.c:6590 readelf.c:6592
+#: readelf.c:7092 readelf.c:7094
#, c-format
msgid ""
"\n"
"Program Headers:\n"
msgstr ""
-#: readelf.c:6596
+#: readelf.c:7098
#, c-format
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr ""
-#: readelf.c:6599
+#: readelf.c:7101
#, c-format
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz "
"MemSiz Flg Align\n"
msgstr ""
-#: readelf.c:6603
+#: readelf.c:7105
#, c-format
msgid " Type Offset VirtAddr PhysAddr\n"
msgstr ""
-#: readelf.c:6605
+#: readelf.c:7107
#, c-format
msgid " FileSiz MemSiz Flags Align\n"
msgstr ""
-#: readelf.c:6703
+#: readelf.c:7205
msgid "LOAD segments must be sorted in order of increasing VirtAddr\n"
msgstr ""
-#: readelf.c:6706
+#: readelf.c:7208
msgid "the segment's file size is larger than its memory size\n"
msgstr ""
-#: readelf.c:6713
+#: readelf.c:7215
msgid "the PHDR segment must occur before any LOAD segment\n"
msgstr ""
-#: readelf.c:6731
+#: readelf.c:7233
msgid "the PHDR segment is not covered by a LOAD segment\n"
msgstr ""
-#: readelf.c:6737
+#: readelf.c:7239
msgid "more than one dynamic segment\n"
msgstr ""
-#: readelf.c:6756
+#: readelf.c:7258
msgid "no .dynamic section in the dynamic segment\n"
msgstr ""
-#: readelf.c:6775
+#: readelf.c:7277
msgid "the .dynamic section is not the same as the dynamic segment\n"
msgstr ""
-#: readelf.c:6786
+#: readelf.c:7288
msgid "the dynamic segment offset + size exceeds the size of the file\n"
msgstr ""
-#: readelf.c:6799
+#: readelf.c:7301
msgid "Unable to find program interpreter name\n"
msgstr ""
-#: readelf.c:6810
+#: readelf.c:7312
#, c-format
msgid " [Requesting program interpreter: %s]\n"
msgstr ""
-#: readelf.c:6821
+#: readelf.c:7323
#, c-format
msgid ""
"\n"
" Section to Segment mapping:\n"
msgstr ""
-#: readelf.c:6822
+#: readelf.c:7324
#, c-format
msgid " Segment Sections...\n"
msgstr ""
-#: readelf.c:6864 readelf.c:11845
+#: readelf.c:7366 readelf.c:12389
msgid "Cannot interpret virtual addresses without program headers.\n"
msgstr ""
-#: readelf.c:6880
+#: readelf.c:7382
#, c-format
msgid "Virtual address %#<PRIx64> not located in any PT_LOAD segment.\n"
msgstr ""
-#: readelf.c:6912 readelf.c:6982
+#: readelf.c:7414 readelf.c:7484
msgid ""
"The e_shentsize field in the ELF header is less than the size of an ELF "
"section header\n"
msgstr ""
-#: readelf.c:6916 readelf.c:6987
+#: readelf.c:7418 readelf.c:7489
msgid ""
"The e_shentsize field in the ELF header is larger than the size of an ELF "
"section header\n"
msgstr ""
-#: readelf.c:6920 readelf.c:6992
+#: readelf.c:7422 readelf.c:7494
msgid "section headers"
msgstr ""
-#: readelf.c:6929 readelf.c:7001
+#: readelf.c:7431 readelf.c:7503
#, c-format
msgid "Out of memory reading %u section headers\n"
msgstr ""
-#: readelf.c:6949 readelf.c:7021
+#: readelf.c:7451 readelf.c:7523
#, c-format
msgid "Section %u has an out of range sh_link value of %u\n"
msgstr ""
-#: readelf.c:6951 readelf.c:7023
+#: readelf.c:7453 readelf.c:7525
#, c-format
msgid "Section %u has an out of range sh_info value of %u\n"
msgstr ""
-#: readelf.c:7065 readelf.c:7182
+#: readelf.c:7567 readelf.c:7684
#, c-format
msgid "Section %s has an invalid sh_entsize of %#<PRIx64>\n"
msgstr ""
-#: readelf.c:7073 readelf.c:7190 readelf.c:13867
+#: readelf.c:7575 readelf.c:7692 readelf.c:14411
#, c-format
msgid "Section %s has an invalid sh_size of %#<PRIx64>\n"
msgstr ""
-#: readelf.c:7083 readelf.c:7200
+#: readelf.c:7585 readelf.c:7702
#, c-format
msgid ""
"Size (%#<PRIx64>) of section %s is not a multiple of its sh_entsize (%"
"#<PRIx64>)\n"
msgstr ""
-#: readelf.c:7092 readelf.c:7209 readelf.c:16435
+#: readelf.c:7594 readelf.c:7711 readelf.c:16989
msgid "symbols"
msgstr ""
-#: readelf.c:7104 readelf.c:7221
+#: readelf.c:7606 readelf.c:7723
msgid ""
"Multiple symbol table index sections associated with the same symbol "
"section\n"
msgstr ""
-#: readelf.c:7111 readelf.c:7228
+#: readelf.c:7613 readelf.c:7730
msgid "symbol table section indices"
msgstr ""
-#: readelf.c:7118 readelf.c:7235
+#: readelf.c:7620 readelf.c:7737
#, c-format
msgid "Index section %s has an sh_size of %#<PRIx64> - expected %#<PRIx64>\n"
msgstr ""
-#: readelf.c:7130 readelf.c:7247
+#: readelf.c:7632 readelf.c:7749
#, c-format
msgid "Out of memory reading %<PRIu64> symbols\n"
msgstr ""
-#: readelf.c:7450 readelf.c:7546 readelf.c:7563 readelf.c:7580
+#: readelf.c:7952 readelf.c:8048 readelf.c:8065 readelf.c:8082
msgid "Internal error: not enough buffer room for section flag info"
msgstr ""
-#: readelf.c:7588
+#: readelf.c:8090
#, c-format
msgid "UNKNOWN (%*.*lx)"
msgstr ""
-#: readelf.c:7607 readelf.c:7622
+#: readelf.c:8109 readelf.c:8124
msgid "Compressed section is too small even for a compression header\n"
msgstr ""
-#: readelf.c:7644
+#: readelf.c:8146
msgid ""
"possibly corrupt ELF file header - it has a non-zero section header offset, "
"but no section headers\n"
msgstr ""
-#: readelf.c:7649
+#: readelf.c:8151
#, c-format
msgid ""
"\n"
"There are no sections in this file.\n"
msgstr ""
-#: readelf.c:7657 readelf.c:22440
+#: readelf.c:8159 readelf.c:23054
#, c-format
msgid "In linked file '%s': "
msgstr ""
-#: readelf.c:7659
+#: readelf.c:8161
#, 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] ""
msgstr[1] ""
-#: readelf.c:7681 readelf.c:8357 readelf.c:8558 readelf.c:14209
-#: readelf.c:16841
+#: readelf.c:8183 readelf.c:8865 readelf.c:9066 readelf.c:14696
+#: readelf.c:17395
msgid "string table"
msgstr ""
-#: readelf.c:7743
+#: readelf.c:8245
#, c-format
msgid "Section %d has invalid sh_entsize of %<PRIx64>\n"
msgstr ""
-#: readelf.c:7745
+#: readelf.c:8247
#, c-format
msgid "(Using the expected size of %<PRIx64> for the rest of this dump)\n"
msgstr ""
-#: readelf.c:7769
+#: readelf.c:8271
msgid "File contains multiple dynamic symbol tables\n"
msgstr ""
-#: readelf.c:7784
+#: readelf.c:8286
msgid "File contains multiple dynamic string tables\n"
msgstr ""
-#: readelf.c:7790
+#: readelf.c:8292
msgid "dynamic strings"
msgstr ""
-#: readelf.c:7818 readelf.c:7824
+#: readelf.c:8320 readelf.c:8326
#, c-format
msgid "Section '%s': zero-sized relocation section\n"
msgstr ""
-#: readelf.c:7837
+#: readelf.c:8339
#, c-format
msgid "Section '%s': has a size of zero - is this intended ?\n"
msgstr ""
-#: readelf.c:7921
+#: readelf.c:8425
#, c-format
msgid ""
"\n"
"Section Headers in linked file '%s':\n"
msgstr ""
-#: readelf.c:7923
+#: readelf.c:8427
#, c-format
msgid ""
"\n"
"Section Headers:\n"
msgstr ""
-#: readelf.c:7925
+#: readelf.c:8429
#, c-format
msgid ""
"\n"
"Section Header:\n"
msgstr ""
-#: readelf.c:7931 readelf.c:7942 readelf.c:7953
+#: readelf.c:8435 readelf.c:8446 readelf.c:8457
#, c-format
msgid " [Nr] Name\n"
msgstr ""
-#: readelf.c:7932
+#: readelf.c:8436
#, c-format
msgid " Type Addr Off Size ES Lk Inf Al\n"
msgstr ""
-#: readelf.c:7936
+#: readelf.c:8440
#, c-format
msgid ""
" [Nr] Name Type Addr Off Size ES Flg Lk "
"Inf Al\n"
msgstr ""
-#: readelf.c:7943
+#: readelf.c:8447
#, c-format
msgid " Type Address Off Size ES Lk Inf Al\n"
msgstr ""
-#: readelf.c:7947
+#: readelf.c:8451
#, c-format
msgid ""
" [Nr] Name Type Address Off Size ES "
"Flg Lk Inf Al\n"
msgstr ""
-#: readelf.c:7954
+#: readelf.c:8458
#, c-format
msgid " Type Address Offset Link\n"
msgstr ""
-#: readelf.c:7955
+#: readelf.c:8459
#, c-format
msgid " Size EntSize Info Align\n"
msgstr ""
-#: readelf.c:7959
+#: readelf.c:8463
#, c-format
msgid " [Nr] Name Type Address Offset\n"
msgstr ""
-#: readelf.c:7960
+#: readelf.c:8464
#, c-format
msgid " Size EntSize Flags Link Info Align\n"
msgstr ""
-#: readelf.c:7965
+#: readelf.c:8469
#, c-format
msgid " Flags\n"
msgstr ""
-#: readelf.c:7994
+#: readelf.c:8499
#, c-format
msgid "[%2u]: Link field (%u) should index a symtab section.\n"
msgstr ""
-#: readelf.c:8007
+#: readelf.c:8512
#, c-format
msgid "[%2u]: Link field (%u) should index a string section.\n"
msgstr ""
-#: readelf.c:8015 readelf.c:8026
+#: readelf.c:8520 readelf.c:8531
#, c-format
msgid "[%2u]: Unexpected value (%u) in link field.\n"
msgstr ""
-#: readelf.c:8053
+#: readelf.c:8558
#, c-format
msgid "[%2u]: Info field (%u) should index a relocatable section.\n"
msgstr ""
-#: readelf.c:8064 readelf.c:8091
+#: readelf.c:8569 readelf.c:8596
#, c-format
msgid "[%2u]: Unexpected value (%u) in info field.\n"
msgstr ""
-#: readelf.c:8086
+#: readelf.c:8591
#, c-format
msgid "[%2u]: Expected link to another section in info field"
msgstr ""
-#: readelf.c:8101
+#: readelf.c:8606
#, c-format
msgid "Size of section %u is larger than the entire file!\n"
msgstr ""
-#: readelf.c:8170
+#: readelf.c:8675
#, c-format
msgid "section %u: sh_link value of %u is larger than the number of sections\n"
msgstr ""
-#: readelf.c:8271
+#: readelf.c:8776
msgid "compression header"
msgstr ""
-#: readelf.c:8276
+#: readelf.c:8781
#, c-format
msgid " [<corrupt>]\n"
msgstr ""
-#: readelf.c:8284
+#: readelf.c:8789
#, c-format
msgid " [<unknown>: 0x%x], "
msgstr ""
@@ -9289,7 +9490,7 @@ msgstr ""
#. 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:8299
+#: readelf.c:8804
#, c-format
msgid ""
"Key to Flags:\n"
@@ -9299,347 +9500,360 @@ msgid ""
" "
msgstr ""
-#: readelf.c:8307
+#: readelf.c:8812
#, c-format
msgid "R (retain), "
msgstr ""
-#: readelf.c:8310
+#: readelf.c:8815
#, c-format
msgid "D (mbind), "
msgstr ""
-#: readelf.c:8318
+#: readelf.c:8823
#, c-format
msgid "l (large), "
msgstr ""
-#: readelf.c:8320
+#: readelf.c:8825
#, c-format
msgid "y (purecode), "
msgstr ""
-#: readelf.c:8322
+#: readelf.c:8827
#, c-format
msgid "v (VLE), "
msgstr ""
-#: readelf.c:8347
+#: readelf.c:8855
msgid "Bad sh_link in symbol table section\n"
msgstr ""
-#: readelf.c:8382
+#: readelf.c:8890
msgid "<OS specific>"
msgstr ""
-#: readelf.c:8383
+#: readelf.c:8891
msgid "<PROC specific>"
msgstr ""
-#: readelf.c:8412
+#: readelf.c:8920
#, c-format
msgid ""
"\n"
"There are no sections group in linked file '%s'.\n"
msgstr ""
-#: readelf.c:8415 readelf.c:8454
+#: readelf.c:8923 readelf.c:8962
#, c-format
msgid ""
"\n"
"There are no section groups in this file.\n"
msgstr ""
-#: readelf.c:8422
+#: readelf.c:8930
msgid "Section headers are not available!\n"
msgstr ""
-#: readelf.c:8433
+#: readelf.c:8941
#, c-format
msgid "Out of memory reading %u section group headers\n"
msgstr ""
-#: readelf.c:8451
+#: readelf.c:8959
#, c-format
msgid ""
"\n"
"There are no section groups in linked file '%s'.\n"
msgstr ""
-#: readelf.c:8465
+#: readelf.c:8973
#, c-format
msgid "Out of memory reading %zu groups\n"
msgstr ""
-#: readelf.c:8477
+#: readelf.c:8985
#, c-format
msgid "Section groups in linked file '%s'\n"
msgstr ""
-#: readelf.c:8498
+#: readelf.c:9006
#, c-format
msgid "Bad sh_link in group section `%s'\n"
msgstr ""
-#: readelf.c:8511
+#: readelf.c:9019
#, c-format
msgid "Corrupt header in group section `%s'\n"
msgstr ""
-#: readelf.c:8517 readelf.c:8528
+#: readelf.c:9025 readelf.c:9036
#, c-format
msgid "Bad sh_info in group section `%s'\n"
msgstr ""
-#: readelf.c:8568
+#: readelf.c:9076
#, c-format
msgid ""
"Section %s has sh_entsize (%#<PRIx64>) which is larger than its size (%"
"#<PRIx64>)\n"
msgstr ""
-#: readelf.c:8578
+#: readelf.c:9086
msgid "section data"
msgstr ""
-#: readelf.c:8589
+#: readelf.c:9097
#, c-format
msgid ""
"\n"
"%sgroup section [%5u] `%s' [%s] contains %u sections:\n"
msgstr ""
-#: readelf.c:8592
+#: readelf.c:9100
#, c-format
msgid " [Index] Name\n"
msgstr ""
-#: readelf.c:8610
+#: readelf.c:9118
#, c-format
msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
msgstr ""
-#: readelf.c:8613
+#: readelf.c:9121
msgid ""
"Further error messages about overlarge group section indices suppressed\n"
msgstr ""
-#: readelf.c:8626
+#: readelf.c:9134
#, c-format
msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
msgstr ""
-#: readelf.c:8630
+#: readelf.c:9138
msgid ""
"Further error messages about already contained group sections suppressed\n"
msgstr ""
-#: readelf.c:8642
+#: readelf.c:9150
#, c-format
msgid "section 0 in group section [%5u]\n"
msgstr ""
-#: readelf.c:8709
+#: readelf.c:9217
msgid "dynamic section image fixups"
msgstr ""
-#: readelf.c:8717
+#: readelf.c:9225
#, c-format
msgid "corrupt library name index of %#<PRIx64> found in dynamic entry"
msgstr ""
-#: readelf.c:8722
+#: readelf.c:9230
#, c-format
msgid ""
"\n"
"Image fixups for needed library #%<PRId64>: %s - ident: %<PRIx64>\n"
msgstr ""
-#: readelf.c:8726
+#: readelf.c:9234
#, c-format
msgid "Seg Offset Type SymVec DataType\n"
msgstr ""
-#: readelf.c:8760
+#: readelf.c:9268
msgid "dynamic section image relocations"
msgstr ""
-#: readelf.c:8764
+#: readelf.c:9272
#, c-format
msgid ""
"\n"
"Image relocs\n"
msgstr ""
-#: readelf.c:8766
+#: readelf.c:9274
#, c-format
msgid ""
"Seg Offset Type Addend Seg Sym Off\n"
msgstr ""
-#: readelf.c:8821
+#: readelf.c:9329
msgid "dynamic string section"
msgstr ""
-#: readelf.c:8925
+#: readelf.c:9412
#, c-format
msgid ""
"\n"
-"In linked file '%s' section '%s' at offset %#<PRIx64> contains %<PRId64> "
-"bytes:\n"
+"In linked file '%s' relocation section "
msgstr ""
-#: readelf.c:8930
+#: readelf.c:9415
#, c-format
msgid ""
"\n"
-"'%s' relocation section at offset %#<PRIx64> contains %<PRId64> bytes:\n"
+"Relocation section "
msgstr ""
-#: readelf.c:8952
+#. This is unlikely, but possible.
+#: readelf.c:9433
+#, c-format
+msgid " at offset %#<PRIx64> contains 1 entry which relocates 1 location:\n"
+msgstr ""
+
+#: readelf.c:9437
#, c-format
msgid ""
-"\n"
-"There are no dynamic relocations in linked file '%s'.\n"
+" at offset %#<PRIx64> contains %<PRIu64> entries which relocate %<PRIu64> "
+"locations:\n"
msgstr ""
-#: readelf.c:8955
+#: readelf.c:9443
+#, c-format
+msgid " at offset %#<PRIx64> contains %<PRIu64> entry:\n"
+msgid_plural " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: readelf.c:9542
#, c-format
msgid ""
"\n"
-"There are no dynamic relocations in this file.\n"
+"In linked file '%s' section '%s' at offset %#<PRIx64> contains %<PRId64> "
+"bytes:\n"
msgstr ""
-#: readelf.c:8982
+#: readelf.c:9547
#, c-format
msgid ""
"\n"
-"In linked file '%s' relocation section "
+"'%s' relocation section at offset %#<PRIx64> contains %<PRId64> bytes:\n"
msgstr ""
-#: readelf.c:8985
+#: readelf.c:9569
#, c-format
msgid ""
"\n"
-"Relocation section "
+"There are no dynamic relocations in linked file '%s'.\n"
msgstr ""
-#: readelf.c:8993
+#: readelf.c:9572
#, c-format
-msgid " at offset %#<PRIx64> contains %<PRIu64> entry:\n"
-msgid_plural " at offset %#<PRIx64> contains %<PRId64> entries:\n"
-msgstr[0] ""
-msgstr[1] ""
+msgid ""
+"\n"
+"There are no dynamic relocations in this file.\n"
+msgstr ""
-#: readelf.c:9044
+#: readelf.c:9597
#, c-format
msgid ""
"\n"
"There are no static relocations in linked file '%s'."
msgstr ""
-#: readelf.c:9047
+#: readelf.c:9600
#, c-format
msgid ""
"\n"
"There are no static relocations in this file."
msgstr ""
-#: readelf.c:9048
+#: readelf.c:9601
#, c-format
msgid ""
"\n"
"To see the dynamic relocations add --use-dynamic to the command line.\n"
msgstr ""
-#: readelf.c:9056
+#: readelf.c:9609
#, c-format
msgid ""
"\n"
"There are no relocations in linked file '%s'.\n"
msgstr ""
-#: readelf.c:9059
+#: readelf.c:9612
#, c-format
msgid ""
"\n"
"There are no relocations in this file.\n"
msgstr ""
-#: readelf.c:9227
+#: readelf.c:9771
#, c-format
msgid "Invalid section %u in table entry %td\n"
msgstr ""
-#: readelf.c:9239
+#: readelf.c:9783
#, c-format
msgid "Invalid offset %<PRIx64> in table entry %td\n"
msgstr ""
-#: readelf.c:9257
+#: readelf.c:9801
#, c-format
msgid "\tUnknown version.\n"
msgstr ""
-#: readelf.c:9320 readelf.c:9758
+#: readelf.c:9864 readelf.c:10302
msgid "unwind table"
msgstr ""
-#: readelf.c:9371 readelf.c:9841
+#: readelf.c:9915 readelf.c:10385
#, c-format
msgid "Skipping unknown relocation type: %u\n"
msgstr ""
-#: readelf.c:9377 readelf.c:9848
+#: readelf.c:9921 readelf.c:10392
#, c-format
msgid "Skipping unexpected relocation type: %s\n"
msgstr ""
-#: readelf.c:9386 readelf.c:9855
+#: readelf.c:9930 readelf.c:10399
#, c-format
msgid "Skipping reloc with overlarge offset: %#<PRIx64>\n"
msgstr ""
-#: readelf.c:9394 readelf.c:9863
+#: readelf.c:9938 readelf.c:10407
#, c-format
msgid "Skipping reloc with invalid symbol index: %u\n"
msgstr ""
-#: readelf.c:9442 readelf.c:9910 readelf.c:11021
+#: readelf.c:9986 readelf.c:10454 readelf.c:11565
msgid "Multiple symbol tables encountered\n"
msgstr ""
-#: readelf.c:9457 readelf.c:9926 readelf.c:11036
+#: readelf.c:10001 readelf.c:10470 readelf.c:11580
#, c-format
msgid ""
"\n"
"There are no unwind sections in this file.\n"
msgstr ""
-#: readelf.c:9543
+#: readelf.c:10087
#, c-format
msgid ""
"\n"
"Could not find unwind info section for "
msgstr ""
-#: readelf.c:9555
+#: readelf.c:10099
msgid "unwind info"
msgstr ""
-#: readelf.c:9558
+#: readelf.c:10102
#, c-format
msgid ""
"\n"
"Unwind section "
msgstr ""
-#: readelf.c:9565
+#: readelf.c:10109
#, c-format
msgid " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
msgstr ""
-#: readelf.c:9935 readelf.c:11043
+#: readelf.c:10479 readelf.c:11587
#, c-format
msgid ""
"\n"
@@ -9650,204 +9864,204 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:10068
+#: readelf.c:10612
msgid "unwind data"
msgstr ""
-#: readelf.c:10140
+#: readelf.c:10684
#, c-format
msgid "Skipping unexpected relocation at offset %#<PRIx64>\n"
msgstr ""
-#: readelf.c:10162
+#: readelf.c:10706
#, c-format
msgid "Unknown section relocation type %d encountered\n"
msgstr ""
-#: readelf.c:10170
+#: readelf.c:10714
#, c-format
msgid "Bad symbol index in unwind relocation (%<PRIu64> > %<PRIu64>)\n"
msgstr ""
-#: readelf.c:10186
+#: readelf.c:10730
#, c-format
msgid "Skipping unknown ARM relocation type: %d\n"
msgstr ""
-#: readelf.c:10196
+#: readelf.c:10740
#, c-format
msgid "Skipping unexpected ARM relocation type %s\n"
msgstr ""
-#: readelf.c:10205
+#: readelf.c:10749
#, c-format
msgid "Skipping unknown C6000 relocation type: %d\n"
msgstr ""
-#: readelf.c:10215
+#: readelf.c:10759
#, c-format
msgid "Skipping unexpected C6000 relocation type %s\n"
msgstr ""
#. This function currently only supports ARM and TI unwinders.
-#: readelf.c:10224
+#: readelf.c:10768
msgid "Only TI and ARM unwinders are currently supported\n"
msgstr ""
-#: readelf.c:10287
+#: readelf.c:10831
#, c-format
msgid "[Truncated opcode]\n"
msgstr ""
-#: readelf.c:10335 readelf.c:10555
+#: readelf.c:10879 readelf.c:11099
#, c-format
msgid "Refuse to unwind"
msgstr ""
-#: readelf.c:10358
+#: readelf.c:10902
#, c-format
msgid " [Reserved]"
msgstr ""
-#: readelf.c:10386
+#: readelf.c:10930
#, c-format
msgid " finish"
msgstr ""
-#: readelf.c:10391 readelf.c:10488
+#: readelf.c:10935 readelf.c:11032
#, c-format
msgid "[Spare]"
msgstr ""
-#: readelf.c:10425
+#: readelf.c:10969
msgid "corrupt change to vsp\n"
msgstr ""
-#: readelf.c:10451
+#: readelf.c:10995
#, c-format
msgid " pop {ra_auth_code}"
msgstr ""
-#: readelf.c:10453
+#: readelf.c:10997
#, c-format
msgid " vsp as modifier for PAC validation"
msgstr ""
-#: readelf.c:10510 readelf.c:10667
+#: readelf.c:11054 readelf.c:11211
#, c-format
msgid " [unsupported opcode]"
msgstr ""
-#: readelf.c:10603
+#: readelf.c:11147
#, c-format
msgid "pop frame {"
msgstr ""
-#: readelf.c:10606
+#: readelf.c:11150
#, c-format
msgid "*corrupt* - no registers specified"
msgstr ""
-#: readelf.c:10620
+#: readelf.c:11164
msgid "[pad]"
msgstr ""
-#: readelf.c:10649
+#: readelf.c:11193
msgid "Corrupt stack pointer adjustment detected\n"
msgstr ""
-#: readelf.c:10656
+#: readelf.c:11200
#, c-format
msgid "sp = sp + %<PRId64>"
msgstr ""
-#: readelf.c:10731
+#: readelf.c:11275
#, c-format
msgid " Personality routine: "
msgstr ""
-#: readelf.c:10763
+#: readelf.c:11307
#, c-format
msgid " [Truncated data]\n"
msgstr ""
-#: readelf.c:10787
+#: readelf.c:11331
#, c-format
msgid "Corrupt ARM compact model table entry: %x \n"
msgstr ""
-#: readelf.c:10792
+#: readelf.c:11336
#, c-format
msgid " Compact model index: %d\n"
msgstr ""
-#: readelf.c:10818
+#: readelf.c:11362
msgid "Unknown ARM compact model index encountered\n"
msgstr ""
-#: readelf.c:10819
+#: readelf.c:11363
#, c-format
msgid " [reserved]\n"
msgstr ""
-#: readelf.c:10834
+#: readelf.c:11378
#, c-format
msgid " Restore stack from frame pointer\n"
msgstr ""
-#: readelf.c:10836
+#: readelf.c:11380
#, c-format
msgid " Stack increment %d\n"
msgstr ""
-#: readelf.c:10837
+#: readelf.c:11381
#, c-format
msgid " Registers restored: "
msgstr ""
-#: readelf.c:10842
+#: readelf.c:11386
#, c-format
msgid " Return register: %s\n"
msgstr ""
-#: readelf.c:10846
+#: readelf.c:11390
#, c-format
msgid " [reserved (%d)]\n"
msgstr ""
-#: readelf.c:10850
+#: readelf.c:11394
#, c-format
msgid ""
"Unsupported architecture type %d encountered when decoding unwind table\n"
msgstr ""
-#: readelf.c:10905
+#: readelf.c:11449
#, c-format
msgid "corrupt index table entry: %x\n"
msgstr ""
-#: readelf.c:10944
+#: readelf.c:11488
#, c-format
msgid "Unwind entry contains corrupt offset (%#<PRIx64>) into section %s\n"
msgstr ""
-#: readelf.c:10960
+#: readelf.c:11504
#, c-format
msgid "Could not locate .ARM.extab section containing %#<PRIx64>.\n"
msgstr ""
-#: readelf.c:11004
+#: readelf.c:11548
#, c-format
msgid ""
"Unsupported architecture type %d encountered when processing unwind table\n"
msgstr ""
-#: readelf.c:11066
+#: readelf.c:11610
#, c-format
msgid "No processor specific unwind information to decode\n"
msgstr ""
-#: readelf.c:11096
+#: readelf.c:11640
#, c-format
msgid ""
"\n"
@@ -9855,80 +10069,80 @@ msgid ""
"supported.\n"
msgstr ""
-#: readelf.c:11123
+#: readelf.c:11667
#, c-format
msgid "NONE"
msgstr ""
-#: readelf.c:11148
+#: readelf.c:11692
#, c-format
msgid "Interface Version: %s"
msgstr ""
-#: readelf.c:11151
+#: readelf.c:11695
#, c-format
msgid "Interface Version: <corrupt: %<PRIx64>>"
msgstr ""
-#: readelf.c:11169
+#: readelf.c:11713
#, c-format
msgid "Time Stamp: %s"
msgstr ""
-#: readelf.c:11358 readelf.c:11408
+#: readelf.c:11902 readelf.c:11952
msgid "dynamic section"
msgstr ""
-#: readelf.c:11378 readelf.c:11429 readelf.c:11537
+#: readelf.c:11922 readelf.c:11973 readelf.c:12081
#, c-format
msgid "Out of memory allocating space for %<PRIu64> dynamic entries\n"
msgstr ""
-#: readelf.c:11503
+#: readelf.c:12047
#, c-format
msgid "Size overflow prevents reading %<PRIu64> elements of size %u\n"
msgstr ""
-#: readelf.c:11513
+#: readelf.c:12057
#, c-format
msgid "Invalid number of dynamic entries: %<PRIu64>\n"
msgstr ""
-#: readelf.c:11521
+#: readelf.c:12065
#, c-format
msgid "Out of memory reading %<PRIu64> dynamic entries\n"
msgstr ""
-#: readelf.c:11528
+#: readelf.c:12072
#, c-format
msgid "Unable to read in %<PRIu64> bytes of dynamic data\n"
msgstr ""
-#: readelf.c:11578 readelf.c:11632 readelf.c:11656 readelf.c:11689
-#: readelf.c:11715 readelf.c:11734
+#: readelf.c:12122 readelf.c:12176 readelf.c:12200 readelf.c:12233
+#: readelf.c:12259 readelf.c:12278
msgid "Unable to seek to start of dynamic information\n"
msgstr ""
-#: readelf.c:11584 readelf.c:11638
+#: readelf.c:12128 readelf.c:12182
msgid "Failed to read in number of buckets\n"
msgstr ""
-#: readelf.c:11590
+#: readelf.c:12134
msgid "Failed to read in number of chains\n"
msgstr ""
-#: readelf.c:11697
+#: readelf.c:12241
msgid "Failed to determine last chain length\n"
msgstr ""
-#: readelf.c:11797
+#: readelf.c:12341
#, c-format
msgid ""
"\n"
"There is no dynamic section in linked file '%s'.\n"
msgstr ""
-#: readelf.c:11800
+#: readelf.c:12344
#, c-format
msgid ""
"\n"
@@ -9936,49 +10150,49 @@ msgid ""
msgstr ""
#. See PR 21379 for a reproducer.
-#: readelf.c:11860
+#: readelf.c:12404
msgid "Invalid PT_LOAD entry\n"
msgstr ""
-#: readelf.c:11886
+#: readelf.c:12430
msgid "the .dynsym section doesn't match the DT_SYMTAB and DT_SYMENT tags\n"
msgstr ""
-#: readelf.c:11896
+#: readelf.c:12440
msgid "Corrupt DT_SYMTAB dynamic entry\n"
msgstr ""
-#: readelf.c:11932
+#: readelf.c:12476
msgid "the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"
msgstr ""
-#: readelf.c:11937
+#: readelf.c:12481
msgid "dynamic string table"
msgstr ""
-#: readelf.c:11940
+#: readelf.c:12484
msgid "Corrupt DT_STRTAB dynamic entry\n"
msgstr ""
-#: readelf.c:11965
+#: readelf.c:12509
#, c-format
msgid "Bad value (%d) for SYMINENT entry\n"
msgstr ""
-#: readelf.c:11984
+#: readelf.c:12528
msgid "symbol information"
msgstr ""
-#: readelf.c:11990
+#: readelf.c:12534
msgid "Multiple dynamic symbol information sections found\n"
msgstr ""
-#: readelf.c:11996
+#: readelf.c:12540
#, c-format
msgid "Out of memory allocating %<PRIu64> bytes for dynamic symbol info\n"
msgstr ""
-#: readelf.c:12020
+#: readelf.c:12564
#, c-format
msgid ""
"\n"
@@ -9991,7 +10205,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12027
+#: readelf.c:12571
#, c-format
msgid ""
"\n"
@@ -10002,87 +10216,87 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12034
+#: readelf.c:12578
#, c-format
msgid " Tag Type Name/Value\n"
msgstr ""
-#: readelf.c:12068
+#: readelf.c:12612
#, c-format
msgid "Auxiliary library"
msgstr ""
-#: readelf.c:12072
+#: readelf.c:12616
#, c-format
msgid "Filter library"
msgstr ""
-#: readelf.c:12076
+#: readelf.c:12620
#, c-format
msgid "Configuration file"
msgstr ""
-#: readelf.c:12080
+#: readelf.c:12624
#, c-format
msgid "Dependency audit library"
msgstr ""
-#: readelf.c:12084
+#: readelf.c:12628
#, c-format
msgid "Audit library"
msgstr ""
-#: readelf.c:12103 readelf.c:12131 readelf.c:12159 readelf.c:12499
+#: readelf.c:12647 readelf.c:12675 readelf.c:12703 readelf.c:13043
#, c-format
msgid "Flags:"
msgstr ""
-#: readelf.c:12106 readelf.c:12134 readelf.c:12161 readelf.c:12501
+#: readelf.c:12650 readelf.c:12678 readelf.c:12705 readelf.c:13045
#, c-format
msgid " None\n"
msgstr ""
-#: readelf.c:12368
+#: readelf.c:12912
#, c-format
msgid "Shared library: [%s]"
msgstr ""
-#: readelf.c:12372
+#: readelf.c:12916
#, c-format
msgid " program interpreter"
msgstr ""
-#: readelf.c:12376
+#: readelf.c:12920
#, c-format
msgid "Library soname: [%s]"
msgstr ""
-#: readelf.c:12380
+#: readelf.c:12924
#, c-format
msgid "Library rpath: [%s]"
msgstr ""
-#: readelf.c:12384
+#: readelf.c:12928
#, c-format
msgid "Library runpath: [%s]"
msgstr ""
-#: readelf.c:12421
+#: readelf.c:12965
#, c-format
msgid " (bytes)\n"
msgstr ""
-#: readelf.c:12452
+#: readelf.c:12996
#, c-format
msgid "Not needed object: [%s]\n"
msgstr ""
-#: readelf.c:12477
+#: readelf.c:13021
#, c-format
msgid "<corrupt time val: %<PRIx64>"
msgstr ""
-#: readelf.c:12620
+#: readelf.c:13164
#, c-format
msgid ""
"\n"
@@ -10094,7 +10308,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12627
+#: readelf.c:13171
#, c-format
msgid ""
"\n"
@@ -10105,71 +10319,71 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12635 readelf.c:12781 readelf.c:12946
+#: readelf.c:13179 readelf.c:13325 readelf.c:13490
#, c-format
msgid " Addr: 0x%016<PRIx64>"
msgstr ""
-#: readelf.c:12636 readelf.c:12782 readelf.c:12947
+#: readelf.c:13180 readelf.c:13326 readelf.c:13491
#, c-format
msgid " Offset: 0x%08<PRIx64> Link: %u (%s)\n"
msgstr ""
-#: readelf.c:12642
+#: readelf.c:13186
msgid "version definition section"
msgstr ""
-#: readelf.c:12671
+#: readelf.c:13215
#, c-format
msgid " %#06zx: Rev: %d Flags: %s"
msgstr ""
-#: readelf.c:12674
+#: readelf.c:13218
#, c-format
msgid " Index: %d Cnt: %d "
msgstr ""
-#: readelf.c:12691
+#: readelf.c:13235
#, c-format
msgid "Name: %s\n"
msgstr ""
-#: readelf.c:12694
+#: readelf.c:13238
#, c-format
msgid "Name index: %ld\n"
msgstr ""
-#: readelf.c:12703
+#: readelf.c:13247
#, c-format
msgid "Invalid vda_next field of %lx\n"
msgstr ""
-#: readelf.c:12723
+#: readelf.c:13267
#, c-format
msgid " %#06zx: Parent %d: %s\n"
msgstr ""
-#: readelf.c:12727
+#: readelf.c:13271
#, c-format
msgid " %#06zx: Parent %d, name index: %ld\n"
msgstr ""
-#: readelf.c:12732
+#: readelf.c:13276
#, c-format
msgid " Version def aux past end of section\n"
msgstr ""
-#: readelf.c:12739
+#: readelf.c:13283
#, c-format
msgid "Invalid vd_next field of %lx\n"
msgstr ""
-#: readelf.c:12750
+#: readelf.c:13294
#, c-format
msgid " Version definition past end of section\n"
msgstr ""
-#: readelf.c:12766
+#: readelf.c:13310
#, c-format
msgid ""
"\n"
@@ -10180,7 +10394,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12773
+#: readelf.c:13317
#, c-format
msgid ""
"\n"
@@ -10191,68 +10405,68 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12789
+#: readelf.c:13333
msgid "Version Needs section"
msgstr ""
-#: readelf.c:12814
+#: readelf.c:13358
#, c-format
msgid " %#06zx: Version: %d"
msgstr ""
-#: readelf.c:12817
+#: readelf.c:13361
#, c-format
msgid " File: %s"
msgstr ""
-#: readelf.c:12820
+#: readelf.c:13364
#, c-format
msgid " File: %lx"
msgstr ""
-#: readelf.c:12822
+#: readelf.c:13366
#, c-format
msgid " Cnt: %d\n"
msgstr ""
-#: readelf.c:12845
+#: readelf.c:13389
#, c-format
msgid " %#06zx: Name: %s"
msgstr ""
-#: readelf.c:12848
+#: readelf.c:13392
#, c-format
msgid " %#06zx: Name index: %lx"
msgstr ""
-#: readelf.c:12851
+#: readelf.c:13395
#, c-format
msgid " Flags: %s Version: %d\n"
msgstr ""
-#: readelf.c:12857
+#: readelf.c:13401
#, c-format
msgid "Invalid vna_next field of %lx\n"
msgstr ""
-#: readelf.c:12870
+#: readelf.c:13414
msgid "Missing Version Needs auxiliary information\n"
msgstr ""
-#: readelf.c:12875
+#: readelf.c:13419
#, c-format
msgid "Invalid vn_next field of %lx\n"
msgstr ""
-#: readelf.c:12885
+#: readelf.c:13429
msgid "Missing Version Needs information\n"
msgstr ""
-#: readelf.c:12923
+#: readelf.c:13467
msgid "version string table"
msgstr ""
-#: readelf.c:12931
+#: readelf.c:13475
#, c-format
msgid ""
"\n"
@@ -10265,7 +10479,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12938
+#: readelf.c:13482
#, c-format
msgid ""
"\n"
@@ -10276,287 +10490,287 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:12956
+#: readelf.c:13500
msgid "version symbol data"
msgstr ""
-#: readelf.c:12976
+#: readelf.c:13520
msgid "*invalid*"
msgstr ""
-#: readelf.c:12984
+#: readelf.c:13528
msgid " 0 (*local*) "
msgstr ""
-#: readelf.c:12988
+#: readelf.c:13532
msgid " 1 (*global*) "
msgstr ""
-#: readelf.c:12999
+#: readelf.c:13543
msgid "invalid index into symbol array\n"
msgstr ""
-#: readelf.c:13022 readelf.c:13574
+#: readelf.c:13566 readelf.c:14118
msgid "version need"
msgstr ""
-#: readelf.c:13033
+#: readelf.c:13577
msgid "version need aux (2)"
msgstr ""
-#: readelf.c:13080 readelf.c:13518
+#: readelf.c:13624 readelf.c:14062
msgid "version def"
msgstr ""
-#: readelf.c:13108 readelf.c:13549
+#: readelf.c:13652 readelf.c:14093
msgid "version def aux"
msgstr ""
-#: readelf.c:13116
+#: readelf.c:13660
msgid "*both*"
msgstr ""
-#: readelf.c:13148
+#: readelf.c:13692
#, c-format
msgid ""
"\n"
"No version information found in linked file '%s'.\n"
msgstr ""
-#: readelf.c:13151
+#: readelf.c:13695
#, c-format
msgid ""
"\n"
"No version information found in this file.\n"
msgstr ""
-#: readelf.c:13247
+#: readelf.c:13791
#, c-format
msgid "Unrecognized visibility value: %u\n"
msgstr ""
-#: readelf.c:13260
+#: readelf.c:13804
#, c-format
msgid "Unrecognized alpha specific other value: %u\n"
msgstr ""
-#: readelf.c:13337
+#: readelf.c:13881
#, c-format
msgid "Unrecognized IA64 VMS ST Function type: %d\n"
msgstr ""
-#: readelf.c:13361
+#: readelf.c:13905
#, c-format
msgid "Unrecognized IA64 VMS ST Linkage: %d\n"
msgstr ""
-#: readelf.c:13387
+#: readelf.c:13931
#, c-format
msgid "<localentry>: %d"
msgstr ""
-#: readelf.c:13401
+#: readelf.c:13945
msgid " VARIANT_CC"
msgstr ""
-#: readelf.c:13452
+#: readelf.c:13996
#, c-format
msgid "<other>: %x"
msgstr ""
-#: readelf.c:13480
+#: readelf.c:14024
msgid "version data"
msgstr ""
-#: readelf.c:13592
+#: readelf.c:14136
msgid "version need aux (3)"
msgstr ""
-#: readelf.c:13783
+#: readelf.c:14327
#, c-format
msgid "local symbol %<PRIu64> found at index >= %s's sh_info value of %u\n"
msgstr ""
-#: readelf.c:13802
+#: readelf.c:14346
#, c-format
msgid "Unknown LTO symbol definition encountered: %u\n"
msgstr ""
-#: readelf.c:13821
+#: readelf.c:14365
#, c-format
msgid "Unknown LTO symbol visibility encountered: %u\n"
msgstr ""
-#: readelf.c:13839
+#: readelf.c:14383
#, c-format
msgid "Unknown LTO symbol type encountered: %u\n"
msgstr ""
-#: readelf.c:13855
+#: readelf.c:14399
#, c-format
msgid ""
"\n"
"The LTO Symbol table section '%s' in linked file '%s' is empty!\n"
msgstr ""
-#: readelf.c:13859
+#: readelf.c:14403
#, c-format
msgid ""
"\n"
"LTO Symbol table '%s' is empty!\n"
msgstr ""
-#: readelf.c:13874
+#: readelf.c:14418
msgid "LTO symbols"
msgstr ""
-#: readelf.c:13892
+#: readelf.c:14436
#, c-format
msgid "LTO Symbol extension table '%s' is empty!\n"
msgstr ""
-#: readelf.c:13898
+#: readelf.c:14442
msgid "LTO ext symbol data"
msgstr ""
-#: readelf.c:13903
+#: readelf.c:14447
msgid "Unexpected version number in symbol extension table\n"
msgstr ""
-#: readelf.c:13912
+#: readelf.c:14456
#, c-format
msgid ""
"\n"
"In linked file '%s': "
msgstr ""
-#: readelf.c:13919
+#: readelf.c:14463
#, c-format
msgid "LTO Symbol table '%s' and extension table '%s' contain:\n"
msgstr ""
-#: readelf.c:13924
+#: readelf.c:14468
#, c-format
msgid "LTO Symbol table '%s'\n"
msgstr ""
-#: readelf.c:13926
+#: readelf.c:14470
#, c-format
msgid " and extension table '%s' contain:\n"
msgstr ""
-#: readelf.c:13931
+#: readelf.c:14475
#, c-format
msgid "LTO Symbol table '%s' contains:\n"
msgstr ""
-#: readelf.c:13936
+#: readelf.c:14480
#, c-format
msgid ""
" Comdat_Key Kind Visibility Size Slot Type Section "
"Name\n"
msgstr ""
-#: readelf.c:13938
+#: readelf.c:14482
#, c-format
msgid " Comdat_Key Kind Visibility Size Slot Name\n"
msgstr ""
-#: readelf.c:13985
+#: readelf.c:14529
msgid "Ran out of LTO symbol extension data\n"
msgstr ""
-#: readelf.c:14005
+#: readelf.c:14549
msgid "Data remains in the LTO symbol extension table\n"
msgstr ""
-#: readelf.c:14015
+#: readelf.c:14559
msgid "Buffer overrun encountered whilst decoding LTO symbol table\n"
msgstr ""
-#: readelf.c:14057
+#: readelf.c:14601
#, c-format
msgid ""
" Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ "
"Version Info]\n"
msgstr ""
-#: readelf.c:14063 readelf.c:14069
+#: readelf.c:14607 readelf.c:14613
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:14078
+#: readelf.c:14622
#, c-format
msgid ""
" Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ "
"Version Info]\n"
msgstr ""
-#: readelf.c:14085 readelf.c:14091
+#: readelf.c:14629 readelf.c:14635
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:14118
+#: readelf.c:14648
#, c-format
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] ""
-msgstr[1] ""
+"Symbol table '%s' has a sh_entsize of zero!\n"
+msgstr ""
-#: readelf.c:14128
+#: readelf.c:14656
#, c-format
msgid ""
"\n"
-"Symbol table for image contains %<PRIu64> entry:\n"
+"In linked file '%s' symbol section '%s' contains %<PRIu64> entry:\n"
msgid_plural ""
"\n"
-"Symbol table for image contains %<PRIu64> entries:\n"
+"In linked file '%s' symbol section '%s' contains %<PRIu64> entries:\n"
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:14165
+#: readelf.c:14665
#, c-format
msgid ""
"\n"
-"Symbol table '%s' has a sh_entsize of zero!\n"
-msgstr ""
+"Symbol table '%s' contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Symbol table '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+msgstr[1] ""
-#: readelf.c:14173
+#: readelf.c:14733
#, c-format
msgid ""
"\n"
-"In linked file '%s' symbol section '%s' contains %<PRIu64> entry:\n"
+"In linked file '%s' the dynamic symbol table contains %<PRIu64> entry:\n"
msgid_plural ""
"\n"
-"In linked file '%s' symbol section '%s' contains %<PRIu64> entries:\n"
+"In linked file '%s' the dynamic symbol table contains %<PRIu64> entries:\n"
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:14182
+#: readelf.c:14743
#, c-format
msgid ""
"\n"
-"Symbol table '%s' contains %<PRIu64> entry:\n"
+"Symbol table for image contains %<PRIu64> entry:\n"
msgid_plural ""
"\n"
-"Symbol table '%s' contains %<PRIu64> entries:\n"
+"Symbol table for image contains %<PRIu64> entries:\n"
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:14224
+#: readelf.c:14778
#, c-format
msgid ""
"\n"
"Dynamic symbol information is not available for displaying symbols.\n"
msgstr ""
-#: readelf.c:14237
+#: readelf.c:14791
#, c-format
msgid ""
"\n"
@@ -10567,24 +10781,24 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:14247
+#: readelf.c:14801
msgid "Out of memory allocating space for histogram buckets\n"
msgstr ""
-#: readelf.c:14253 readelf.c:14330
+#: readelf.c:14807 readelf.c:14884
#, c-format
msgid " Length Number %% of total Coverage\n"
msgstr ""
-#: readelf.c:14263
+#: readelf.c:14817
msgid "histogram chain is corrupt\n"
msgstr ""
-#: readelf.c:14275
+#: readelf.c:14829
msgid "Out of memory allocating space for histogram counts\n"
msgstr ""
-#: readelf.c:14315
+#: readelf.c:14869
#, c-format
msgid ""
"\n"
@@ -10595,15 +10809,15 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:14326
+#: readelf.c:14880
msgid "Out of memory allocating space for gnu histogram buckets\n"
msgstr ""
-#: readelf.c:14353
+#: readelf.c:14907
msgid "Out of memory allocating space for gnu histogram counts\n"
msgstr ""
-#: readelf.c:14419
+#: readelf.c:14973
#, c-format
msgid ""
"\n"
@@ -10616,7 +10830,7 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:14426
+#: readelf.c:14980
#, c-format
msgid ""
"\n"
@@ -10627,234 +10841,234 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:14434
+#: readelf.c:14988
#, c-format
msgid " Num: Name BoundTo Flags\n"
msgstr ""
-#: readelf.c:14441
+#: readelf.c:14995
#, c-format
msgid "<corrupt index>"
msgstr ""
-#: readelf.c:14446
+#: readelf.c:15000
#, c-format
msgid "<corrupt: %19ld>"
msgstr ""
-#: readelf.c:14538
+#: readelf.c:15092
#, c-format
msgid "LoongArch ULEB128 field at 0x%lx contains invalid ULEB128 value\n"
msgstr ""
-#: readelf.c:14543 readelf.c:14597 readelf.c:14648 readelf.c:14694
-#: readelf.c:14708 readelf.c:14752
+#: readelf.c:15097 readelf.c:15151 readelf.c:15202 readelf.c:15248
+#: readelf.c:15262 readelf.c:15306
#, c-format
msgid "%s reloc contains invalid symbol index %<PRIu64>\n"
msgstr ""
-#: readelf.c:14644
+#: readelf.c:15198
#, c-format
msgid "MSP430 ULEB128 field at %#<PRIx64> contains invalid ULEB128 value\n"
msgstr ""
#. PR 21137
-#: readelf.c:14659
+#: readelf.c:15213
#, c-format
msgid "MSP430 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr ""
-#: readelf.c:14671
+#: readelf.c:15225
msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc\n"
msgstr ""
-#: readelf.c:14718
+#: readelf.c:15272
#, c-format
msgid "MN10300 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr ""
-#: readelf.c:14729
+#: readelf.c:15283
msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc\n"
msgstr ""
-#: readelf.c:14771 readelf.c:14781
+#: readelf.c:15325 readelf.c:15335
#, c-format
msgid "RL78 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr ""
-#: readelf.c:15004
+#: readelf.c:15558
#, c-format
msgid ""
"Missing knowledge of 32-bit reloc types used in DWARF sections of machine "
"number %d\n"
msgstr ""
-#: readelf.c:15739
+#: readelf.c:16293
#, c-format
msgid "unable to apply unsupported reloc type %d to section %s\n"
msgstr ""
-#: readelf.c:15748
+#: readelf.c:16302
#, c-format
msgid "skipping invalid relocation offset %#<PRIx64> in section %s\n"
msgstr ""
-#: readelf.c:15758
+#: readelf.c:16312
#, c-format
msgid "skipping invalid relocation symbol index %#<PRIx64> in section %s\n"
msgstr ""
-#: readelf.c:15782
+#: readelf.c:16336
#, c-format
msgid "skipping unexpected symbol type %s in section %s relocation %tu\n"
msgstr ""
-#: readelf.c:15860
+#: readelf.c:16414
#, c-format
msgid ""
"\n"
"Assembly dump of section %s\n"
msgstr ""
-#: readelf.c:15878
+#: readelf.c:16432
#, c-format
msgid "Section '%s' has no data to dump.\n"
msgstr ""
-#: readelf.c:15884
+#: readelf.c:16438
msgid "section contents"
msgstr ""
-#: readelf.c:15907
+#: readelf.c:16461
#, c-format
msgid "Uncompressed section size is suspiciously large: 0x%<PRIu64>\n"
msgstr ""
-#: readelf.c:15998 readelf.c:16608
+#: readelf.c:16552 readelf.c:17162
#, c-format
msgid "section '%s' has unsupported compress type: %d\n"
msgstr ""
-#: readelf.c:16031 readelf.c:16645
+#: readelf.c:16585 readelf.c:17199
#, c-format
msgid "Unable to decompress section %s\n"
msgstr ""
-#: readelf.c:16070
+#: readelf.c:16624
#, c-format
msgid ""
" NOTE: This section has relocations against it, but these have NOT been "
"applied to this dump.\n"
msgstr ""
-#: readelf.c:16097
+#: readelf.c:16651
#, c-format
msgid ""
"\n"
"String dump of section '%s' in linked file %s:\n"
msgstr ""
-#: readelf.c:16101
+#: readelf.c:16655
#, c-format
msgid ""
"\n"
"String dump of section '%s':\n"
msgstr ""
-#: readelf.c:16197 readelf.c:17639 readelf.c:17679 readelf.c:17717
-#: readelf.c:17764 readelf.c:17795 readelf.c:19401 readelf.c:19433
+#: readelf.c:16751 readelf.c:18253 readelf.c:18293 readelf.c:18331
+#: readelf.c:18378 readelf.c:18409 readelf.c:20015 readelf.c:20047
#, c-format
msgid "<corrupt>\n"
msgstr ""
-#: readelf.c:16205
+#: readelf.c:16759
#, c-format
msgid " No strings found in this section."
msgstr ""
-#: readelf.c:16237
+#: readelf.c:16791
#, c-format
msgid ""
"\n"
"Hex dump of section '%s' in linked file %s:\n"
msgstr ""
-#: readelf.c:16241
+#: readelf.c:16795
#, c-format
msgid ""
"\n"
"Hex dump of section '%s':\n"
msgstr ""
-#: readelf.c:16385
+#: readelf.c:16939
#, c-format
msgid "Iteration failed: %s, %s\n"
msgstr ""
-#: readelf.c:16429
+#: readelf.c:16983
#, c-format
msgid "No symbol section named %s\n"
msgstr ""
-#: readelf.c:16445
+#: readelf.c:16999
#, c-format
msgid "No string table section named %s\n"
msgstr ""
-#: readelf.c:16452
+#: readelf.c:17006
msgid "strings"
msgstr ""
-#: readelf.c:16465 readelf.c:16477
+#: readelf.c:17019 readelf.c:17031
#, c-format
msgid "CTF open failure: %s\n"
msgstr ""
-#: readelf.c:16484
+#: readelf.c:17038
#, c-format
msgid ""
"\n"
"Dump of CTF section '%s' in linked file %s:\n"
msgstr ""
-#: readelf.c:16488
+#: readelf.c:17042
#, c-format
msgid ""
"\n"
"Dump of CTF section '%s':\n"
msgstr ""
-#: readelf.c:16496
+#: readelf.c:17050
#, c-format
msgid "CTF member open failure: %s\n"
msgstr ""
-#: readelf.c:16523
+#: readelf.c:17077
msgid "Section name must be provided \n"
msgstr ""
-#: readelf.c:16535
+#: readelf.c:17089
#, c-format
msgid "SFrame decode failure: %s\n"
msgstr ""
-#: readelf.c:16565
+#: readelf.c:17119
#, c-format
msgid "%s section data"
msgstr ""
-#: readelf.c:16589
+#: readelf.c:17143
#, c-format
msgid "compressed section %s is too small to contain a compression header\n"
msgstr ""
-#: readelf.c:16721 readelf.c:16748 readelf.c:16773
+#: readelf.c:17275 readelf.c:17302 readelf.c:17327
#, c-format
msgid ""
"malformed note encountered in section %s whilst scanning for build-id note\n"
msgstr ""
-#: readelf.c:16901
+#: readelf.c:17455
#, c-format
msgid ""
"\n"
@@ -10865,539 +11079,555 @@ 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:16910
+#: readelf.c:17464
#, c-format
msgid "section '%s' has the NOBITS type - its contents are unreliable.\n"
msgstr ""
-#: readelf.c:16960
+#: readelf.c:17514
#, c-format
msgid "Unrecognized debug section: %s\n"
msgstr ""
-#: readelf.c:16990
+#: readelf.c:17544
#, c-format
msgid "Section '%s' was not dumped because it does not exist\n"
msgstr ""
-#: readelf.c:17068
+#: readelf.c:17607
+#, c-format
+msgid "Unable to display section %d - it has a NULL type\n"
+msgstr ""
+
+#: readelf.c:17611
+#, c-format
+msgid "Unable to display section %d - it has no contents\n"
+msgstr ""
+
+#. FIXME: Add Proc and OS specific section types ?
+#: readelf.c:17622
+#, c-format
+msgid "Unable to determine how to dump section %d (type %#x)\n"
+msgstr ""
+
+#: readelf.c:17681
#, c-format
msgid "Section %d was not dumped because it does not exist!\n"
msgstr ""
-#: readelf.c:17124
+#: readelf.c:17737
msgid "<corrupt tag>\n"
msgstr ""
-#: readelf.c:17139
+#: readelf.c:17752
#, c-format
msgid "<corrupt string tag>"
msgstr ""
-#: readelf.c:17173
+#: readelf.c:17786
#, c-format
msgid "Absent/Non standard\n"
msgstr ""
-#: readelf.c:17176
+#: readelf.c:17789
#, c-format
msgid "Bare metal/mwdt\n"
msgstr ""
-#: readelf.c:17179
+#: readelf.c:17792
#, c-format
msgid "Bare metal/newlib\n"
msgstr ""
-#: readelf.c:17182
+#: readelf.c:17795
#, c-format
msgid "Linux/uclibc\n"
msgstr ""
-#: readelf.c:17185
+#: readelf.c:17798
#, c-format
msgid "Linux/glibc\n"
msgstr ""
-#: readelf.c:17188 readelf.c:17267
+#: readelf.c:17801 readelf.c:17880
#, c-format
msgid "Unknown\n"
msgstr ""
-#: readelf.c:17200 readelf.c:17230 readelf.c:17258
+#: readelf.c:17813 readelf.c:17843 readelf.c:17871
#, c-format
msgid "Absent\n"
msgstr ""
-#: readelf.c:17242
+#: readelf.c:17855
msgid "yes"
msgstr ""
-#: readelf.c:17242
+#: readelf.c:17855
msgid "no"
msgstr ""
-#: readelf.c:17279 readelf.c:17286
+#: readelf.c:17892 readelf.c:17899
msgid "default"
msgstr ""
-#: readelf.c:17280
+#: readelf.c:17893
msgid "smallest"
msgstr ""
-#: readelf.c:17285
+#: readelf.c:17898
msgid "OPTFP"
msgstr ""
-#: readelf.c:17506 readelf.c:17519 readelf.c:17537 readelf.c:18058
-#: readelf.c:18337 readelf.c:18349 readelf.c:18361
+#: readelf.c:18119 readelf.c:18132 readelf.c:18150 readelf.c:18672
+#: readelf.c:18951 readelf.c:18963 readelf.c:18975
#, c-format
msgid "None\n"
msgstr ""
-#: readelf.c:17507
+#: readelf.c:18120
#, c-format
msgid "Application\n"
msgstr ""
-#: readelf.c:17508
+#: readelf.c:18121
#, c-format
msgid "Realtime\n"
msgstr ""
-#: readelf.c:17509
+#: readelf.c:18122
#, c-format
msgid "Microcontroller\n"
msgstr ""
-#: readelf.c:17510
+#: readelf.c:18123
#, c-format
msgid "Application or Realtime\n"
msgstr ""
-#: readelf.c:17520 readelf.c:17539 readelf.c:18110 readelf.c:18127
-#: readelf.c:18198 readelf.c:18218 readelf.c:21081
+#: readelf.c:18133 readelf.c:18152 readelf.c:18724 readelf.c:18741
+#: readelf.c:18812 readelf.c:18832 readelf.c:21690
#, c-format
msgid "8-byte\n"
msgstr ""
-#: readelf.c:17521 readelf.c:18201 readelf.c:18221 readelf.c:21080
+#: readelf.c:18134 readelf.c:18815 readelf.c:18835 readelf.c:21689
#, c-format
msgid "4-byte\n"
msgstr ""
-#: readelf.c:17525 readelf.c:17543
+#: readelf.c:18138 readelf.c:18156
#, c-format
msgid "8-byte and up to %d-byte extended\n"
msgstr ""
-#: readelf.c:17538
+#: readelf.c:18151
#, c-format
msgid "8-byte, except leaf SP\n"
msgstr ""
-#: readelf.c:17554 readelf.c:17636 readelf.c:18236
+#: readelf.c:18167 readelf.c:18250 readelf.c:18850
#, c-format
msgid "flag = %d, vendor = "
msgstr ""
-#: readelf.c:17575
+#: readelf.c:18188
#, c-format
msgid "True\n"
msgstr ""
-#: readelf.c:17595
+#: readelf.c:18208
#, c-format
msgid "<unknown: %d>\n"
msgstr ""
-#: readelf.c:17640
+#: readelf.c:18254
msgid "corrupt vendor attribute\n"
msgstr ""
-#: readelf.c:17690
+#: readelf.c:18304
#, c-format
msgid "unspecified hard/soft float\n"
msgstr ""
-#: readelf.c:17693
+#: readelf.c:18307
#, c-format
msgid "hard float\n"
msgstr ""
-#: readelf.c:17696
+#: readelf.c:18310
#, c-format
msgid "soft float\n"
msgstr ""
-#: readelf.c:17728
+#: readelf.c:18342
#, c-format
msgid "unspecified hard/soft float, "
msgstr ""
-#: readelf.c:17731
+#: readelf.c:18345
#, c-format
msgid "hard float, "
msgstr ""
-#: readelf.c:17734
+#: readelf.c:18348
#, c-format
msgid "soft float, "
msgstr ""
-#: readelf.c:17737
+#: readelf.c:18351
#, c-format
msgid "single-precision hard float, "
msgstr ""
-#: readelf.c:17744
+#: readelf.c:18358
#, c-format
msgid "unspecified long double\n"
msgstr ""
-#: readelf.c:17747
+#: readelf.c:18361
#, c-format
msgid "128-bit IBM long double\n"
msgstr ""
-#: readelf.c:17750
+#: readelf.c:18364
#, c-format
msgid "64-bit long double\n"
msgstr ""
-#: readelf.c:17753
+#: readelf.c:18367
#, c-format
msgid "128-bit IEEE long double\n"
msgstr ""
-#: readelf.c:17775 readelf.c:17806
+#: readelf.c:18389 readelf.c:18420
#, c-format
msgid "unspecified\n"
msgstr ""
-#: readelf.c:17778
+#: readelf.c:18392
#, c-format
msgid "generic\n"
msgstr ""
-#: readelf.c:17812
+#: readelf.c:18426
#, c-format
msgid "memory\n"
msgstr ""
-#: readelf.c:17839
+#: readelf.c:18453
#, c-format
msgid "any\n"
msgstr ""
-#: readelf.c:17842
+#: readelf.c:18456
#, c-format
msgid "software\n"
msgstr ""
-#: readelf.c:17845
+#: readelf.c:18459
#, c-format
msgid "hardware\n"
msgstr ""
-#: readelf.c:17968
+#: readelf.c:18582
#, c-format
msgid "Hard or soft float\n"
msgstr ""
-#: readelf.c:17971
+#: readelf.c:18585
#, c-format
msgid "Hard float (double precision)\n"
msgstr ""
-#: readelf.c:17974
+#: readelf.c:18588
#, c-format
msgid "Hard float (single precision)\n"
msgstr ""
-#: readelf.c:17977
+#: readelf.c:18591
#, c-format
msgid "Soft float\n"
msgstr ""
-#: readelf.c:17980
+#: readelf.c:18594
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr ""
-#: readelf.c:17983
+#: readelf.c:18597
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr ""
-#: readelf.c:17986
+#: readelf.c:18600
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: readelf.c:17989
+#: readelf.c:18603
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr ""
-#: readelf.c:17992
+#: readelf.c:18606
#, c-format
msgid "NaN 2008 compatibility\n"
msgstr ""
-#: readelf.c:18025
+#: readelf.c:18639
#, c-format
msgid "Any MSA or not\n"
msgstr ""
-#: readelf.c:18028
+#: readelf.c:18642
#, c-format
msgid "128-bit MSA\n"
msgstr ""
-#: readelf.c:18090
+#: readelf.c:18704
#, c-format
msgid "Not used\n"
msgstr ""
-#: readelf.c:18093
+#: readelf.c:18707
#, c-format
msgid "2 bytes\n"
msgstr ""
-#: readelf.c:18096
+#: readelf.c:18710
#, c-format
msgid "4 bytes\n"
msgstr ""
-#: readelf.c:18113 readelf.c:18130 readelf.c:18204 readelf.c:18224
+#: readelf.c:18727 readelf.c:18744 readelf.c:18818 readelf.c:18838
#, c-format
msgid "16-byte\n"
msgstr ""
-#: readelf.c:18144
+#: readelf.c:18758
#, c-format
msgid "DSBT addressing not used\n"
msgstr ""
-#: readelf.c:18147
+#: readelf.c:18761
#, c-format
msgid "DSBT addressing used\n"
msgstr ""
-#: readelf.c:18161
+#: readelf.c:18775
#, c-format
msgid "Data addressing position-dependent\n"
msgstr ""
-#: readelf.c:18164
+#: readelf.c:18778
#, c-format
msgid "Data addressing position-independent, GOT near DP\n"
msgstr ""
-#: readelf.c:18167
+#: readelf.c:18781
#, c-format
msgid "Data addressing position-independent, GOT far from DP\n"
msgstr ""
-#: readelf.c:18181
+#: readelf.c:18795
#, c-format
msgid "Code addressing position-dependent\n"
msgstr ""
-#: readelf.c:18184
+#: readelf.c:18798
#, c-format
msgid "Code addressing position-independent\n"
msgstr ""
-#: readelf.c:18338
+#: readelf.c:18952
#, c-format
msgid "MSP430\n"
msgstr ""
-#: readelf.c:18339
+#: readelf.c:18953
#, c-format
msgid "MSP430X\n"
msgstr ""
-#: readelf.c:18350 readelf.c:18362
+#: readelf.c:18964 readelf.c:18976
#, c-format
msgid "Small\n"
msgstr ""
-#: readelf.c:18351 readelf.c:18363
+#: readelf.c:18965 readelf.c:18977
#, c-format
msgid "Large\n"
msgstr ""
-#: readelf.c:18364
+#: readelf.c:18978
#, c-format
msgid "Restricted Large\n"
msgstr ""
-#: readelf.c:18370
+#: readelf.c:18984
#, c-format
msgid " <unknown tag %<PRId64>>: "
msgstr ""
-#: readelf.c:18416
+#: readelf.c:19030
#, c-format
msgid "Any Region\n"
msgstr ""
-#: readelf.c:18419
+#: readelf.c:19033
#, c-format
msgid "Lower Region Only\n"
msgstr ""
-#: readelf.c:18485
+#: readelf.c:19099
#, c-format
msgid "No unaligned access\n"
msgstr ""
-#: readelf.c:18488
+#: readelf.c:19102
#, c-format
msgid "Unaligned access\n"
msgstr ""
-#: readelf.c:18494
+#: readelf.c:19108
#, c-format
msgid "%<PRIu64>-bytes\n"
msgstr ""
-#: readelf.c:18636
+#: readelf.c:19250
msgid "attributes"
msgstr ""
-#: readelf.c:18648
+#: readelf.c:19262
#, c-format
msgid "Unknown attributes version '%c'(%d) - expecting 'A'\n"
msgstr ""
-#: readelf.c:18667
+#: readelf.c:19281
msgid "Tag section ends prematurely\n"
msgstr ""
-#: readelf.c:18676
+#: readelf.c:19290
#, c-format
msgid "Bad attribute length (%u > %u)\n"
msgstr ""
-#: readelf.c:18684
+#: readelf.c:19298
#, c-format
msgid "Attribute length of %u is too small\n"
msgstr ""
-#: readelf.c:18695
+#: readelf.c:19309
msgid "Corrupt attribute section name\n"
msgstr ""
-#: readelf.c:18700
+#: readelf.c:19314
#, c-format
msgid "Attribute Section: "
msgstr ""
-#: readelf.c:18727
+#: readelf.c:19341
msgid "Unused bytes at end of section\n"
msgstr ""
-#: readelf.c:18737
+#: readelf.c:19351
#, c-format
msgid "Bad subsection length (%u > %u)\n"
msgstr ""
-#: readelf.c:18745
+#: readelf.c:19359
#, c-format
msgid "Bad subsection length (%u < 6)\n"
msgstr ""
-#: readelf.c:18760
+#: readelf.c:19374
#, c-format
msgid "File Attributes\n"
msgstr ""
-#: readelf.c:18763
+#: readelf.c:19377
#, c-format
msgid "Section Attributes:"
msgstr ""
-#: readelf.c:18766
+#: readelf.c:19380
#, c-format
msgid "Symbol Attributes:"
msgstr ""
-#: readelf.c:18779
+#: readelf.c:19393
#, c-format
msgid "Unknown tag: %d\n"
msgstr ""
-#: readelf.c:18800
+#: readelf.c:19414
#, c-format
msgid " Unknown attribute:\n"
msgstr ""
-#: readelf.c:18842
+#: readelf.c:19456
msgid "MIPS GOT entry extends beyond the end of available data\n"
msgstr ""
-#: readelf.c:19041
+#: readelf.c:19655
msgid "Corrupt MIPS ABI Flags section.\n"
msgstr ""
-#: readelf.c:19047
+#: readelf.c:19661
msgid "MIPS ABI Flags section"
msgstr ""
-#: readelf.c:19106 readelf.c:19689
+#: readelf.c:19720 readelf.c:20303
msgid "Global Offset Table data"
msgstr ""
-#: readelf.c:19110
+#: readelf.c:19724
#, c-format
msgid ""
"\n"
"Static GOT:\n"
msgstr ""
-#: readelf.c:19111 readelf.c:19694
+#: readelf.c:19725 readelf.c:20308
#, c-format
msgid " Canonical gp value: "
msgstr ""
-#: readelf.c:19125 readelf.c:19698 readelf.c:19833
+#: readelf.c:19739 readelf.c:20312 readelf.c:20447
#, c-format
msgid " Reserved entries:\n"
msgstr ""
-#: readelf.c:19126
+#: readelf.c:19740
#, c-format
msgid " %*s %10s %*s\n"
msgstr ""
-#: readelf.c:19127 readelf.c:19157 readelf.c:19700 readelf.c:19728
-#: readelf.c:19746 readelf.c:19835 readelf.c:19844
+#: readelf.c:19741 readelf.c:19771 readelf.c:20314 readelf.c:20342
+#: readelf.c:20360 readelf.c:20449 readelf.c:20458
msgid "Address"
msgstr ""
-#: readelf.c:19127 readelf.c:19157 readelf.c:19700 readelf.c:19728
-#: readelf.c:19747
+#: readelf.c:19741 readelf.c:19771 readelf.c:20314 readelf.c:20342
+#: readelf.c:20361
msgid "Access"
msgstr ""
-#: readelf.c:19128 readelf.c:19158
+#: readelf.c:19742 readelf.c:19772
msgid "Value"
msgstr ""
-#: readelf.c:19155 readelf.c:19726
+#: readelf.c:19769 readelf.c:20340
#, c-format
msgid " Local entries:\n"
msgstr ""
-#: readelf.c:19237 readelf.c:19950
+#: readelf.c:19851 readelf.c:20564
msgid "liblist section data"
msgstr ""
-#: readelf.c:19240
+#: readelf.c:19854
#, c-format
msgid ""
"\n"
@@ -11408,38 +11638,38 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:19244
+#: readelf.c:19858
msgid ""
" Library Time Stamp Checksum Version Flags\n"
msgstr ""
-#: readelf.c:19270
+#: readelf.c:19884
#, c-format
msgid "<corrupt: %9ld>"
msgstr ""
-#: readelf.c:19275
+#: readelf.c:19889
msgid " NONE"
msgstr ""
-#: readelf.c:19325
+#: readelf.c:19939
msgid "No MIPS_OPTIONS header found\n"
msgstr ""
-#: readelf.c:19331
+#: readelf.c:19945
msgid "The MIPS options section is too small.\n"
msgstr ""
-#: readelf.c:19336
+#: readelf.c:19950
msgid "options"
msgstr ""
-#: readelf.c:19355
+#: readelf.c:19969
#, c-format
msgid "Invalid size (%u) for MIPS option\n"
msgstr ""
-#: readelf.c:19364
+#: readelf.c:19978
#, c-format
msgid ""
"\n"
@@ -11450,28 +11680,28 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:19402 readelf.c:19434
+#: readelf.c:20016 readelf.c:20048
msgid "Truncated MIPS REGINFO option\n"
msgstr ""
-#: readelf.c:19570
+#: readelf.c:20184
msgid "conflict list found without a dynamic symbol table\n"
msgstr ""
-#: readelf.c:19578
+#: readelf.c:20192
#, c-format
msgid "Overlarge number of conflicts detected: %zx\n"
msgstr ""
-#: readelf.c:19586
+#: readelf.c:20200
msgid "Out of memory allocating space for dynamic conflicts\n"
msgstr ""
-#: readelf.c:19596 readelf.c:19614
+#: readelf.c:20210 readelf.c:20228
msgid "conflict"
msgstr ""
-#: readelf.c:19627
+#: readelf.c:20241
#, c-format
msgid ""
"\n"
@@ -11482,125 +11712,125 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:19631
+#: readelf.c:20245
msgid " Num: Index Value Name"
msgstr ""
-#: readelf.c:19638
+#: readelf.c:20252
#, c-format
msgid "<corrupt symbol index>"
msgstr ""
-#: readelf.c:19649 readelf.c:19781 readelf.c:19869
+#: readelf.c:20263 readelf.c:20395 readelf.c:20483
#, c-format
msgid "<corrupt: %14ld>"
msgstr ""
-#: readelf.c:19672
+#: readelf.c:20286
#, c-format
msgid ""
"The GOT symbol offset (%<PRIu64>) is greater than the symbol table size (%"
"<PRIu64>)\n"
msgstr ""
-#: readelf.c:19682
+#: readelf.c:20296
#, c-format
msgid "Too many GOT symbols: %<PRIu64>\n"
msgstr ""
-#: readelf.c:19693
+#: readelf.c:20307
#, c-format
msgid ""
"\n"
"Primary GOT:\n"
msgstr ""
-#: readelf.c:19699
+#: readelf.c:20313
#, c-format
msgid " %*s %10s %*s Purpose\n"
msgstr ""
-#: readelf.c:19701 readelf.c:19729 readelf.c:19748 readelf.c:19835
-#: readelf.c:19845
+#: readelf.c:20315 readelf.c:20343 readelf.c:20362 readelf.c:20449
+#: readelf.c:20459
msgid "Initial"
msgstr ""
-#: readelf.c:19703
+#: readelf.c:20317
#, c-format
msgid " Lazy resolver\n"
msgstr ""
-#: readelf.c:19718
+#: readelf.c:20332
#, c-format
msgid " Module pointer (GNU extension)\n"
msgstr ""
-#: readelf.c:19744
+#: readelf.c:20358
#, c-format
msgid " Global entries:\n"
msgstr ""
-#: readelf.c:19749 readelf.c:19846
+#: readelf.c:20363 readelf.c:20460
msgid "Sym.Val."
msgstr ""
#. Note for translators: "Ndx" = abbreviated form of "Index".
-#: readelf.c:19752 readelf.c:19846
+#: readelf.c:20366 readelf.c:20460
msgid "Ndx"
msgstr ""
-#: readelf.c:19752 readelf.c:19846
+#: readelf.c:20366 readelf.c:20460
msgid "Name"
msgstr ""
-#: readelf.c:19762
+#: readelf.c:20376
#, c-format
msgid "<no dynamic symbols>"
msgstr ""
-#: readelf.c:19784
+#: readelf.c:20398
#, c-format
msgid "<symbol index %zu exceeds number of dynamic symbols>"
msgstr ""
-#: readelf.c:19825
+#: readelf.c:20439
msgid "Procedure Linkage Table data"
msgstr ""
-#: readelf.c:19834
+#: readelf.c:20448
#, c-format
msgid " %*s %*s Purpose\n"
msgstr ""
-#: readelf.c:19837
+#: readelf.c:20451
#, c-format
msgid " PLT lazy resolver\n"
msgstr ""
-#: readelf.c:19839
+#: readelf.c:20453
#, c-format
msgid " Module pointer\n"
msgstr ""
-#: readelf.c:19842
+#: readelf.c:20456
#, c-format
msgid " Entries:\n"
msgstr ""
-#: readelf.c:19856
+#: readelf.c:20470
#, c-format
msgid "<corrupt symbol index: %<PRIu64>>"
msgstr ""
-#: readelf.c:19895
+#: readelf.c:20509
msgid "NDS32 elf flags section"
msgstr ""
-#: readelf.c:19961
+#: readelf.c:20575
msgid "liblist string table"
msgstr ""
-#: readelf.c:19973
+#: readelf.c:20587
#, c-format
msgid ""
"\n"
@@ -11611,477 +11841,476 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:19981
+#: readelf.c:20595
msgid " Library Time Stamp Checksum Version Flags"
msgstr ""
-#: readelf.c:20031
+#: readelf.c:20645
msgid "NT_AUXV (auxiliary vector)"
msgstr ""
-#: readelf.c:20033
+#: readelf.c:20647
msgid "NT_PRSTATUS (prstatus structure)"
msgstr ""
-#: readelf.c:20035
+#: readelf.c:20649
msgid "NT_FPREGSET (floating point registers)"
msgstr ""
-#: readelf.c:20037
+#: readelf.c:20651
msgid "NT_PRPSINFO (prpsinfo structure)"
msgstr ""
-#: readelf.c:20039
+#: readelf.c:20653
msgid "NT_TASKSTRUCT (task structure)"
msgstr ""
-#: readelf.c:20041
+#: readelf.c:20655
msgid "NT_GDB_TDESC (GDB XML target description)"
msgstr ""
-#: readelf.c:20043
+#: readelf.c:20657
msgid "NT_PRXFPREG (user_xfpregs structure)"
msgstr ""
-#: readelf.c:20045
+#: readelf.c:20659
msgid "NT_PPC_VMX (ppc Altivec registers)"
msgstr ""
-#: readelf.c:20047
+#: readelf.c:20661
msgid "NT_PPC_VSX (ppc VSX registers)"
msgstr ""
-#: readelf.c:20049
+#: readelf.c:20663
msgid "NT_PPC_TAR (ppc TAR register)"
msgstr ""
-#: readelf.c:20051
+#: readelf.c:20665
msgid "NT_PPC_PPR (ppc PPR register)"
msgstr ""
-#: readelf.c:20053
+#: readelf.c:20667
msgid "NT_PPC_DSCR (ppc DSCR register)"
msgstr ""
-#: readelf.c:20055
+#: readelf.c:20669
msgid "NT_PPC_EBB (ppc EBB registers)"
msgstr ""
-#: readelf.c:20057
+#: readelf.c:20671
msgid "NT_PPC_PMU (ppc PMU registers)"
msgstr ""
-#: readelf.c:20059
+#: readelf.c:20673
msgid "NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
msgstr ""
-#: readelf.c:20061
+#: readelf.c:20675
msgid "NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
msgstr ""
-#: readelf.c:20063
+#: readelf.c:20677
msgid "NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
msgstr ""
-#: readelf.c:20065
+#: readelf.c:20679
msgid "NT_PPC_TM_CVSX (ppc checkpointed VSX registers)"
msgstr ""
-#: readelf.c:20067
+#: readelf.c:20681
msgid "NT_PPC_TM_SPR (ppc TM special purpose registers)"
msgstr ""
-#: readelf.c:20069
+#: readelf.c:20683
msgid "NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
msgstr ""
-#: readelf.c:20071
+#: readelf.c:20685
msgid "NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
msgstr ""
-#: readelf.c:20073
+#: readelf.c:20687
msgid "NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
msgstr ""
-#: readelf.c:20075
+#: readelf.c:20689
msgid "NT_386_TLS (x86 TLS information)"
msgstr ""
-#: readelf.c:20077
+#: readelf.c:20691
msgid "NT_386_IOPERM (x86 I/O permissions)"
msgstr ""
-#: readelf.c:20079
+#: readelf.c:20693
msgid "NT_X86_XSTATE (x86 XSAVE extended state)"
msgstr ""
-#: readelf.c:20081
+#: readelf.c:20695
msgid "NT_X86_CET (x86 CET state)"
msgstr ""
-#: readelf.c:20083
+#: readelf.c:20697
msgid "NT_X86_SHSTK (x86 SHSTK state)"
msgstr ""
-#: readelf.c:20085
+#: readelf.c:20699
msgid "NT_S390_HIGH_GPRS (s390 upper register halves)"
msgstr ""
-#: readelf.c:20087
+#: readelf.c:20701
msgid "NT_S390_TIMER (s390 timer register)"
msgstr ""
-#: readelf.c:20089
+#: readelf.c:20703
msgid "NT_S390_TODCMP (s390 TOD comparator register)"
msgstr ""
-#: readelf.c:20091
+#: readelf.c:20705
msgid "NT_S390_TODPREG (s390 TOD programmable register)"
msgstr ""
-#: readelf.c:20093
+#: readelf.c:20707
msgid "NT_S390_CTRS (s390 control registers)"
msgstr ""
-#: readelf.c:20095
+#: readelf.c:20709
msgid "NT_S390_PREFIX (s390 prefix register)"
msgstr ""
-#: readelf.c:20097
+#: readelf.c:20711
msgid "NT_S390_LAST_BREAK (s390 last breaking event address)"
msgstr ""
-#: readelf.c:20099
+#: readelf.c:20713
msgid "NT_S390_SYSTEM_CALL (s390 system call restart data)"
msgstr ""
-#: readelf.c:20101
+#: readelf.c:20715
msgid "NT_S390_TDB (s390 transaction diagnostic block)"
msgstr ""
-#: readelf.c:20103
+#: readelf.c:20717
msgid "NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
msgstr ""
-#: readelf.c:20105
+#: readelf.c:20719
msgid "NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
msgstr ""
-#: readelf.c:20107
+#: readelf.c:20721
msgid "NT_S390_GS_CB (s390 guarded-storage registers)"
msgstr ""
-#: readelf.c:20109
+#: readelf.c:20723
msgid "NT_S390_GS_BC (s390 guarded-storage broadcast control)"
msgstr ""
-#: readelf.c:20111
+#: readelf.c:20725
msgid "NT_ARM_VFP (arm VFP registers)"
msgstr ""
-#: readelf.c:20113
+#: readelf.c:20727
msgid "NT_ARM_TLS (AArch TLS registers)"
msgstr ""
-#: readelf.c:20115
+#: readelf.c:20729
msgid "NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
msgstr ""
-#: readelf.c:20117
+#: readelf.c:20731
msgid "NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
msgstr ""
-#: readelf.c:20119
+#: readelf.c:20733
msgid "NT_ARM_SYSTEM_CALL (AArch system call number)"
msgstr ""
-#: readelf.c:20121
+#: readelf.c:20735
msgid "NT_ARM_SVE (AArch SVE registers)"
msgstr ""
-#: readelf.c:20123
+#: readelf.c:20737
msgid "NT_ARM_PAC_MASK (AArch pointer authentication code masks)"
msgstr ""
-#: readelf.c:20125
+#: readelf.c:20739
msgid "NT_ARM_PACA_KEYS (ARM pointer authentication address keys)"
msgstr ""
-#: readelf.c:20127
+#: readelf.c:20741
msgid "NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)"
msgstr ""
-#: readelf.c:20129
+#: readelf.c:20743
msgid "NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)"
msgstr ""
-#: readelf.c:20131
+#: readelf.c:20745
msgid "NT_ARM_SSVE (AArch64 streaming SVE registers)"
msgstr ""
-#: readelf.c:20133
+#: readelf.c:20747
msgid "NT_ARM_ZA (AArch64 SME ZA register)"
msgstr ""
-#: readelf.c:20135
+#: readelf.c:20749
msgid "NT_ARM_ZT (AArch64 SME2 ZT registers)"
msgstr ""
-#: readelf.c:20137
+#: readelf.c:20751
msgid "NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)"
msgstr ""
-#: readelf.c:20139
+#: readelf.c:20753
msgid "NT_ARC_V2 (ARC HS accumulator/extra registers)"
msgstr ""
-#: readelf.c:20141
+#: readelf.c:20755
msgid "NT_RISCV_CSR (RISC-V control and status registers)"
msgstr ""
-#: readelf.c:20143
+#: readelf.c:20757
msgid "NT_PSTATUS (pstatus structure)"
msgstr ""
-#: readelf.c:20145
+#: readelf.c:20759
msgid "NT_FPREGS (floating point registers)"
msgstr ""
-#: readelf.c:20147
+#: readelf.c:20761
msgid "NT_PSINFO (psinfo structure)"
msgstr ""
-#: readelf.c:20149
+#: readelf.c:20763
msgid "NT_LWPSTATUS (lwpstatus_t structure)"
msgstr ""
-#: readelf.c:20151
+#: readelf.c:20765
msgid "NT_LWPSINFO (lwpsinfo_t structure)"
msgstr ""
-#: readelf.c:20153
+#: readelf.c:20767
msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
msgstr ""
-#: readelf.c:20155
+#: readelf.c:20769
msgid "NT_SIGINFO (siginfo_t data)"
msgstr ""
-#: readelf.c:20157
+#: readelf.c:20771
msgid "NT_FILE (mapped files)"
msgstr ""
-#: readelf.c:20165
+#: readelf.c:20779
msgid "NT_VERSION (version)"
msgstr ""
-#: readelf.c:20167
+#: readelf.c:20781
msgid "NT_ARCH (architecture)"
msgstr ""
-#: readelf.c:20169
+#: readelf.c:20783
msgid "OPEN"
msgstr ""
-#: readelf.c:20171
+#: readelf.c:20785
msgid "func"
msgstr ""
-#: readelf.c:20173
+#: readelf.c:20787
msgid "GO BUILDID"
msgstr ""
-#: readelf.c:20175
+#: readelf.c:20789
msgid "FDO_PACKAGING_METADATA"
msgstr ""
-#: readelf.c:20180 readelf.c:20297 readelf.c:20486 readelf.c:21054
-#: readelf.c:21224 readelf.c:21353 readelf.c:21481
-#, c-format
-msgid "Unknown note type: (0x%08x)"
+#: readelf.c:20791
+msgid "FDO_DLOPEN_METADATA"
msgstr ""
-#: readelf.c:20200
+#: readelf.c:20796 readelf.c:20906 readelf.c:21095 readelf.c:21663
+#: readelf.c:21833 readelf.c:21962 readelf.c:22095
#, c-format
-msgid " Cannot decode 64-bit note in 32-bit build\n"
+msgid "Unknown note type: (0x%08x)"
msgstr ""
-#: readelf.c:20207
+#: readelf.c:20816
msgid " Malformed note - too short for header\n"
msgstr ""
-#: readelf.c:20216
+#: readelf.c:20825
msgid " Malformed note - does not end with \\0\n"
msgstr ""
-#: readelf.c:20229
+#: readelf.c:20838
msgid " Malformed note - too short for supplied file count\n"
msgstr ""
-#: readelf.c:20233
+#: readelf.c:20842
#, c-format
msgid " Page size: "
msgstr ""
-#: readelf.c:20237
+#: readelf.c:20846
#, c-format
msgid " %*s%*s%*s\n"
msgstr ""
-#: readelf.c:20238
+#: readelf.c:20847
msgid "Start"
msgstr ""
-#: readelf.c:20239
+#: readelf.c:20848
msgid "End"
msgstr ""
-#: readelf.c:20240
+#: readelf.c:20849
msgid "Page Offset"
msgstr ""
-#: readelf.c:20248
+#: readelf.c:20857
msgid " Malformed note - filenames end too early\n"
msgstr ""
-#: readelf.c:20280
+#: readelf.c:20889
msgid "NT_GNU_ABI_TAG (ABI version tag)"
msgstr ""
-#: readelf.c:20282
+#: readelf.c:20891
msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)"
msgstr ""
-#: readelf.c:20284
+#: readelf.c:20893
msgid "NT_GNU_BUILD_ID (unique build ID bitstring)"
msgstr ""
-#: readelf.c:20286
+#: readelf.c:20895
msgid "NT_GNU_GOLD_VERSION (gold version)"
msgstr ""
-#: readelf.c:20288
+#: readelf.c:20897
msgid "NT_GNU_PROPERTY_TYPE_0"
msgstr ""
-#: readelf.c:20290
+#: readelf.c:20899
msgid "NT_GNU_BUILD_ATTRIBUTE_OPEN"
msgstr ""
-#: readelf.c:20292
+#: readelf.c:20901
msgid "NT_GNU_BUILD_ATTRIBUTE_FUNC"
msgstr ""
-#: readelf.c:20381 readelf.c:20528 readelf.c:20565
+#: readelf.c:20990 readelf.c:21137 readelf.c:21174
#, c-format
msgid "<None>"
msgstr ""
-#: readelf.c:20482
+#: readelf.c:21091
msgid "NT_AMDGPU_METADATA (code object metadata)"
msgstr ""
-#: readelf.c:20677
+#: readelf.c:21286
#, c-format
msgid " Properties: "
msgstr ""
-#: readelf.c:20681
+#: readelf.c:21290
#, c-format
msgid "<corrupt GNU_PROPERTY_TYPE, size = %#lx>\n"
msgstr ""
-#: readelf.c:20693
+#: readelf.c:21302
#, c-format
msgid "<corrupt descsz: %#lx>\n"
msgstr ""
-#: readelf.c:20704
+#: readelf.c:21313
#, c-format
msgid "<corrupt type (%#x) datasz: %#x>\n"
msgstr ""
-#: readelf.c:20726 readelf.c:20780 readelf.c:20802
+#: readelf.c:21335 readelf.c:21389 readelf.c:21411
#, c-format
msgid "x86 ISA used: <corrupt length: %#x> "
msgstr ""
-#: readelf.c:20737 readelf.c:20791 readelf.c:20813
+#: readelf.c:21346 readelf.c:21400 readelf.c:21422
#, c-format
msgid "x86 ISA needed: <corrupt length: %#x> "
msgstr ""
-#: readelf.c:20748
+#: readelf.c:21357
#, c-format
msgid "x86 feature: <corrupt length: %#x> "
msgstr ""
-#: readelf.c:20759
+#: readelf.c:21368
#, c-format
msgid "x86 feature used: <corrupt length: %#x> "
msgstr ""
-#: readelf.c:20770
+#: readelf.c:21379
#, c-format
msgid "x86 feature needed: <corrupt length: %#x> "
msgstr ""
-#: readelf.c:20832 readelf.c:20846 readelf.c:20854 readelf.c:20885
+#: readelf.c:21441 readelf.c:21455 readelf.c:21463 readelf.c:21494
#, c-format
msgid "<corrupt length: %#x> "
msgstr ""
-#: readelf.c:20844
+#: readelf.c:21453
#, c-format
msgid "stack size: "
msgstr ""
-#: readelf.c:20867
+#: readelf.c:21476
#, c-format
msgid "1_needed: <corrupt length: %#x> "
msgstr ""
-#: readelf.c:20881
+#: readelf.c:21490
#, c-format
msgid "UINT32_AND (%#x): "
msgstr ""
-#: readelf.c:20883
+#: readelf.c:21492
#, c-format
msgid "UINT32_OR (%#x): "
msgstr ""
-#: readelf.c:20895
+#: readelf.c:21504
#, c-format
msgid "<unknown type %#x data: "
msgstr ""
-#: readelf.c:20897
+#: readelf.c:21506
#, c-format
msgid "<processor-specific type %#x data: "
msgstr ""
-#: readelf.c:20899
+#: readelf.c:21508
#, c-format
msgid "<application-specific type %#x data: "
msgstr ""
-#: readelf.c:20928
+#: readelf.c:21537
#, c-format
msgid " Build ID: "
msgstr ""
-#: readelf.c:20943
+#: readelf.c:21552
#, c-format
msgid " <corrupt GNU_ABI_TAG>\n"
msgstr ""
-#: readelf.c:20980
+#: readelf.c:21589
#, c-format
msgid " OS: %s, ABI: %d.%d.%d\n"
msgstr ""
-#: readelf.c:20989
+#: readelf.c:21598
#, c-format
msgid " Version: "
msgstr ""
@@ -12091,588 +12320,593 @@ 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:21005
+#: readelf.c:21614
#, c-format
msgid " Hardware Capabilities: "
msgstr ""
-#: readelf.c:21008
+#: readelf.c:21617
msgid "<corrupt GNU_HWCAP>\n"
msgstr ""
-#: readelf.c:21013
+#: readelf.c:21622
#, c-format
msgid "num entries: %d, enabled mask: %x\n"
msgstr ""
-#: readelf.c:21029
+#: readelf.c:21638
#, c-format
msgid " Description data: "
msgstr ""
-#: readelf.c:21047
+#: readelf.c:21656
msgid "Alignment of 8-byte objects"
msgstr ""
-#: readelf.c:21048
+#: readelf.c:21657
msgid "Sizeof double and long double"
msgstr ""
-#: readelf.c:21049
+#: readelf.c:21658
msgid "Type of FPU support needed"
msgstr ""
-#: readelf.c:21050
+#: readelf.c:21659
msgid "Use of SIMD instructions"
msgstr ""
-#: readelf.c:21051
+#: readelf.c:21660
msgid "Use of cache"
msgstr ""
-#: readelf.c:21052
+#: readelf.c:21661
msgid "Use of MMU"
msgstr ""
-#: readelf.c:21088
+#: readelf.c:21697
#, c-format
msgid "4-bytes\n"
msgstr ""
-#: readelf.c:21089
+#: readelf.c:21698
#, c-format
msgid "8-bytes\n"
msgstr ""
-#: readelf.c:21096
+#: readelf.c:21705
#, c-format
msgid "FPU-2.0\n"
msgstr ""
-#: readelf.c:21097
+#: readelf.c:21706
#, c-format
msgid "FPU-3.0\n"
msgstr ""
-#: readelf.c:21106
+#: readelf.c:21715
#, c-format
msgid "yes\n"
msgstr ""
-#: readelf.c:21116
+#: readelf.c:21725
#, c-format
msgid "unknown value: %x\n"
msgstr ""
-#: readelf.c:21172
+#: readelf.c:21781
msgid "NT_THRMISC (thrmisc structure)"
msgstr ""
-#: readelf.c:21174
+#: readelf.c:21783
msgid "NT_PROCSTAT_PROC (proc data)"
msgstr ""
-#: readelf.c:21176
+#: readelf.c:21785
msgid "NT_PROCSTAT_FILES (files data)"
msgstr ""
-#: readelf.c:21178
+#: readelf.c:21787
msgid "NT_PROCSTAT_VMMAP (vmmap data)"
msgstr ""
-#: readelf.c:21180
+#: readelf.c:21789
msgid "NT_PROCSTAT_GROUPS (groups data)"
msgstr ""
-#: readelf.c:21182
+#: readelf.c:21791
msgid "NT_PROCSTAT_UMASK (umask data)"
msgstr ""
-#: readelf.c:21184
+#: readelf.c:21793
msgid "NT_PROCSTAT_RLIMIT (rlimit data)"
msgstr ""
-#: readelf.c:21186
+#: readelf.c:21795
msgid "NT_PROCSTAT_OSREL (osreldate data)"
msgstr ""
-#: readelf.c:21188
+#: readelf.c:21797
msgid "NT_PROCSTAT_PSSTRINGS (ps_strings data)"
msgstr ""
-#: readelf.c:21190
+#: readelf.c:21799
msgid "NT_PROCSTAT_AUXV (auxv data)"
msgstr ""
-#: readelf.c:21192
+#: readelf.c:21801
msgid "NT_PTLWPINFO (ptrace_lwpinfo structure)"
msgstr ""
-#: readelf.c:21194
+#: readelf.c:21803
msgid "NT_X86_SEGBASES (x86 segment base registers)"
msgstr ""
#. NetBSD core "procinfo" structure.
-#: readelf.c:21208
+#: readelf.c:21817
msgid "NetBSD procinfo structure"
msgstr ""
-#: readelf.c:21211
+#: readelf.c:21820
msgid "NetBSD ELF auxiliary vector data"
msgstr ""
-#: readelf.c:21214
+#: readelf.c:21823
msgid "PT_LWPSTATUS (ptrace_lwpstatus structure)"
msgstr ""
-#: readelf.c:21243 readelf.c:21260 readelf.c:21274
+#: readelf.c:21852 readelf.c:21869 readelf.c:21883
msgid "PT_GETREGS (reg structure)"
msgstr ""
-#: readelf.c:21245 readelf.c:21262 readelf.c:21276
+#: readelf.c:21854 readelf.c:21871 readelf.c:21885
msgid "PT_GETFPREGS (fpreg structure)"
msgstr ""
-#: readelf.c:21258
+#: readelf.c:21867
msgid "PT___GETREGS40 (old reg structure)"
msgstr ""
-#: readelf.c:21293
+#: readelf.c:21902
msgid "OpenBSD procinfo structure"
msgstr ""
-#: readelf.c:21295
+#: readelf.c:21904
msgid "OpenBSD ELF auxiliary vector data"
msgstr ""
-#: readelf.c:21297
+#: readelf.c:21906
msgid "OpenBSD regular registers"
msgstr ""
-#: readelf.c:21299
+#: readelf.c:21908
msgid "OpenBSD floating point registers"
msgstr ""
-#: readelf.c:21301
+#: readelf.c:21910
msgid "OpenBSD window cookie"
msgstr ""
-#: readelf.c:21313
+#: readelf.c:21922
msgid "QNX debug fullpath"
msgstr ""
-#: readelf.c:21315
+#: readelf.c:21924
msgid "QNX debug relocation"
msgstr ""
-#: readelf.c:21317
+#: readelf.c:21926
msgid "QNX stack"
msgstr ""
-#: readelf.c:21319
+#: readelf.c:21928
msgid "QNX generator"
msgstr ""
-#: readelf.c:21321
+#: readelf.c:21930
msgid "QNX default library"
msgstr ""
-#: readelf.c:21323
+#: readelf.c:21932
msgid "QNX core sysinfo"
msgstr ""
-#: readelf.c:21325
+#: readelf.c:21934
msgid "QNX core info"
msgstr ""
-#: readelf.c:21327
+#: readelf.c:21936
msgid "QNX core status"
msgstr ""
-#: readelf.c:21329
+#: readelf.c:21938
msgid "QNX general registers"
msgstr ""
-#: readelf.c:21331
+#: readelf.c:21940
msgid "QNX floating point registers"
msgstr ""
-#: readelf.c:21333
+#: readelf.c:21942
msgid "QNX link map"
msgstr ""
-#: readelf.c:21347
+#: readelf.c:21956
msgid "NT_STAPSDT (SystemTap probe descriptors)"
msgstr ""
-#: readelf.c:21415
+#: readelf.c:22024
#, c-format
msgid " Provider: %s\n"
msgstr ""
-#: readelf.c:21416
+#: readelf.c:22025
#, c-format
msgid " Name: %s\n"
msgstr ""
-#: readelf.c:21417
+#: readelf.c:22026
#, c-format
msgid " Location: "
msgstr ""
-#: readelf.c:21419
+#: readelf.c:22028
#, c-format
msgid ", Base: "
msgstr ""
-#: readelf.c:21421
+#: readelf.c:22030
#, c-format
msgid ", Semaphore: "
msgstr ""
-#: readelf.c:21424
+#: readelf.c:22033
#, c-format
msgid " Arguments: %s\n"
msgstr ""
-#: readelf.c:21429
+#: readelf.c:22038
#, c-format
msgid " <corrupt - note is too small>\n"
msgstr ""
-#: readelf.c:21430
+#: readelf.c:22039
msgid "corrupt stapdt note - the data size is too small\n"
msgstr ""
-#: readelf.c:21439
+#: readelf.c:22048
#, c-format
msgid " Packaging Metadata: %.*s\n"
msgstr ""
-#: readelf.c:21453
+#: readelf.c:22053
+#, c-format
+msgid " Dlopen Metadata: %.*s\n"
+msgstr ""
+
+#: readelf.c:22067
msgid "NT_VMS_MHD (module header)"
msgstr ""
-#: readelf.c:21455
+#: readelf.c:22069
msgid "NT_VMS_LNM (language name)"
msgstr ""
-#: readelf.c:21457
+#: readelf.c:22071
msgid "NT_VMS_SRC (source files)"
msgstr ""
-#: readelf.c:21461
+#: readelf.c:22075
msgid "NT_VMS_EIDC (consistency check)"
msgstr ""
-#: readelf.c:21463
+#: readelf.c:22077
msgid "NT_VMS_FPMODE (FP mode)"
msgstr ""
-#: readelf.c:21467
+#: readelf.c:22081
msgid "NT_VMS_IMGNAM (image name)"
msgstr ""
-#: readelf.c:21469
+#: readelf.c:22083
msgid "NT_VMS_IMGID (image id)"
msgstr ""
-#: readelf.c:21471
+#: readelf.c:22085
msgid "NT_VMS_LINKID (link id)"
msgstr ""
-#: readelf.c:21473
+#: readelf.c:22087
msgid "NT_VMS_IMGBID (build id)"
msgstr ""
-#: readelf.c:21475
+#: readelf.c:22089
msgid "NT_VMS_GSTNAM (sym table name)"
msgstr ""
-#: readelf.c:21502
+#: readelf.c:22116
#, c-format
msgid " Creation date : %.17s\n"
msgstr ""
-#: readelf.c:21503
+#: readelf.c:22117
#, c-format
msgid " Last patch date: %.17s\n"
msgstr ""
-#: readelf.c:21506
+#: readelf.c:22120
#, c-format
msgid " Module name : %s\n"
msgstr ""
-#: readelf.c:21508
+#: readelf.c:22122
#, c-format
msgid " Module version : %s\n"
msgstr ""
-#: readelf.c:21510 readelf.c:21515
+#: readelf.c:22124 readelf.c:22129
#, c-format
msgid " Module version : <missing>\n"
msgstr ""
-#: readelf.c:21514
+#: readelf.c:22128
#, c-format
msgid " Module name : <missing>\n"
msgstr ""
-#: readelf.c:21520
+#: readelf.c:22134
#, c-format
msgid " Language: %.*s\n"
msgstr ""
-#: readelf.c:21524
+#: readelf.c:22138
#, c-format
msgid " Floating Point mode: "
msgstr ""
-#: readelf.c:21534
+#: readelf.c:22148
#, c-format
msgid " Link time: "
msgstr ""
-#: readelf.c:21544
+#: readelf.c:22158
#, c-format
msgid " Patch time: "
msgstr ""
-#: readelf.c:21557
+#: readelf.c:22171
#, c-format
msgid " Major id: %u, minor id: %u\n"
msgstr ""
-#: readelf.c:21560
+#: readelf.c:22174
#, c-format
msgid " Last modified : "
msgstr ""
-#: readelf.c:21562
+#: readelf.c:22176
#, c-format
msgid ""
"\n"
" Link flags : "
msgstr ""
-#: readelf.c:21565
+#: readelf.c:22179
#, c-format
msgid " Header flags: 0x%08x\n"
msgstr ""
-#: readelf.c:21567
+#: readelf.c:22181
#, c-format
msgid " Image id : %.*s\n"
msgstr ""
-#: readelf.c:21571
+#: readelf.c:22185
#, c-format
msgid " Image name: %.*s\n"
msgstr ""
-#: readelf.c:21575
+#: readelf.c:22189
#, c-format
msgid " Global symbol table name: %.*s\n"
msgstr ""
-#: readelf.c:21579
+#: readelf.c:22193
#, c-format
msgid " Image id: %.*s\n"
msgstr ""
-#: readelf.c:21583
+#: readelf.c:22197
#, c-format
msgid " Linker id: %.*s\n"
msgstr ""
-#: readelf.c:21593 readelf.c:22286
+#: readelf.c:22207 readelf.c:22900
#, c-format
msgid " <corrupt - data size is too small>\n"
msgstr ""
-#: readelf.c:21594
+#: readelf.c:22208
msgid "corrupt IA64 note: data size is too small\n"
msgstr ""
-#: readelf.c:21761 readelf.c:21770
+#: readelf.c:22375 readelf.c:22384
#, c-format
msgid " Applies to region from %#<PRIx64> to %#<PRIx64>\n"
msgstr ""
-#: readelf.c:21764 readelf.c:21773
+#: readelf.c:22378 readelf.c:22387
#, c-format
msgid " Applies to region from %#<PRIx64>\n"
msgstr ""
-#: readelf.c:21794
+#: readelf.c:22408
#, c-format
msgid " <invalid description size: %lx>\n"
msgstr ""
-#: readelf.c:21795
+#: readelf.c:22409
#, c-format
msgid " <invalid descsz>"
msgstr ""
-#: readelf.c:21821
+#: readelf.c:22435
#, c-format
msgid "Gap in build notes detected from %#<PRIx64> to %#<PRIx64>\n"
msgstr ""
-#: readelf.c:21825 readelf.c:21836
+#: readelf.c:22439 readelf.c:22450
#, c-format
msgid " Applies to region from %#<PRIx64>"
msgstr ""
-#: readelf.c:21830 readelf.c:21841
+#: readelf.c:22444 readelf.c:22455
#, c-format
msgid " to %#<PRIx64>"
msgstr ""
-#: readelf.c:21847
+#: readelf.c:22461
#, c-format
msgid " (%s)"
msgstr ""
-#: readelf.c:21868 readelf.c:21883
+#: readelf.c:22482 readelf.c:22497
#, c-format
msgid "corrupt name field in GNU build attribute note: size = %ld\n"
msgstr ""
-#: readelf.c:21869 readelf.c:21884
+#: readelf.c:22483 readelf.c:22498
msgid " <corrupt name>"
msgstr ""
-#: readelf.c:21903
+#: readelf.c:22517
#, c-format
msgid "unrecognised attribute type in name field: %d\n"
msgstr ""
-#: readelf.c:21904
+#: readelf.c:22518
msgid "<unknown name type>"
msgstr ""
-#: readelf.c:21914
+#: readelf.c:22528
msgid "<version>"
msgstr ""
-#: readelf.c:21919
+#: readelf.c:22533
msgid "<stack prot>"
msgstr ""
-#: readelf.c:21924
+#: readelf.c:22538
msgid "<relro>"
msgstr ""
-#: readelf.c:21929
+#: readelf.c:22543
msgid "<stack size>"
msgstr ""
-#: readelf.c:21934
+#: readelf.c:22548
msgid "<tool>"
msgstr ""
-#: readelf.c:21939
+#: readelf.c:22553
msgid "<ABI>"
msgstr ""
-#: readelf.c:21944
+#: readelf.c:22558
msgid "<PIC>"
msgstr ""
-#: readelf.c:21949
+#: readelf.c:22563
msgid "<short enum>"
msgstr ""
-#: readelf.c:21968
+#: readelf.c:22582
#, c-format
msgid "unrecognised byte in name field: %d\n"
msgstr ""
-#: readelf.c:21969
+#: readelf.c:22583
#, c-format
msgid "<unknown:_%d>"
msgstr ""
-#: readelf.c:21981
+#: readelf.c:22595
#, c-format
msgid "attribute does not have an expected type (%c)\n"
msgstr ""
-#: readelf.c:21985
+#: readelf.c:22599
#, c-format
msgid "corrupt name field: namesz: %lu but parsing gets to %td\n"
msgstr ""
-#: readelf.c:22012
+#: readelf.c:22626
#, c-format
msgid "corrupt numeric name field: too many bytes in the value: %x\n"
msgstr ""
-#: readelf.c:22101
+#: readelf.c:22715
#, c-format
msgid " description data: "
msgstr ""
-#: readelf.c:22249
+#: readelf.c:22863
msgid "failed to unpack msgpack contents in NT_AMDGPU_METADATA note"
msgstr ""
-#: readelf.c:22272
+#: readelf.c:22886
#, c-format
msgid " Stack Size: 0x%<PRIx32>\n"
msgstr ""
-#: readelf.c:22274
+#: readelf.c:22888
#, c-format
msgid " Stack allocated: %<PRIx32>\n"
msgstr ""
-#: readelf.c:22276
+#: readelf.c:22890
#, c-format
msgid " Executable: %s\n"
msgstr ""
-#: readelf.c:22287
+#: readelf.c:22901
msgid "corrupt QNX note: data size is too small\n"
msgstr ""
-#: readelf.c:22432
+#: readelf.c:23046
msgid "notes"
msgstr ""
-#: readelf.c:22444
+#: readelf.c:23058
#, c-format
msgid "Displaying notes found in: %s\n"
msgstr ""
-#: readelf.c:22446
+#: readelf.c:23060
#, c-format
msgid ""
"Displaying notes found at file offset 0x%08<PRIx64> with length 0x%"
"08<PRIx64>:\n"
msgstr ""
-#: readelf.c:22459
+#: readelf.c:23073
#, c-format
msgid "Corrupt note: alignment %<PRId64>, expecting 4 or 8\n"
msgstr ""
-#: readelf.c:22465
+#: readelf.c:23079
#, c-format
msgid " %-20s %-10s\tDescription\n"
msgstr ""
-#: readelf.c:22465
+#: readelf.c:23079
msgid "Owner"
msgstr ""
-#: readelf.c:22465
+#: readelf.c:23079
msgid "Data size"
msgstr ""
-#: readelf.c:22483 readelf.c:22512
+#: readelf.c:23097 readelf.c:23126
#, c-format
msgid "Corrupt note: only %zd byte remains, not enough for a full note\n"
msgid_plural ""
@@ -12680,25 +12914,25 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:22540
+#: readelf.c:23154
#, c-format
msgid "note with invalid namesz and/or descsz found at offset %#tx\n"
msgstr ""
-#: readelf.c:22542
+#: readelf.c:23156
#, c-format
msgid " type: %#lx, namesize: %#lx, descsize: %#lx, alignment: %u\n"
msgstr ""
-#: readelf.c:22560
+#: readelf.c:23174
msgid "Out of memory allocating space for inote name\n"
msgstr ""
-#: readelf.c:22618
+#: readelf.c:23232
msgid "v850 notes"
msgstr ""
-#: readelf.c:22625
+#: readelf.c:23239
#, c-format
msgid ""
"\n"
@@ -12706,76 +12940,76 @@ msgid ""
"length %#<PRIx64>:\n"
msgstr ""
-#: readelf.c:22643
+#: readelf.c:23257
#, c-format
msgid "Corrupt note: name size is too big: %lx\n"
msgstr ""
-#: readelf.c:22653
+#: readelf.c:23267
#, c-format
msgid "corrupt descsz found in note at offset %#tx\n"
msgstr ""
-#: readelf.c:22655 readelf.c:22668
+#: readelf.c:23269 readelf.c:23282
#, c-format
msgid " type: %#lx, namesize: %#lx, descsize: %#lx\n"
msgstr ""
-#: readelf.c:22666
+#: readelf.c:23280
#, c-format
msgid "corrupt namesz found in note at offset %#zx\n"
msgstr ""
-#: readelf.c:22742
+#: readelf.c:23356
#, c-format
msgid "No notes found in linked file '%s'.\n"
msgstr ""
-#: readelf.c:22745
+#: readelf.c:23359
#, c-format
msgid "No notes found file.\n"
msgstr ""
-#: readelf.c:22754
+#: readelf.c:23368
#, c-format
msgid " Unknown GNU attribute: %s\n"
msgstr ""
-#: readelf.c:23083
+#: readelf.c:23697
#, c-format
msgid "%s: Failed to read file header\n"
msgstr ""
-#: readelf.c:23098
+#: readelf.c:23712
#, c-format
msgid ""
"\n"
"File: %s\n"
msgstr ""
-#: readelf.c:23259
+#: readelf.c:23873
#, c-format
msgid "%s: unable to dump the index as none was found\n"
msgstr ""
-#: readelf.c:23266
+#: readelf.c:23880
#, c-format
msgid ""
"Index of archive %s: (%<PRIu64> entries, %#<PRIx64> bytes in the symbol "
"table)\n"
msgstr ""
-#: readelf.c:23290
+#: readelf.c:23904
#, c-format
msgid "Contents of binary %s at offset "
msgstr ""
-#: readelf.c:23302
+#: readelf.c:23916
#, c-format
msgid "%s: end of the symbol table reached before the end of the index\n"
msgstr ""
-#: readelf.c:23321
+#: readelf.c:23935
#, c-format
msgid ""
"%s: %<PRId64> byte remains in the symbol table, but without corresponding "
@@ -12786,36 +13020,36 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: readelf.c:23334
+#: readelf.c:23948
#, c-format
msgid "%s: failed to seek back to start of object files in the archive\n"
msgstr ""
-#: readelf.c:23426 readelf.c:23545
+#: readelf.c:24040 readelf.c:24159
#, c-format
msgid "Input file '%s' is not readable.\n"
msgstr ""
-#: readelf.c:23454
+#: readelf.c:24068
#, c-format
msgid "%s: contains corrupt thin archive: %s\n"
msgstr ""
-#: readelf.c:23472
+#: readelf.c:24086
#, c-format
msgid "%s: failed to seek to archive member.\n"
msgstr ""
-#: readelf.c:23537
+#: readelf.c:24151
msgid "Out of memory allocating file data structure\n"
msgstr ""
-#: readelf.c:23574
+#: readelf.c:24188
#, c-format
msgid "File %s is not an archive so its index cannot be displayed.\n"
msgstr ""
-#: readelf.c:23645
+#: readelf.c:24259
msgid "Nothing to do.\n"
msgstr ""
diff --git a/binutils/testsuite/binutils-all/mips/mips.exp b/binutils/testsuite/binutils-all/mips/mips.exp
index 1445754..846dd13 100644
--- a/binutils/testsuite/binutils-all/mips/mips.exp
+++ b/binutils/testsuite/binutils-all/mips/mips.exp
@@ -256,6 +256,8 @@ run_dump_test_o32 "mips32r6-branch-alias"
run_dump_test_o32 "mips32r6-branch-noalias"
run_dump_test_o32 "micromips-branch-alias"
run_dump_test_o32 "micromips-branch-noalias"
+run_dump_test_o32 "mips32-mt-alias"
+run_dump_test_o32 "mips32-mt-noalias"
run_dump_test_o32 "mips-note-2"
run_dump_test_n32 "mips-note-2-n32"
diff --git a/binutils/testsuite/binutils-all/mips/mips32-mt-alias.d b/binutils/testsuite/binutils-all/mips/mips32-mt-alias.d
new file mode 100644
index 0000000..d9989e9
--- /dev/null
+++ b/binutils/testsuite/binutils-all/mips/mips32-mt-alias.d
@@ -0,0 +1,634 @@
+#PROG: objcopy
+#objdump: -d --prefix-addresses --show-raw-insn
+#name: MIPS MT ASE instruction alias disassembly
+#as: -mips32r2 -mmt
+#source: ../../../../gas/testsuite/gas/mips/mips32-mt.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 41600bc1 dmt
+[0-9a-f]+ <[^>]*> 417f0bc1 dmt ra
+[0-9a-f]+ <[^>]*> 41600001 dvpe
+[0-9a-f]+ <[^>]*> 41610001 dvpe at
+[0-9a-f]+ <[^>]*> 41600be1 emt
+[0-9a-f]+ <[^>]*> 41620be1 emt v0
+[0-9a-f]+ <[^>]*> 41600021 evpe
+[0-9a-f]+ <[^>]*> 41630021 evpe v1
+[0-9a-f]+ <[^>]*> 7ca62008 fork a0,a1,a2
+[0-9a-f]+ <[^>]*> 7ca00009 yield a1
+[0-9a-f]+ <[^>]*> 7ce03009 yield a2,a3
+[0-9a-f]+ <[^>]*> 41083800 mftc0 a3,c0_badvaddr
+[0-9a-f]+ <[^>]*> 41004000 mftc0 t0,c0_index
+[0-9a-f]+ <[^>]*> 41004001 mftc0 t0,c0_mvpcontrol
+[0-9a-f]+ <[^>]*> 41004002 mftc0 t0,c0_mvpconf0
+[0-9a-f]+ <[^>]*> 41004003 mftc0 t0,c0_mvpconf1
+[0-9a-f]+ <[^>]*> 41004004 mftc0 t0,\$0,4
+[0-9a-f]+ <[^>]*> 41004005 mftc0 t0,\$0,5
+[0-9a-f]+ <[^>]*> 41004006 mftc0 t0,\$0,6
+[0-9a-f]+ <[^>]*> 41004007 mftc0 t0,\$0,7
+[0-9a-f]+ <[^>]*> 41014000 mftc0 t0,c0_random
+[0-9a-f]+ <[^>]*> 41014001 mftc0 t0,c0_vpecontrol
+[0-9a-f]+ <[^>]*> 41014002 mftc0 t0,c0_vpeconf0
+[0-9a-f]+ <[^>]*> 41014003 mftc0 t0,c0_vpeconf1
+[0-9a-f]+ <[^>]*> 41014004 mftc0 t0,c0_yqmask
+[0-9a-f]+ <[^>]*> 41014005 mftc0 t0,c0_vpeschedule
+[0-9a-f]+ <[^>]*> 41014006 mftc0 t0,c0_vpeschefback
+[0-9a-f]+ <[^>]*> 41014007 mftc0 t0,\$1,7
+[0-9a-f]+ <[^>]*> 41024000 mftc0 t0,c0_entrylo0
+[0-9a-f]+ <[^>]*> 41024001 mftc0 t0,c0_tcstatus
+[0-9a-f]+ <[^>]*> 41024002 mftc0 t0,c0_tcbind
+[0-9a-f]+ <[^>]*> 41024003 mftc0 t0,c0_tcrestart
+[0-9a-f]+ <[^>]*> 41024004 mftc0 t0,c0_tchalt
+[0-9a-f]+ <[^>]*> 41024005 mftc0 t0,c0_tccontext
+[0-9a-f]+ <[^>]*> 41024006 mftc0 t0,c0_tcschedule
+[0-9a-f]+ <[^>]*> 41024007 mftc0 t0,c0_tcschefback
+[0-9a-f]+ <[^>]*> 41034000 mftc0 t0,c0_entrylo1
+[0-9a-f]+ <[^>]*> 41034001 mftc0 t0,\$3,1
+[0-9a-f]+ <[^>]*> 41034002 mftc0 t0,\$3,2
+[0-9a-f]+ <[^>]*> 41034003 mftc0 t0,\$3,3
+[0-9a-f]+ <[^>]*> 41034004 mftc0 t0,\$3,4
+[0-9a-f]+ <[^>]*> 41034005 mftc0 t0,\$3,5
+[0-9a-f]+ <[^>]*> 41034006 mftc0 t0,\$3,6
+[0-9a-f]+ <[^>]*> 41034007 mftc0 t0,\$3,7
+[0-9a-f]+ <[^>]*> 41044000 mftc0 t0,c0_context
+[0-9a-f]+ <[^>]*> 41044001 mftc0 t0,c0_contextconfig
+[0-9a-f]+ <[^>]*> 41044002 mftc0 t0,\$4,2
+[0-9a-f]+ <[^>]*> 41044003 mftc0 t0,\$4,3
+[0-9a-f]+ <[^>]*> 41044004 mftc0 t0,\$4,4
+[0-9a-f]+ <[^>]*> 41044005 mftc0 t0,\$4,5
+[0-9a-f]+ <[^>]*> 41044006 mftc0 t0,\$4,6
+[0-9a-f]+ <[^>]*> 41044007 mftc0 t0,\$4,7
+[0-9a-f]+ <[^>]*> 41054000 mftc0 t0,c0_pagemask
+[0-9a-f]+ <[^>]*> 41054001 mftc0 t0,c0_pagegrain
+[0-9a-f]+ <[^>]*> 41054002 mftc0 t0,\$5,2
+[0-9a-f]+ <[^>]*> 41054003 mftc0 t0,\$5,3
+[0-9a-f]+ <[^>]*> 41054004 mftc0 t0,\$5,4
+[0-9a-f]+ <[^>]*> 41054005 mftc0 t0,\$5,5
+[0-9a-f]+ <[^>]*> 41054006 mftc0 t0,\$5,6
+[0-9a-f]+ <[^>]*> 41054007 mftc0 t0,\$5,7
+[0-9a-f]+ <[^>]*> 41064000 mftc0 t0,c0_wired
+[0-9a-f]+ <[^>]*> 41064001 mftc0 t0,c0_srsconf0
+[0-9a-f]+ <[^>]*> 41064002 mftc0 t0,c0_srsconf1
+[0-9a-f]+ <[^>]*> 41064003 mftc0 t0,c0_srsconf2
+[0-9a-f]+ <[^>]*> 41064004 mftc0 t0,c0_srsconf3
+[0-9a-f]+ <[^>]*> 41064005 mftc0 t0,c0_srsconf4
+[0-9a-f]+ <[^>]*> 41064006 mftc0 t0,\$6,6
+[0-9a-f]+ <[^>]*> 41064007 mftc0 t0,\$6,7
+[0-9a-f]+ <[^>]*> 41074000 mftc0 t0,c0_hwrena
+[0-9a-f]+ <[^>]*> 41074001 mftc0 t0,\$7,1
+[0-9a-f]+ <[^>]*> 41074002 mftc0 t0,\$7,2
+[0-9a-f]+ <[^>]*> 41074003 mftc0 t0,\$7,3
+[0-9a-f]+ <[^>]*> 41074004 mftc0 t0,\$7,4
+[0-9a-f]+ <[^>]*> 41074005 mftc0 t0,\$7,5
+[0-9a-f]+ <[^>]*> 41074006 mftc0 t0,\$7,6
+[0-9a-f]+ <[^>]*> 41074007 mftc0 t0,\$7,7
+[0-9a-f]+ <[^>]*> 41084000 mftc0 t0,c0_badvaddr
+[0-9a-f]+ <[^>]*> 41084001 mftc0 t0,\$8,1
+[0-9a-f]+ <[^>]*> 41084002 mftc0 t0,\$8,2
+[0-9a-f]+ <[^>]*> 41084003 mftc0 t0,\$8,3
+[0-9a-f]+ <[^>]*> 41084004 mftc0 t0,\$8,4
+[0-9a-f]+ <[^>]*> 41084005 mftc0 t0,\$8,5
+[0-9a-f]+ <[^>]*> 41084006 mftc0 t0,\$8,6
+[0-9a-f]+ <[^>]*> 41084007 mftc0 t0,\$8,7
+[0-9a-f]+ <[^>]*> 41094000 mftc0 t0,c0_count
+[0-9a-f]+ <[^>]*> 41094001 mftc0 t0,\$9,1
+[0-9a-f]+ <[^>]*> 41094002 mftc0 t0,\$9,2
+[0-9a-f]+ <[^>]*> 41094003 mftc0 t0,\$9,3
+[0-9a-f]+ <[^>]*> 41094004 mftc0 t0,\$9,4
+[0-9a-f]+ <[^>]*> 41094005 mftc0 t0,\$9,5
+[0-9a-f]+ <[^>]*> 41094006 mftc0 t0,\$9,6
+[0-9a-f]+ <[^>]*> 41094007 mftc0 t0,\$9,7
+[0-9a-f]+ <[^>]*> 410a4000 mftc0 t0,c0_entryhi
+[0-9a-f]+ <[^>]*> 410a4001 mftc0 t0,\$10,1
+[0-9a-f]+ <[^>]*> 410a4002 mftc0 t0,\$10,2
+[0-9a-f]+ <[^>]*> 410a4003 mftc0 t0,\$10,3
+[0-9a-f]+ <[^>]*> 410a4004 mftc0 t0,\$10,4
+[0-9a-f]+ <[^>]*> 410a4005 mftc0 t0,\$10,5
+[0-9a-f]+ <[^>]*> 410a4006 mftc0 t0,\$10,6
+[0-9a-f]+ <[^>]*> 410a4007 mftc0 t0,\$10,7
+[0-9a-f]+ <[^>]*> 410b4000 mftc0 t0,c0_compare
+[0-9a-f]+ <[^>]*> 410b4001 mftc0 t0,\$11,1
+[0-9a-f]+ <[^>]*> 410b4002 mftc0 t0,\$11,2
+[0-9a-f]+ <[^>]*> 410b4003 mftc0 t0,\$11,3
+[0-9a-f]+ <[^>]*> 410b4004 mftc0 t0,\$11,4
+[0-9a-f]+ <[^>]*> 410b4005 mftc0 t0,\$11,5
+[0-9a-f]+ <[^>]*> 410b4006 mftc0 t0,\$11,6
+[0-9a-f]+ <[^>]*> 410b4007 mftc0 t0,\$11,7
+[0-9a-f]+ <[^>]*> 410c4000 mftc0 t0,c0_status
+[0-9a-f]+ <[^>]*> 410c4001 mftc0 t0,c0_intctl
+[0-9a-f]+ <[^>]*> 410c4002 mftc0 t0,c0_srsctl
+[0-9a-f]+ <[^>]*> 410c4003 mftc0 t0,c0_srsmap
+[0-9a-f]+ <[^>]*> 410c4004 mftc0 t0,\$12,4
+[0-9a-f]+ <[^>]*> 410c4005 mftc0 t0,\$12,5
+[0-9a-f]+ <[^>]*> 410c4006 mftc0 t0,\$12,6
+[0-9a-f]+ <[^>]*> 410c4007 mftc0 t0,\$12,7
+[0-9a-f]+ <[^>]*> 410d4000 mftc0 t0,c0_cause
+[0-9a-f]+ <[^>]*> 410d4001 mftc0 t0,\$13,1
+[0-9a-f]+ <[^>]*> 410d4002 mftc0 t0,\$13,2
+[0-9a-f]+ <[^>]*> 410d4003 mftc0 t0,\$13,3
+[0-9a-f]+ <[^>]*> 410d4004 mftc0 t0,\$13,4
+[0-9a-f]+ <[^>]*> 410d4005 mftc0 t0,\$13,5
+[0-9a-f]+ <[^>]*> 410d4006 mftc0 t0,\$13,6
+[0-9a-f]+ <[^>]*> 410d4007 mftc0 t0,\$13,7
+[0-9a-f]+ <[^>]*> 410e4000 mftc0 t0,c0_epc
+[0-9a-f]+ <[^>]*> 410e4001 mftc0 t0,\$14,1
+[0-9a-f]+ <[^>]*> 410e4002 mftc0 t0,\$14,2
+[0-9a-f]+ <[^>]*> 410e4003 mftc0 t0,\$14,3
+[0-9a-f]+ <[^>]*> 410e4004 mftc0 t0,\$14,4
+[0-9a-f]+ <[^>]*> 410e4005 mftc0 t0,\$14,5
+[0-9a-f]+ <[^>]*> 410e4006 mftc0 t0,\$14,6
+[0-9a-f]+ <[^>]*> 410e4007 mftc0 t0,\$14,7
+[0-9a-f]+ <[^>]*> 410f4000 mftc0 t0,c0_prid
+[0-9a-f]+ <[^>]*> 410f4001 mftc0 t0,c0_ebase
+[0-9a-f]+ <[^>]*> 410f4002 mftc0 t0,\$15,2
+[0-9a-f]+ <[^>]*> 410f4003 mftc0 t0,\$15,3
+[0-9a-f]+ <[^>]*> 410f4004 mftc0 t0,\$15,4
+[0-9a-f]+ <[^>]*> 410f4005 mftc0 t0,\$15,5
+[0-9a-f]+ <[^>]*> 410f4006 mftc0 t0,\$15,6
+[0-9a-f]+ <[^>]*> 410f4007 mftc0 t0,\$15,7
+[0-9a-f]+ <[^>]*> 41104000 mftc0 t0,c0_config
+[0-9a-f]+ <[^>]*> 41104001 mftc0 t0,c0_config1
+[0-9a-f]+ <[^>]*> 41104002 mftc0 t0,c0_config2
+[0-9a-f]+ <[^>]*> 41104003 mftc0 t0,c0_config3
+[0-9a-f]+ <[^>]*> 41104004 mftc0 t0,\$16,4
+[0-9a-f]+ <[^>]*> 41104005 mftc0 t0,\$16,5
+[0-9a-f]+ <[^>]*> 41104006 mftc0 t0,\$16,6
+[0-9a-f]+ <[^>]*> 41104007 mftc0 t0,\$16,7
+[0-9a-f]+ <[^>]*> 41114000 mftc0 t0,c0_lladdr
+[0-9a-f]+ <[^>]*> 41114001 mftc0 t0,\$17,1
+[0-9a-f]+ <[^>]*> 41114002 mftc0 t0,\$17,2
+[0-9a-f]+ <[^>]*> 41114003 mftc0 t0,\$17,3
+[0-9a-f]+ <[^>]*> 41114004 mftc0 t0,\$17,4
+[0-9a-f]+ <[^>]*> 41114005 mftc0 t0,\$17,5
+[0-9a-f]+ <[^>]*> 41114006 mftc0 t0,\$17,6
+[0-9a-f]+ <[^>]*> 41114007 mftc0 t0,\$17,7
+[0-9a-f]+ <[^>]*> 41124000 mftc0 t0,c0_watchlo
+[0-9a-f]+ <[^>]*> 41124001 mftc0 t0,c0_watchlo,1
+[0-9a-f]+ <[^>]*> 41124002 mftc0 t0,c0_watchlo,2
+[0-9a-f]+ <[^>]*> 41124003 mftc0 t0,c0_watchlo,3
+[0-9a-f]+ <[^>]*> 41124004 mftc0 t0,c0_watchlo,4
+[0-9a-f]+ <[^>]*> 41124005 mftc0 t0,c0_watchlo,5
+[0-9a-f]+ <[^>]*> 41124006 mftc0 t0,c0_watchlo,6
+[0-9a-f]+ <[^>]*> 41124007 mftc0 t0,c0_watchlo,7
+[0-9a-f]+ <[^>]*> 41134000 mftc0 t0,c0_watchhi
+[0-9a-f]+ <[^>]*> 41134001 mftc0 t0,c0_watchhi,1
+[0-9a-f]+ <[^>]*> 41134002 mftc0 t0,c0_watchhi,2
+[0-9a-f]+ <[^>]*> 41134003 mftc0 t0,c0_watchhi,3
+[0-9a-f]+ <[^>]*> 41134004 mftc0 t0,c0_watchhi,4
+[0-9a-f]+ <[^>]*> 41134005 mftc0 t0,c0_watchhi,5
+[0-9a-f]+ <[^>]*> 41134006 mftc0 t0,c0_watchhi,6
+[0-9a-f]+ <[^>]*> 41134007 mftc0 t0,c0_watchhi,7
+[0-9a-f]+ <[^>]*> 41144000 mftc0 t0,c0_xcontext
+[0-9a-f]+ <[^>]*> 41144001 mftc0 t0,\$20,1
+[0-9a-f]+ <[^>]*> 41144002 mftc0 t0,\$20,2
+[0-9a-f]+ <[^>]*> 41144003 mftc0 t0,\$20,3
+[0-9a-f]+ <[^>]*> 41144004 mftc0 t0,\$20,4
+[0-9a-f]+ <[^>]*> 41144005 mftc0 t0,\$20,5
+[0-9a-f]+ <[^>]*> 41144006 mftc0 t0,\$20,6
+[0-9a-f]+ <[^>]*> 41144007 mftc0 t0,\$20,7
+[0-9a-f]+ <[^>]*> 41154000 mftc0 t0,\$21
+[0-9a-f]+ <[^>]*> 41154001 mftc0 t0,\$21,1
+[0-9a-f]+ <[^>]*> 41154002 mftc0 t0,\$21,2
+[0-9a-f]+ <[^>]*> 41154003 mftc0 t0,\$21,3
+[0-9a-f]+ <[^>]*> 41154004 mftc0 t0,\$21,4
+[0-9a-f]+ <[^>]*> 41154005 mftc0 t0,\$21,5
+[0-9a-f]+ <[^>]*> 41154006 mftc0 t0,\$21,6
+[0-9a-f]+ <[^>]*> 41154007 mftc0 t0,\$21,7
+[0-9a-f]+ <[^>]*> 41164000 mftc0 t0,\$22
+[0-9a-f]+ <[^>]*> 41164001 mftc0 t0,\$22,1
+[0-9a-f]+ <[^>]*> 41164002 mftc0 t0,\$22,2
+[0-9a-f]+ <[^>]*> 41164003 mftc0 t0,\$22,3
+[0-9a-f]+ <[^>]*> 41164004 mftc0 t0,\$22,4
+[0-9a-f]+ <[^>]*> 41164005 mftc0 t0,\$22,5
+[0-9a-f]+ <[^>]*> 41164006 mftc0 t0,\$22,6
+[0-9a-f]+ <[^>]*> 41164007 mftc0 t0,\$22,7
+[0-9a-f]+ <[^>]*> 41174000 mftc0 t0,c0_debug
+[0-9a-f]+ <[^>]*> 41174001 mftc0 t0,c0_tracecontrol
+[0-9a-f]+ <[^>]*> 41174002 mftc0 t0,c0_tracecontrol2
+[0-9a-f]+ <[^>]*> 41174003 mftc0 t0,c0_usertracedata
+[0-9a-f]+ <[^>]*> 41174004 mftc0 t0,c0_tracebpc
+[0-9a-f]+ <[^>]*> 41174005 mftc0 t0,\$23,5
+[0-9a-f]+ <[^>]*> 41174006 mftc0 t0,\$23,6
+[0-9a-f]+ <[^>]*> 41174007 mftc0 t0,\$23,7
+[0-9a-f]+ <[^>]*> 41184000 mftc0 t0,c0_depc
+[0-9a-f]+ <[^>]*> 41184001 mftc0 t0,\$24,1
+[0-9a-f]+ <[^>]*> 41184002 mftc0 t0,\$24,2
+[0-9a-f]+ <[^>]*> 41184003 mftc0 t0,\$24,3
+[0-9a-f]+ <[^>]*> 41184004 mftc0 t0,\$24,4
+[0-9a-f]+ <[^>]*> 41184005 mftc0 t0,\$24,5
+[0-9a-f]+ <[^>]*> 41184006 mftc0 t0,\$24,6
+[0-9a-f]+ <[^>]*> 41184007 mftc0 t0,\$24,7
+[0-9a-f]+ <[^>]*> 41194000 mftc0 t0,c0_perfcnt
+[0-9a-f]+ <[^>]*> 41194001 mftc0 t0,c0_perfcnt,1
+[0-9a-f]+ <[^>]*> 41194002 mftc0 t0,c0_perfcnt,2
+[0-9a-f]+ <[^>]*> 41194003 mftc0 t0,c0_perfcnt,3
+[0-9a-f]+ <[^>]*> 41194004 mftc0 t0,c0_perfcnt,4
+[0-9a-f]+ <[^>]*> 41194005 mftc0 t0,c0_perfcnt,5
+[0-9a-f]+ <[^>]*> 41194006 mftc0 t0,c0_perfcnt,6
+[0-9a-f]+ <[^>]*> 41194007 mftc0 t0,c0_perfcnt,7
+[0-9a-f]+ <[^>]*> 411a4000 mftc0 t0,c0_errctl
+[0-9a-f]+ <[^>]*> 411a4001 mftc0 t0,\$26,1
+[0-9a-f]+ <[^>]*> 411a4002 mftc0 t0,\$26,2
+[0-9a-f]+ <[^>]*> 411a4003 mftc0 t0,\$26,3
+[0-9a-f]+ <[^>]*> 411a4004 mftc0 t0,\$26,4
+[0-9a-f]+ <[^>]*> 411a4005 mftc0 t0,\$26,5
+[0-9a-f]+ <[^>]*> 411a4006 mftc0 t0,\$26,6
+[0-9a-f]+ <[^>]*> 411a4007 mftc0 t0,\$26,7
+[0-9a-f]+ <[^>]*> 411b4000 mftc0 t0,c0_cacheerr
+[0-9a-f]+ <[^>]*> 411b4001 mftc0 t0,c0_cacheerr,1
+[0-9a-f]+ <[^>]*> 411b4002 mftc0 t0,c0_cacheerr,2
+[0-9a-f]+ <[^>]*> 411b4003 mftc0 t0,c0_cacheerr,3
+[0-9a-f]+ <[^>]*> 411b4004 mftc0 t0,\$27,4
+[0-9a-f]+ <[^>]*> 411b4005 mftc0 t0,\$27,5
+[0-9a-f]+ <[^>]*> 411b4006 mftc0 t0,\$27,6
+[0-9a-f]+ <[^>]*> 411b4007 mftc0 t0,\$27,7
+[0-9a-f]+ <[^>]*> 411c4000 mftc0 t0,c0_taglo
+[0-9a-f]+ <[^>]*> 411c4001 mftc0 t0,c0_datalo
+[0-9a-f]+ <[^>]*> 411c4002 mftc0 t0,c0_taglo1
+[0-9a-f]+ <[^>]*> 411c4003 mftc0 t0,c0_datalo1
+[0-9a-f]+ <[^>]*> 411c4004 mftc0 t0,c0_taglo2
+[0-9a-f]+ <[^>]*> 411c4005 mftc0 t0,c0_datalo2
+[0-9a-f]+ <[^>]*> 411c4006 mftc0 t0,c0_taglo3
+[0-9a-f]+ <[^>]*> 411c4007 mftc0 t0,c0_datalo3
+[0-9a-f]+ <[^>]*> 411d4000 mftc0 t0,c0_taghi
+[0-9a-f]+ <[^>]*> 411d4001 mftc0 t0,c0_datahi
+[0-9a-f]+ <[^>]*> 411d4002 mftc0 t0,c0_taghi1
+[0-9a-f]+ <[^>]*> 411d4003 mftc0 t0,c0_datahi1
+[0-9a-f]+ <[^>]*> 411d4004 mftc0 t0,c0_taghi2
+[0-9a-f]+ <[^>]*> 411d4005 mftc0 t0,c0_datahi2
+[0-9a-f]+ <[^>]*> 411d4006 mftc0 t0,c0_taghi3
+[0-9a-f]+ <[^>]*> 411d4007 mftc0 t0,c0_datahi3
+[0-9a-f]+ <[^>]*> 411e4000 mftc0 t0,c0_errorepc
+[0-9a-f]+ <[^>]*> 411e4001 mftc0 t0,\$30,1
+[0-9a-f]+ <[^>]*> 411e4002 mftc0 t0,\$30,2
+[0-9a-f]+ <[^>]*> 411e4003 mftc0 t0,\$30,3
+[0-9a-f]+ <[^>]*> 411e4004 mftc0 t0,\$30,4
+[0-9a-f]+ <[^>]*> 411e4005 mftc0 t0,\$30,5
+[0-9a-f]+ <[^>]*> 411e4006 mftc0 t0,\$30,6
+[0-9a-f]+ <[^>]*> 411e4007 mftc0 t0,\$30,7
+[0-9a-f]+ <[^>]*> 411f4000 mftc0 t0,c0_desave
+[0-9a-f]+ <[^>]*> 411f4001 mftc0 t0,\$31,1
+[0-9a-f]+ <[^>]*> 411f4002 mftc0 t0,\$31,2
+[0-9a-f]+ <[^>]*> 411f4003 mftc0 t0,\$31,3
+[0-9a-f]+ <[^>]*> 411f4004 mftc0 t0,\$31,4
+[0-9a-f]+ <[^>]*> 411f4005 mftc0 t0,\$31,5
+[0-9a-f]+ <[^>]*> 411f4006 mftc0 t0,\$31,6
+[0-9a-f]+ <[^>]*> 411f4007 mftc0 t0,\$31,7
+[0-9a-f]+ <[^>]*> 410a4820 mftgpr t1,t2
+[0-9a-f]+ <[^>]*> 41005021 mftlo t2
+[0-9a-f]+ <[^>]*> 41005821 mftlo t3
+[0-9a-f]+ <[^>]*> 41016021 mfthi t4
+[0-9a-f]+ <[^>]*> 41056821 mfthi t5,\$ac1
+[0-9a-f]+ <[^>]*> 41027021 mftacx t6
+[0-9a-f]+ <[^>]*> 410a7821 mftacx t7,\$ac2
+[0-9a-f]+ <[^>]*> 41108021 mftdsp s0
+[0-9a-f]+ <[^>]*> 41128822 mftc1 s1,\$f18
+[0-9a-f]+ <[^>]*> 41139022 mftc1 s2,\$f19
+[0-9a-f]+ <[^>]*> 41149832 mfthc1 s3,\$f20
+[0-9a-f]+ <[^>]*> 4116a032 mfthc1 s4,\$f22
+[0-9a-f]+ <[^>]*> 4116a823 cftc1 s5,\$22
+[0-9a-f]+ <[^>]*> 4117b023 cftc1 s6,\$23
+[0-9a-f]+ <[^>]*> 4118b824 mftc2 s7,\$24
+[0-9a-f]+ <[^>]*> 4119c034 mfthc2 t8,\$25
+[0-9a-f]+ <[^>]*> 411ac825 cftc2 t9,\$26
+[0-9a-f]+ <[^>]*> 419ad800 mttc0 k0,c0_cacheerr
+[0-9a-f]+ <[^>]*> 419b0000 mttc0 k1,c0_index
+[0-9a-f]+ <[^>]*> 419b0001 mttc0 k1,c0_mvpcontrol
+[0-9a-f]+ <[^>]*> 419b0002 mttc0 k1,c0_mvpconf0
+[0-9a-f]+ <[^>]*> 419b0003 mttc0 k1,c0_mvpconf1
+[0-9a-f]+ <[^>]*> 419b0004 mttc0 k1,\$0,4
+[0-9a-f]+ <[^>]*> 419b0005 mttc0 k1,\$0,5
+[0-9a-f]+ <[^>]*> 419b0006 mttc0 k1,\$0,6
+[0-9a-f]+ <[^>]*> 419b0007 mttc0 k1,\$0,7
+[0-9a-f]+ <[^>]*> 419b0800 mttc0 k1,c0_random
+[0-9a-f]+ <[^>]*> 419b0801 mttc0 k1,c0_vpecontrol
+[0-9a-f]+ <[^>]*> 419b0802 mttc0 k1,c0_vpeconf0
+[0-9a-f]+ <[^>]*> 419b0803 mttc0 k1,c0_vpeconf1
+[0-9a-f]+ <[^>]*> 419b0804 mttc0 k1,c0_yqmask
+[0-9a-f]+ <[^>]*> 419b0805 mttc0 k1,c0_vpeschedule
+[0-9a-f]+ <[^>]*> 419b0806 mttc0 k1,c0_vpeschefback
+[0-9a-f]+ <[^>]*> 419b0807 mttc0 k1,\$1,7
+[0-9a-f]+ <[^>]*> 419b1000 mttc0 k1,c0_entrylo0
+[0-9a-f]+ <[^>]*> 419b1001 mttc0 k1,c0_tcstatus
+[0-9a-f]+ <[^>]*> 419b1002 mttc0 k1,c0_tcbind
+[0-9a-f]+ <[^>]*> 419b1003 mttc0 k1,c0_tcrestart
+[0-9a-f]+ <[^>]*> 419b1004 mttc0 k1,c0_tchalt
+[0-9a-f]+ <[^>]*> 419b1005 mttc0 k1,c0_tccontext
+[0-9a-f]+ <[^>]*> 419b1006 mttc0 k1,c0_tcschedule
+[0-9a-f]+ <[^>]*> 419b1007 mttc0 k1,c0_tcschefback
+[0-9a-f]+ <[^>]*> 419b1800 mttc0 k1,c0_entrylo1
+[0-9a-f]+ <[^>]*> 419b1801 mttc0 k1,\$3,1
+[0-9a-f]+ <[^>]*> 419b1802 mttc0 k1,\$3,2
+[0-9a-f]+ <[^>]*> 419b1803 mttc0 k1,\$3,3
+[0-9a-f]+ <[^>]*> 419b1804 mttc0 k1,\$3,4
+[0-9a-f]+ <[^>]*> 419b1805 mttc0 k1,\$3,5
+[0-9a-f]+ <[^>]*> 419b1806 mttc0 k1,\$3,6
+[0-9a-f]+ <[^>]*> 419b1807 mttc0 k1,\$3,7
+[0-9a-f]+ <[^>]*> 419b2000 mttc0 k1,c0_context
+[0-9a-f]+ <[^>]*> 419b2001 mttc0 k1,c0_contextconfig
+[0-9a-f]+ <[^>]*> 419b2002 mttc0 k1,\$4,2
+[0-9a-f]+ <[^>]*> 419b2003 mttc0 k1,\$4,3
+[0-9a-f]+ <[^>]*> 419b2004 mttc0 k1,\$4,4
+[0-9a-f]+ <[^>]*> 419b2005 mttc0 k1,\$4,5
+[0-9a-f]+ <[^>]*> 419b2006 mttc0 k1,\$4,6
+[0-9a-f]+ <[^>]*> 419b2007 mttc0 k1,\$4,7
+[0-9a-f]+ <[^>]*> 419b2800 mttc0 k1,c0_pagemask
+[0-9a-f]+ <[^>]*> 419b2801 mttc0 k1,c0_pagegrain
+[0-9a-f]+ <[^>]*> 419b2802 mttc0 k1,\$5,2
+[0-9a-f]+ <[^>]*> 419b2803 mttc0 k1,\$5,3
+[0-9a-f]+ <[^>]*> 419b2804 mttc0 k1,\$5,4
+[0-9a-f]+ <[^>]*> 419b2805 mttc0 k1,\$5,5
+[0-9a-f]+ <[^>]*> 419b2806 mttc0 k1,\$5,6
+[0-9a-f]+ <[^>]*> 419b2807 mttc0 k1,\$5,7
+[0-9a-f]+ <[^>]*> 419b3000 mttc0 k1,c0_wired
+[0-9a-f]+ <[^>]*> 419b3001 mttc0 k1,c0_srsconf0
+[0-9a-f]+ <[^>]*> 419b3002 mttc0 k1,c0_srsconf1
+[0-9a-f]+ <[^>]*> 419b3003 mttc0 k1,c0_srsconf2
+[0-9a-f]+ <[^>]*> 419b3004 mttc0 k1,c0_srsconf3
+[0-9a-f]+ <[^>]*> 419b3005 mttc0 k1,c0_srsconf4
+[0-9a-f]+ <[^>]*> 419b3006 mttc0 k1,\$6,6
+[0-9a-f]+ <[^>]*> 419b3007 mttc0 k1,\$6,7
+[0-9a-f]+ <[^>]*> 419b3800 mttc0 k1,c0_hwrena
+[0-9a-f]+ <[^>]*> 419b3801 mttc0 k1,\$7,1
+[0-9a-f]+ <[^>]*> 419b3802 mttc0 k1,\$7,2
+[0-9a-f]+ <[^>]*> 419b3803 mttc0 k1,\$7,3
+[0-9a-f]+ <[^>]*> 419b3804 mttc0 k1,\$7,4
+[0-9a-f]+ <[^>]*> 419b3805 mttc0 k1,\$7,5
+[0-9a-f]+ <[^>]*> 419b3806 mttc0 k1,\$7,6
+[0-9a-f]+ <[^>]*> 419b3807 mttc0 k1,\$7,7
+[0-9a-f]+ <[^>]*> 419b4000 mttc0 k1,c0_badvaddr
+[0-9a-f]+ <[^>]*> 419b4001 mttc0 k1,\$8,1
+[0-9a-f]+ <[^>]*> 419b4002 mttc0 k1,\$8,2
+[0-9a-f]+ <[^>]*> 419b4003 mttc0 k1,\$8,3
+[0-9a-f]+ <[^>]*> 419b4004 mttc0 k1,\$8,4
+[0-9a-f]+ <[^>]*> 419b4005 mttc0 k1,\$8,5
+[0-9a-f]+ <[^>]*> 419b4006 mttc0 k1,\$8,6
+[0-9a-f]+ <[^>]*> 419b4007 mttc0 k1,\$8,7
+[0-9a-f]+ <[^>]*> 419b4800 mttc0 k1,c0_count
+[0-9a-f]+ <[^>]*> 419b4801 mttc0 k1,\$9,1
+[0-9a-f]+ <[^>]*> 419b4802 mttc0 k1,\$9,2
+[0-9a-f]+ <[^>]*> 419b4803 mttc0 k1,\$9,3
+[0-9a-f]+ <[^>]*> 419b4804 mttc0 k1,\$9,4
+[0-9a-f]+ <[^>]*> 419b4805 mttc0 k1,\$9,5
+[0-9a-f]+ <[^>]*> 419b4806 mttc0 k1,\$9,6
+[0-9a-f]+ <[^>]*> 419b4807 mttc0 k1,\$9,7
+[0-9a-f]+ <[^>]*> 419b5000 mttc0 k1,c0_entryhi
+[0-9a-f]+ <[^>]*> 419b5001 mttc0 k1,\$10,1
+[0-9a-f]+ <[^>]*> 419b5002 mttc0 k1,\$10,2
+[0-9a-f]+ <[^>]*> 419b5003 mttc0 k1,\$10,3
+[0-9a-f]+ <[^>]*> 419b5004 mttc0 k1,\$10,4
+[0-9a-f]+ <[^>]*> 419b5005 mttc0 k1,\$10,5
+[0-9a-f]+ <[^>]*> 419b5006 mttc0 k1,\$10,6
+[0-9a-f]+ <[^>]*> 419b5007 mttc0 k1,\$10,7
+[0-9a-f]+ <[^>]*> 419b5800 mttc0 k1,c0_compare
+[0-9a-f]+ <[^>]*> 419b5801 mttc0 k1,\$11,1
+[0-9a-f]+ <[^>]*> 419b5802 mttc0 k1,\$11,2
+[0-9a-f]+ <[^>]*> 419b5803 mttc0 k1,\$11,3
+[0-9a-f]+ <[^>]*> 419b5804 mttc0 k1,\$11,4
+[0-9a-f]+ <[^>]*> 419b5805 mttc0 k1,\$11,5
+[0-9a-f]+ <[^>]*> 419b5806 mttc0 k1,\$11,6
+[0-9a-f]+ <[^>]*> 419b5807 mttc0 k1,\$11,7
+[0-9a-f]+ <[^>]*> 419b6000 mttc0 k1,c0_status
+[0-9a-f]+ <[^>]*> 419b6001 mttc0 k1,c0_intctl
+[0-9a-f]+ <[^>]*> 419b6002 mttc0 k1,c0_srsctl
+[0-9a-f]+ <[^>]*> 419b6003 mttc0 k1,c0_srsmap
+[0-9a-f]+ <[^>]*> 419b6004 mttc0 k1,\$12,4
+[0-9a-f]+ <[^>]*> 419b6005 mttc0 k1,\$12,5
+[0-9a-f]+ <[^>]*> 419b6006 mttc0 k1,\$12,6
+[0-9a-f]+ <[^>]*> 419b6007 mttc0 k1,\$12,7
+[0-9a-f]+ <[^>]*> 419b6800 mttc0 k1,c0_cause
+[0-9a-f]+ <[^>]*> 419b6801 mttc0 k1,\$13,1
+[0-9a-f]+ <[^>]*> 419b6802 mttc0 k1,\$13,2
+[0-9a-f]+ <[^>]*> 419b6803 mttc0 k1,\$13,3
+[0-9a-f]+ <[^>]*> 419b6804 mttc0 k1,\$13,4
+[0-9a-f]+ <[^>]*> 419b6805 mttc0 k1,\$13,5
+[0-9a-f]+ <[^>]*> 419b6806 mttc0 k1,\$13,6
+[0-9a-f]+ <[^>]*> 419b6807 mttc0 k1,\$13,7
+[0-9a-f]+ <[^>]*> 419b7000 mttc0 k1,c0_epc
+[0-9a-f]+ <[^>]*> 419b7001 mttc0 k1,\$14,1
+[0-9a-f]+ <[^>]*> 419b7002 mttc0 k1,\$14,2
+[0-9a-f]+ <[^>]*> 419b7003 mttc0 k1,\$14,3
+[0-9a-f]+ <[^>]*> 419b7004 mttc0 k1,\$14,4
+[0-9a-f]+ <[^>]*> 419b7005 mttc0 k1,\$14,5
+[0-9a-f]+ <[^>]*> 419b7006 mttc0 k1,\$14,6
+[0-9a-f]+ <[^>]*> 419b7007 mttc0 k1,\$14,7
+[0-9a-f]+ <[^>]*> 419b7800 mttc0 k1,c0_prid
+[0-9a-f]+ <[^>]*> 419b7801 mttc0 k1,c0_ebase
+[0-9a-f]+ <[^>]*> 419b7802 mttc0 k1,\$15,2
+[0-9a-f]+ <[^>]*> 419b7803 mttc0 k1,\$15,3
+[0-9a-f]+ <[^>]*> 419b7804 mttc0 k1,\$15,4
+[0-9a-f]+ <[^>]*> 419b7805 mttc0 k1,\$15,5
+[0-9a-f]+ <[^>]*> 419b7806 mttc0 k1,\$15,6
+[0-9a-f]+ <[^>]*> 419b7807 mttc0 k1,\$15,7
+[0-9a-f]+ <[^>]*> 419b8000 mttc0 k1,c0_config
+[0-9a-f]+ <[^>]*> 419b8001 mttc0 k1,c0_config1
+[0-9a-f]+ <[^>]*> 419b8002 mttc0 k1,c0_config2
+[0-9a-f]+ <[^>]*> 419b8003 mttc0 k1,c0_config3
+[0-9a-f]+ <[^>]*> 419b8004 mttc0 k1,\$16,4
+[0-9a-f]+ <[^>]*> 419b8005 mttc0 k1,\$16,5
+[0-9a-f]+ <[^>]*> 419b8006 mttc0 k1,\$16,6
+[0-9a-f]+ <[^>]*> 419b8007 mttc0 k1,\$16,7
+[0-9a-f]+ <[^>]*> 419b8800 mttc0 k1,c0_lladdr
+[0-9a-f]+ <[^>]*> 419b8801 mttc0 k1,\$17,1
+[0-9a-f]+ <[^>]*> 419b8802 mttc0 k1,\$17,2
+[0-9a-f]+ <[^>]*> 419b8803 mttc0 k1,\$17,3
+[0-9a-f]+ <[^>]*> 419b8804 mttc0 k1,\$17,4
+[0-9a-f]+ <[^>]*> 419b8805 mttc0 k1,\$17,5
+[0-9a-f]+ <[^>]*> 419b8806 mttc0 k1,\$17,6
+[0-9a-f]+ <[^>]*> 419b8807 mttc0 k1,\$17,7
+[0-9a-f]+ <[^>]*> 419b9000 mttc0 k1,c0_watchlo
+[0-9a-f]+ <[^>]*> 419b9001 mttc0 k1,c0_watchlo,1
+[0-9a-f]+ <[^>]*> 419b9002 mttc0 k1,c0_watchlo,2
+[0-9a-f]+ <[^>]*> 419b9003 mttc0 k1,c0_watchlo,3
+[0-9a-f]+ <[^>]*> 419b9004 mttc0 k1,c0_watchlo,4
+[0-9a-f]+ <[^>]*> 419b9005 mttc0 k1,c0_watchlo,5
+[0-9a-f]+ <[^>]*> 419b9006 mttc0 k1,c0_watchlo,6
+[0-9a-f]+ <[^>]*> 419b9007 mttc0 k1,c0_watchlo,7
+[0-9a-f]+ <[^>]*> 419b9800 mttc0 k1,c0_watchhi
+[0-9a-f]+ <[^>]*> 419b9801 mttc0 k1,c0_watchhi,1
+[0-9a-f]+ <[^>]*> 419b9802 mttc0 k1,c0_watchhi,2
+[0-9a-f]+ <[^>]*> 419b9803 mttc0 k1,c0_watchhi,3
+[0-9a-f]+ <[^>]*> 419b9804 mttc0 k1,c0_watchhi,4
+[0-9a-f]+ <[^>]*> 419b9805 mttc0 k1,c0_watchhi,5
+[0-9a-f]+ <[^>]*> 419b9806 mttc0 k1,c0_watchhi,6
+[0-9a-f]+ <[^>]*> 419b9807 mttc0 k1,c0_watchhi,7
+[0-9a-f]+ <[^>]*> 419ba000 mttc0 k1,c0_xcontext
+[0-9a-f]+ <[^>]*> 419ba001 mttc0 k1,\$20,1
+[0-9a-f]+ <[^>]*> 419ba002 mttc0 k1,\$20,2
+[0-9a-f]+ <[^>]*> 419ba003 mttc0 k1,\$20,3
+[0-9a-f]+ <[^>]*> 419ba004 mttc0 k1,\$20,4
+[0-9a-f]+ <[^>]*> 419ba005 mttc0 k1,\$20,5
+[0-9a-f]+ <[^>]*> 419ba006 mttc0 k1,\$20,6
+[0-9a-f]+ <[^>]*> 419ba007 mttc0 k1,\$20,7
+[0-9a-f]+ <[^>]*> 419ba800 mttc0 k1,\$21
+[0-9a-f]+ <[^>]*> 419ba801 mttc0 k1,\$21,1
+[0-9a-f]+ <[^>]*> 419ba802 mttc0 k1,\$21,2
+[0-9a-f]+ <[^>]*> 419ba803 mttc0 k1,\$21,3
+[0-9a-f]+ <[^>]*> 419ba804 mttc0 k1,\$21,4
+[0-9a-f]+ <[^>]*> 419ba805 mttc0 k1,\$21,5
+[0-9a-f]+ <[^>]*> 419ba806 mttc0 k1,\$21,6
+[0-9a-f]+ <[^>]*> 419ba807 mttc0 k1,\$21,7
+[0-9a-f]+ <[^>]*> 419bb000 mttc0 k1,\$22
+[0-9a-f]+ <[^>]*> 419bb001 mttc0 k1,\$22,1
+[0-9a-f]+ <[^>]*> 419bb002 mttc0 k1,\$22,2
+[0-9a-f]+ <[^>]*> 419bb003 mttc0 k1,\$22,3
+[0-9a-f]+ <[^>]*> 419bb004 mttc0 k1,\$22,4
+[0-9a-f]+ <[^>]*> 419bb005 mttc0 k1,\$22,5
+[0-9a-f]+ <[^>]*> 419bb006 mttc0 k1,\$22,6
+[0-9a-f]+ <[^>]*> 419bb007 mttc0 k1,\$22,7
+[0-9a-f]+ <[^>]*> 419bb800 mttc0 k1,c0_debug
+[0-9a-f]+ <[^>]*> 419bb801 mttc0 k1,c0_tracecontrol
+[0-9a-f]+ <[^>]*> 419bb802 mttc0 k1,c0_tracecontrol2
+[0-9a-f]+ <[^>]*> 419bb803 mttc0 k1,c0_usertracedata
+[0-9a-f]+ <[^>]*> 419bb804 mttc0 k1,c0_tracebpc
+[0-9a-f]+ <[^>]*> 419bb805 mttc0 k1,\$23,5
+[0-9a-f]+ <[^>]*> 419bb806 mttc0 k1,\$23,6
+[0-9a-f]+ <[^>]*> 419bb807 mttc0 k1,\$23,7
+[0-9a-f]+ <[^>]*> 419bc000 mttc0 k1,c0_depc
+[0-9a-f]+ <[^>]*> 419bc001 mttc0 k1,\$24,1
+[0-9a-f]+ <[^>]*> 419bc002 mttc0 k1,\$24,2
+[0-9a-f]+ <[^>]*> 419bc003 mttc0 k1,\$24,3
+[0-9a-f]+ <[^>]*> 419bc004 mttc0 k1,\$24,4
+[0-9a-f]+ <[^>]*> 419bc005 mttc0 k1,\$24,5
+[0-9a-f]+ <[^>]*> 419bc006 mttc0 k1,\$24,6
+[0-9a-f]+ <[^>]*> 419bc007 mttc0 k1,\$24,7
+[0-9a-f]+ <[^>]*> 419bc800 mttc0 k1,c0_perfcnt
+[0-9a-f]+ <[^>]*> 419bc801 mttc0 k1,c0_perfcnt,1
+[0-9a-f]+ <[^>]*> 419bc802 mttc0 k1,c0_perfcnt,2
+[0-9a-f]+ <[^>]*> 419bc803 mttc0 k1,c0_perfcnt,3
+[0-9a-f]+ <[^>]*> 419bc804 mttc0 k1,c0_perfcnt,4
+[0-9a-f]+ <[^>]*> 419bc805 mttc0 k1,c0_perfcnt,5
+[0-9a-f]+ <[^>]*> 419bc806 mttc0 k1,c0_perfcnt,6
+[0-9a-f]+ <[^>]*> 419bc807 mttc0 k1,c0_perfcnt,7
+[0-9a-f]+ <[^>]*> 419bd000 mttc0 k1,c0_errctl
+[0-9a-f]+ <[^>]*> 419bd001 mttc0 k1,\$26,1
+[0-9a-f]+ <[^>]*> 419bd002 mttc0 k1,\$26,2
+[0-9a-f]+ <[^>]*> 419bd003 mttc0 k1,\$26,3
+[0-9a-f]+ <[^>]*> 419bd004 mttc0 k1,\$26,4
+[0-9a-f]+ <[^>]*> 419bd005 mttc0 k1,\$26,5
+[0-9a-f]+ <[^>]*> 419bd006 mttc0 k1,\$26,6
+[0-9a-f]+ <[^>]*> 419bd007 mttc0 k1,\$26,7
+[0-9a-f]+ <[^>]*> 419bd800 mttc0 k1,c0_cacheerr
+[0-9a-f]+ <[^>]*> 419bd801 mttc0 k1,c0_cacheerr,1
+[0-9a-f]+ <[^>]*> 419bd802 mttc0 k1,c0_cacheerr,2
+[0-9a-f]+ <[^>]*> 419bd803 mttc0 k1,c0_cacheerr,3
+[0-9a-f]+ <[^>]*> 419bd804 mttc0 k1,\$27,4
+[0-9a-f]+ <[^>]*> 419bd805 mttc0 k1,\$27,5
+[0-9a-f]+ <[^>]*> 419bd806 mttc0 k1,\$27,6
+[0-9a-f]+ <[^>]*> 419bd807 mttc0 k1,\$27,7
+[0-9a-f]+ <[^>]*> 419be000 mttc0 k1,c0_taglo
+[0-9a-f]+ <[^>]*> 419be001 mttc0 k1,c0_datalo
+[0-9a-f]+ <[^>]*> 419be002 mttc0 k1,c0_taglo1
+[0-9a-f]+ <[^>]*> 419be003 mttc0 k1,c0_datalo1
+[0-9a-f]+ <[^>]*> 419be004 mttc0 k1,c0_taglo2
+[0-9a-f]+ <[^>]*> 419be005 mttc0 k1,c0_datalo2
+[0-9a-f]+ <[^>]*> 419be006 mttc0 k1,c0_taglo3
+[0-9a-f]+ <[^>]*> 419be007 mttc0 k1,c0_datalo3
+[0-9a-f]+ <[^>]*> 419be800 mttc0 k1,c0_taghi
+[0-9a-f]+ <[^>]*> 419be801 mttc0 k1,c0_datahi
+[0-9a-f]+ <[^>]*> 419be802 mttc0 k1,c0_taghi1
+[0-9a-f]+ <[^>]*> 419be803 mttc0 k1,c0_datahi1
+[0-9a-f]+ <[^>]*> 419be804 mttc0 k1,c0_taghi2
+[0-9a-f]+ <[^>]*> 419be805 mttc0 k1,c0_datahi2
+[0-9a-f]+ <[^>]*> 419be806 mttc0 k1,c0_taghi3
+[0-9a-f]+ <[^>]*> 419be807 mttc0 k1,c0_datahi3
+[0-9a-f]+ <[^>]*> 419bf000 mttc0 k1,c0_errorepc
+[0-9a-f]+ <[^>]*> 419bf001 mttc0 k1,\$30,1
+[0-9a-f]+ <[^>]*> 419bf002 mttc0 k1,\$30,2
+[0-9a-f]+ <[^>]*> 419bf003 mttc0 k1,\$30,3
+[0-9a-f]+ <[^>]*> 419bf004 mttc0 k1,\$30,4
+[0-9a-f]+ <[^>]*> 419bf005 mttc0 k1,\$30,5
+[0-9a-f]+ <[^>]*> 419bf006 mttc0 k1,\$30,6
+[0-9a-f]+ <[^>]*> 419bf007 mttc0 k1,\$30,7
+[0-9a-f]+ <[^>]*> 419bf800 mttc0 k1,c0_desave
+[0-9a-f]+ <[^>]*> 419bf801 mttc0 k1,\$31,1
+[0-9a-f]+ <[^>]*> 419bf802 mttc0 k1,\$31,2
+[0-9a-f]+ <[^>]*> 419bf803 mttc0 k1,\$31,3
+[0-9a-f]+ <[^>]*> 419bf804 mttc0 k1,\$31,4
+[0-9a-f]+ <[^>]*> 419bf805 mttc0 k1,\$31,5
+[0-9a-f]+ <[^>]*> 419bf806 mttc0 k1,\$31,6
+[0-9a-f]+ <[^>]*> 419bf807 mttc0 k1,\$31,7
+[0-9a-f]+ <[^>]*> 419ce820 mttgpr gp,sp
+[0-9a-f]+ <[^>]*> 419d0021 mttlo sp
+[0-9a-f]+ <[^>]*> 419e6021 mttlo s8,\$ac3
+[0-9a-f]+ <[^>]*> 419f0821 mtthi ra
+[0-9a-f]+ <[^>]*> 41800821 mtthi zero
+[0-9a-f]+ <[^>]*> 41811021 mttacx at
+[0-9a-f]+ <[^>]*> 41823021 mttacx v0,\$ac1
+[0-9a-f]+ <[^>]*> 41838021 mttdsp v1
+[0-9a-f]+ <[^>]*> 41842822 mttc1 a0,\$f5
+[0-9a-f]+ <[^>]*> 41853022 mttc1 a1,\$f6
+[0-9a-f]+ <[^>]*> 41864032 mtthc1 a2,\$f8
+[0-9a-f]+ <[^>]*> 41875032 mtthc1 a3,\$f10
+[0-9a-f]+ <[^>]*> 41884823 cttc1 t0,\$9
+[0-9a-f]+ <[^>]*> 41895023 cttc1 t1,\$10
+[0-9a-f]+ <[^>]*> 418a5824 mttc2 t2,\$11
+[0-9a-f]+ <[^>]*> 418b6034 mtthc2 t3,\$12
+[0-9a-f]+ <[^>]*> 418c6825 cttc2 t4,\$13
+[0-9a-f]+ <[^>]*> 410e6800 mftc0 t5,c0_epc
+[0-9a-f]+ <[^>]*> 410e6801 mftc0 t5,\$14,1
+[0-9a-f]+ <[^>]*> 410e6802 mftc0 t5,\$14,2
+[0-9a-f]+ <[^>]*> 410e6803 mftc0 t5,\$14,3
+[0-9a-f]+ <[^>]*> 410e6804 mftc0 t5,\$14,4
+[0-9a-f]+ <[^>]*> 410e6805 mftc0 t5,\$14,5
+[0-9a-f]+ <[^>]*> 410e6806 mftc0 t5,\$14,6
+[0-9a-f]+ <[^>]*> 410e6807 mftc0 t5,\$14,7
+[0-9a-f]+ <[^>]*> 410e6810 mftr t5,\$14,0,0,1
+[0-9a-f]+ <[^>]*> 410e6811 mftr t5,\$14,0,1,1
+[0-9a-f]+ <[^>]*> 410e6812 mftr t5,\$14,0,2,1
+[0-9a-f]+ <[^>]*> 410e6813 mftr t5,\$14,0,3,1
+[0-9a-f]+ <[^>]*> 410e6814 mftr t5,\$14,0,4,1
+[0-9a-f]+ <[^>]*> 410e6815 mftr t5,\$14,0,5,1
+[0-9a-f]+ <[^>]*> 410e6816 mftr t5,\$14,0,6,1
+[0-9a-f]+ <[^>]*> 410e6817 mftr t5,\$14,0,7,1
+[0-9a-f]+ <[^>]*> 410e6820 mftgpr t5,t6
+[0-9a-f]+ <[^>]*> 410e6821 mftacx t5,\$ac3
+[0-9a-f]+ <[^>]*> 410e6822 mftc1 t5,\$f14
+[0-9a-f]+ <[^>]*> 410e6823 cftc1 t5,\$14
+[0-9a-f]+ <[^>]*> 410e6824 mftc2 t5,\$14
+[0-9a-f]+ <[^>]*> 410e6825 cftc2 t5,\$14
+[0-9a-f]+ <[^>]*> 410e6826 mftr t5,\$14,1,6,0
+[0-9a-f]+ <[^>]*> 410e6827 mftr t5,\$14,1,7,0
+[0-9a-f]+ <[^>]*> 410e6830 mftr t5,\$14,1,0,1
+[0-9a-f]+ <[^>]*> 410e6831 mftr t5,\$14,1,1,1
+[0-9a-f]+ <[^>]*> 410e6832 mfthc1 t5,\$f14
+[0-9a-f]+ <[^>]*> 410e6833 mftr t5,\$14,1,3,1
+[0-9a-f]+ <[^>]*> 410e6834 mfthc2 t5,\$14
+[0-9a-f]+ <[^>]*> 410e6835 mftr t5,\$14,1,5,1
+[0-9a-f]+ <[^>]*> 410e6836 mftr t5,\$14,1,6,1
+[0-9a-f]+ <[^>]*> 410e6837 mftr t5,\$14,1,7,1
+[0-9a-f]+ <[^>]*> 418d7000 mttc0 t5,c0_epc
+[0-9a-f]+ <[^>]*> 418d7001 mttc0 t5,\$14,1
+[0-9a-f]+ <[^>]*> 418d7002 mttc0 t5,\$14,2
+[0-9a-f]+ <[^>]*> 418d7003 mttc0 t5,\$14,3
+[0-9a-f]+ <[^>]*> 418d7004 mttc0 t5,\$14,4
+[0-9a-f]+ <[^>]*> 418d7005 mttc0 t5,\$14,5
+[0-9a-f]+ <[^>]*> 418d7006 mttc0 t5,\$14,6
+[0-9a-f]+ <[^>]*> 418d7007 mttc0 t5,\$14,7
+[0-9a-f]+ <[^>]*> 418d7010 mttr t5,\$14,0,0,1
+[0-9a-f]+ <[^>]*> 418d7011 mttr t5,\$14,0,1,1
+[0-9a-f]+ <[^>]*> 418d7012 mttr t5,\$14,0,2,1
+[0-9a-f]+ <[^>]*> 418d7013 mttr t5,\$14,0,3,1
+[0-9a-f]+ <[^>]*> 418d7014 mttr t5,\$14,0,4,1
+[0-9a-f]+ <[^>]*> 418d7015 mttr t5,\$14,0,5,1
+[0-9a-f]+ <[^>]*> 418d7016 mttr t5,\$14,0,6,1
+[0-9a-f]+ <[^>]*> 418d7017 mttr t5,\$14,0,7,1
+[0-9a-f]+ <[^>]*> 418d7020 mttgpr t5,t6
+[0-9a-f]+ <[^>]*> 418d7021 mttacx t5,\$ac3
+[0-9a-f]+ <[^>]*> 418d7022 mttc1 t5,\$f14
+[0-9a-f]+ <[^>]*> 418d7023 cttc1 t5,\$14
+[0-9a-f]+ <[^>]*> 418d7024 mttc2 t5,\$14
+[0-9a-f]+ <[^>]*> 418d7025 cttc2 t5,\$14
+[0-9a-f]+ <[^>]*> 418d7026 mttr t5,\$14,1,6,0
+[0-9a-f]+ <[^>]*> 418d7027 mttr t5,\$14,1,7,0
+[0-9a-f]+ <[^>]*> 418d7030 mttr t5,\$14,1,0,1
+[0-9a-f]+ <[^>]*> 418d7031 mttr t5,\$14,1,1,1
+[0-9a-f]+ <[^>]*> 418d7032 mtthc1 t5,\$f14
+[0-9a-f]+ <[^>]*> 418d7033 mttr t5,\$14,1,3,1
+[0-9a-f]+ <[^>]*> 418d7034 mtthc2 t5,\$14
+[0-9a-f]+ <[^>]*> 418d7035 mttr t5,\$14,1,5,1
+[0-9a-f]+ <[^>]*> 418d7036 mttr t5,\$14,1,6,1
+[0-9a-f]+ <[^>]*> 418d7037 mttr t5,\$14,1,7,1
+[0-9a-f]+ <[^>]*> 00000140 pause
+ \.\.\.
diff --git a/binutils/testsuite/binutils-all/mips/mips32-mt-noalias.d b/binutils/testsuite/binutils-all/mips/mips32-mt-noalias.d
new file mode 100644
index 0000000..2b0b802
--- /dev/null
+++ b/binutils/testsuite/binutils-all/mips/mips32-mt-noalias.d
@@ -0,0 +1,634 @@
+#PROG: objcopy
+#objdump: -M no-aliases -d --prefix-addresses --show-raw-insn
+#name: MIPS MT ASE instruction canonical disassembly
+#as: -mips32r2 -mmt
+#source: ../../../../gas/testsuite/gas/mips/mips32-mt.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 41600bc1 dmt
+[0-9a-f]+ <[^>]*> 417f0bc1 dmt ra
+[0-9a-f]+ <[^>]*> 41600001 dvpe
+[0-9a-f]+ <[^>]*> 41610001 dvpe at
+[0-9a-f]+ <[^>]*> 41600be1 emt
+[0-9a-f]+ <[^>]*> 41620be1 emt v0
+[0-9a-f]+ <[^>]*> 41600021 evpe
+[0-9a-f]+ <[^>]*> 41630021 evpe v1
+[0-9a-f]+ <[^>]*> 7ca62008 fork a0,a1,a2
+[0-9a-f]+ <[^>]*> 7ca00009 yield a1
+[0-9a-f]+ <[^>]*> 7ce03009 yield a2,a3
+[0-9a-f]+ <[^>]*> 41083800 mftr a3,\$8,0,0,0
+[0-9a-f]+ <[^>]*> 41004000 mftr t0,\$0,0,0,0
+[0-9a-f]+ <[^>]*> 41004001 mftr t0,\$0,0,1,0
+[0-9a-f]+ <[^>]*> 41004002 mftr t0,\$0,0,2,0
+[0-9a-f]+ <[^>]*> 41004003 mftr t0,\$0,0,3,0
+[0-9a-f]+ <[^>]*> 41004004 mftr t0,\$0,0,4,0
+[0-9a-f]+ <[^>]*> 41004005 mftr t0,\$0,0,5,0
+[0-9a-f]+ <[^>]*> 41004006 mftr t0,\$0,0,6,0
+[0-9a-f]+ <[^>]*> 41004007 mftr t0,\$0,0,7,0
+[0-9a-f]+ <[^>]*> 41014000 mftr t0,\$1,0,0,0
+[0-9a-f]+ <[^>]*> 41014001 mftr t0,\$1,0,1,0
+[0-9a-f]+ <[^>]*> 41014002 mftr t0,\$1,0,2,0
+[0-9a-f]+ <[^>]*> 41014003 mftr t0,\$1,0,3,0
+[0-9a-f]+ <[^>]*> 41014004 mftr t0,\$1,0,4,0
+[0-9a-f]+ <[^>]*> 41014005 mftr t0,\$1,0,5,0
+[0-9a-f]+ <[^>]*> 41014006 mftr t0,\$1,0,6,0
+[0-9a-f]+ <[^>]*> 41014007 mftr t0,\$1,0,7,0
+[0-9a-f]+ <[^>]*> 41024000 mftr t0,\$2,0,0,0
+[0-9a-f]+ <[^>]*> 41024001 mftr t0,\$2,0,1,0
+[0-9a-f]+ <[^>]*> 41024002 mftr t0,\$2,0,2,0
+[0-9a-f]+ <[^>]*> 41024003 mftr t0,\$2,0,3,0
+[0-9a-f]+ <[^>]*> 41024004 mftr t0,\$2,0,4,0
+[0-9a-f]+ <[^>]*> 41024005 mftr t0,\$2,0,5,0
+[0-9a-f]+ <[^>]*> 41024006 mftr t0,\$2,0,6,0
+[0-9a-f]+ <[^>]*> 41024007 mftr t0,\$2,0,7,0
+[0-9a-f]+ <[^>]*> 41034000 mftr t0,\$3,0,0,0
+[0-9a-f]+ <[^>]*> 41034001 mftr t0,\$3,0,1,0
+[0-9a-f]+ <[^>]*> 41034002 mftr t0,\$3,0,2,0
+[0-9a-f]+ <[^>]*> 41034003 mftr t0,\$3,0,3,0
+[0-9a-f]+ <[^>]*> 41034004 mftr t0,\$3,0,4,0
+[0-9a-f]+ <[^>]*> 41034005 mftr t0,\$3,0,5,0
+[0-9a-f]+ <[^>]*> 41034006 mftr t0,\$3,0,6,0
+[0-9a-f]+ <[^>]*> 41034007 mftr t0,\$3,0,7,0
+[0-9a-f]+ <[^>]*> 41044000 mftr t0,\$4,0,0,0
+[0-9a-f]+ <[^>]*> 41044001 mftr t0,\$4,0,1,0
+[0-9a-f]+ <[^>]*> 41044002 mftr t0,\$4,0,2,0
+[0-9a-f]+ <[^>]*> 41044003 mftr t0,\$4,0,3,0
+[0-9a-f]+ <[^>]*> 41044004 mftr t0,\$4,0,4,0
+[0-9a-f]+ <[^>]*> 41044005 mftr t0,\$4,0,5,0
+[0-9a-f]+ <[^>]*> 41044006 mftr t0,\$4,0,6,0
+[0-9a-f]+ <[^>]*> 41044007 mftr t0,\$4,0,7,0
+[0-9a-f]+ <[^>]*> 41054000 mftr t0,\$5,0,0,0
+[0-9a-f]+ <[^>]*> 41054001 mftr t0,\$5,0,1,0
+[0-9a-f]+ <[^>]*> 41054002 mftr t0,\$5,0,2,0
+[0-9a-f]+ <[^>]*> 41054003 mftr t0,\$5,0,3,0
+[0-9a-f]+ <[^>]*> 41054004 mftr t0,\$5,0,4,0
+[0-9a-f]+ <[^>]*> 41054005 mftr t0,\$5,0,5,0
+[0-9a-f]+ <[^>]*> 41054006 mftr t0,\$5,0,6,0
+[0-9a-f]+ <[^>]*> 41054007 mftr t0,\$5,0,7,0
+[0-9a-f]+ <[^>]*> 41064000 mftr t0,\$6,0,0,0
+[0-9a-f]+ <[^>]*> 41064001 mftr t0,\$6,0,1,0
+[0-9a-f]+ <[^>]*> 41064002 mftr t0,\$6,0,2,0
+[0-9a-f]+ <[^>]*> 41064003 mftr t0,\$6,0,3,0
+[0-9a-f]+ <[^>]*> 41064004 mftr t0,\$6,0,4,0
+[0-9a-f]+ <[^>]*> 41064005 mftr t0,\$6,0,5,0
+[0-9a-f]+ <[^>]*> 41064006 mftr t0,\$6,0,6,0
+[0-9a-f]+ <[^>]*> 41064007 mftr t0,\$6,0,7,0
+[0-9a-f]+ <[^>]*> 41074000 mftr t0,\$7,0,0,0
+[0-9a-f]+ <[^>]*> 41074001 mftr t0,\$7,0,1,0
+[0-9a-f]+ <[^>]*> 41074002 mftr t0,\$7,0,2,0
+[0-9a-f]+ <[^>]*> 41074003 mftr t0,\$7,0,3,0
+[0-9a-f]+ <[^>]*> 41074004 mftr t0,\$7,0,4,0
+[0-9a-f]+ <[^>]*> 41074005 mftr t0,\$7,0,5,0
+[0-9a-f]+ <[^>]*> 41074006 mftr t0,\$7,0,6,0
+[0-9a-f]+ <[^>]*> 41074007 mftr t0,\$7,0,7,0
+[0-9a-f]+ <[^>]*> 41084000 mftr t0,\$8,0,0,0
+[0-9a-f]+ <[^>]*> 41084001 mftr t0,\$8,0,1,0
+[0-9a-f]+ <[^>]*> 41084002 mftr t0,\$8,0,2,0
+[0-9a-f]+ <[^>]*> 41084003 mftr t0,\$8,0,3,0
+[0-9a-f]+ <[^>]*> 41084004 mftr t0,\$8,0,4,0
+[0-9a-f]+ <[^>]*> 41084005 mftr t0,\$8,0,5,0
+[0-9a-f]+ <[^>]*> 41084006 mftr t0,\$8,0,6,0
+[0-9a-f]+ <[^>]*> 41084007 mftr t0,\$8,0,7,0
+[0-9a-f]+ <[^>]*> 41094000 mftr t0,\$9,0,0,0
+[0-9a-f]+ <[^>]*> 41094001 mftr t0,\$9,0,1,0
+[0-9a-f]+ <[^>]*> 41094002 mftr t0,\$9,0,2,0
+[0-9a-f]+ <[^>]*> 41094003 mftr t0,\$9,0,3,0
+[0-9a-f]+ <[^>]*> 41094004 mftr t0,\$9,0,4,0
+[0-9a-f]+ <[^>]*> 41094005 mftr t0,\$9,0,5,0
+[0-9a-f]+ <[^>]*> 41094006 mftr t0,\$9,0,6,0
+[0-9a-f]+ <[^>]*> 41094007 mftr t0,\$9,0,7,0
+[0-9a-f]+ <[^>]*> 410a4000 mftr t0,\$10,0,0,0
+[0-9a-f]+ <[^>]*> 410a4001 mftr t0,\$10,0,1,0
+[0-9a-f]+ <[^>]*> 410a4002 mftr t0,\$10,0,2,0
+[0-9a-f]+ <[^>]*> 410a4003 mftr t0,\$10,0,3,0
+[0-9a-f]+ <[^>]*> 410a4004 mftr t0,\$10,0,4,0
+[0-9a-f]+ <[^>]*> 410a4005 mftr t0,\$10,0,5,0
+[0-9a-f]+ <[^>]*> 410a4006 mftr t0,\$10,0,6,0
+[0-9a-f]+ <[^>]*> 410a4007 mftr t0,\$10,0,7,0
+[0-9a-f]+ <[^>]*> 410b4000 mftr t0,\$11,0,0,0
+[0-9a-f]+ <[^>]*> 410b4001 mftr t0,\$11,0,1,0
+[0-9a-f]+ <[^>]*> 410b4002 mftr t0,\$11,0,2,0
+[0-9a-f]+ <[^>]*> 410b4003 mftr t0,\$11,0,3,0
+[0-9a-f]+ <[^>]*> 410b4004 mftr t0,\$11,0,4,0
+[0-9a-f]+ <[^>]*> 410b4005 mftr t0,\$11,0,5,0
+[0-9a-f]+ <[^>]*> 410b4006 mftr t0,\$11,0,6,0
+[0-9a-f]+ <[^>]*> 410b4007 mftr t0,\$11,0,7,0
+[0-9a-f]+ <[^>]*> 410c4000 mftr t0,\$12,0,0,0
+[0-9a-f]+ <[^>]*> 410c4001 mftr t0,\$12,0,1,0
+[0-9a-f]+ <[^>]*> 410c4002 mftr t0,\$12,0,2,0
+[0-9a-f]+ <[^>]*> 410c4003 mftr t0,\$12,0,3,0
+[0-9a-f]+ <[^>]*> 410c4004 mftr t0,\$12,0,4,0
+[0-9a-f]+ <[^>]*> 410c4005 mftr t0,\$12,0,5,0
+[0-9a-f]+ <[^>]*> 410c4006 mftr t0,\$12,0,6,0
+[0-9a-f]+ <[^>]*> 410c4007 mftr t0,\$12,0,7,0
+[0-9a-f]+ <[^>]*> 410d4000 mftr t0,\$13,0,0,0
+[0-9a-f]+ <[^>]*> 410d4001 mftr t0,\$13,0,1,0
+[0-9a-f]+ <[^>]*> 410d4002 mftr t0,\$13,0,2,0
+[0-9a-f]+ <[^>]*> 410d4003 mftr t0,\$13,0,3,0
+[0-9a-f]+ <[^>]*> 410d4004 mftr t0,\$13,0,4,0
+[0-9a-f]+ <[^>]*> 410d4005 mftr t0,\$13,0,5,0
+[0-9a-f]+ <[^>]*> 410d4006 mftr t0,\$13,0,6,0
+[0-9a-f]+ <[^>]*> 410d4007 mftr t0,\$13,0,7,0
+[0-9a-f]+ <[^>]*> 410e4000 mftr t0,\$14,0,0,0
+[0-9a-f]+ <[^>]*> 410e4001 mftr t0,\$14,0,1,0
+[0-9a-f]+ <[^>]*> 410e4002 mftr t0,\$14,0,2,0
+[0-9a-f]+ <[^>]*> 410e4003 mftr t0,\$14,0,3,0
+[0-9a-f]+ <[^>]*> 410e4004 mftr t0,\$14,0,4,0
+[0-9a-f]+ <[^>]*> 410e4005 mftr t0,\$14,0,5,0
+[0-9a-f]+ <[^>]*> 410e4006 mftr t0,\$14,0,6,0
+[0-9a-f]+ <[^>]*> 410e4007 mftr t0,\$14,0,7,0
+[0-9a-f]+ <[^>]*> 410f4000 mftr t0,\$15,0,0,0
+[0-9a-f]+ <[^>]*> 410f4001 mftr t0,\$15,0,1,0
+[0-9a-f]+ <[^>]*> 410f4002 mftr t0,\$15,0,2,0
+[0-9a-f]+ <[^>]*> 410f4003 mftr t0,\$15,0,3,0
+[0-9a-f]+ <[^>]*> 410f4004 mftr t0,\$15,0,4,0
+[0-9a-f]+ <[^>]*> 410f4005 mftr t0,\$15,0,5,0
+[0-9a-f]+ <[^>]*> 410f4006 mftr t0,\$15,0,6,0
+[0-9a-f]+ <[^>]*> 410f4007 mftr t0,\$15,0,7,0
+[0-9a-f]+ <[^>]*> 41104000 mftr t0,\$16,0,0,0
+[0-9a-f]+ <[^>]*> 41104001 mftr t0,\$16,0,1,0
+[0-9a-f]+ <[^>]*> 41104002 mftr t0,\$16,0,2,0
+[0-9a-f]+ <[^>]*> 41104003 mftr t0,\$16,0,3,0
+[0-9a-f]+ <[^>]*> 41104004 mftr t0,\$16,0,4,0
+[0-9a-f]+ <[^>]*> 41104005 mftr t0,\$16,0,5,0
+[0-9a-f]+ <[^>]*> 41104006 mftr t0,\$16,0,6,0
+[0-9a-f]+ <[^>]*> 41104007 mftr t0,\$16,0,7,0
+[0-9a-f]+ <[^>]*> 41114000 mftr t0,\$17,0,0,0
+[0-9a-f]+ <[^>]*> 41114001 mftr t0,\$17,0,1,0
+[0-9a-f]+ <[^>]*> 41114002 mftr t0,\$17,0,2,0
+[0-9a-f]+ <[^>]*> 41114003 mftr t0,\$17,0,3,0
+[0-9a-f]+ <[^>]*> 41114004 mftr t0,\$17,0,4,0
+[0-9a-f]+ <[^>]*> 41114005 mftr t0,\$17,0,5,0
+[0-9a-f]+ <[^>]*> 41114006 mftr t0,\$17,0,6,0
+[0-9a-f]+ <[^>]*> 41114007 mftr t0,\$17,0,7,0
+[0-9a-f]+ <[^>]*> 41124000 mftr t0,\$18,0,0,0
+[0-9a-f]+ <[^>]*> 41124001 mftr t0,\$18,0,1,0
+[0-9a-f]+ <[^>]*> 41124002 mftr t0,\$18,0,2,0
+[0-9a-f]+ <[^>]*> 41124003 mftr t0,\$18,0,3,0
+[0-9a-f]+ <[^>]*> 41124004 mftr t0,\$18,0,4,0
+[0-9a-f]+ <[^>]*> 41124005 mftr t0,\$18,0,5,0
+[0-9a-f]+ <[^>]*> 41124006 mftr t0,\$18,0,6,0
+[0-9a-f]+ <[^>]*> 41124007 mftr t0,\$18,0,7,0
+[0-9a-f]+ <[^>]*> 41134000 mftr t0,\$19,0,0,0
+[0-9a-f]+ <[^>]*> 41134001 mftr t0,\$19,0,1,0
+[0-9a-f]+ <[^>]*> 41134002 mftr t0,\$19,0,2,0
+[0-9a-f]+ <[^>]*> 41134003 mftr t0,\$19,0,3,0
+[0-9a-f]+ <[^>]*> 41134004 mftr t0,\$19,0,4,0
+[0-9a-f]+ <[^>]*> 41134005 mftr t0,\$19,0,5,0
+[0-9a-f]+ <[^>]*> 41134006 mftr t0,\$19,0,6,0
+[0-9a-f]+ <[^>]*> 41134007 mftr t0,\$19,0,7,0
+[0-9a-f]+ <[^>]*> 41144000 mftr t0,\$20,0,0,0
+[0-9a-f]+ <[^>]*> 41144001 mftr t0,\$20,0,1,0
+[0-9a-f]+ <[^>]*> 41144002 mftr t0,\$20,0,2,0
+[0-9a-f]+ <[^>]*> 41144003 mftr t0,\$20,0,3,0
+[0-9a-f]+ <[^>]*> 41144004 mftr t0,\$20,0,4,0
+[0-9a-f]+ <[^>]*> 41144005 mftr t0,\$20,0,5,0
+[0-9a-f]+ <[^>]*> 41144006 mftr t0,\$20,0,6,0
+[0-9a-f]+ <[^>]*> 41144007 mftr t0,\$20,0,7,0
+[0-9a-f]+ <[^>]*> 41154000 mftr t0,\$21,0,0,0
+[0-9a-f]+ <[^>]*> 41154001 mftr t0,\$21,0,1,0
+[0-9a-f]+ <[^>]*> 41154002 mftr t0,\$21,0,2,0
+[0-9a-f]+ <[^>]*> 41154003 mftr t0,\$21,0,3,0
+[0-9a-f]+ <[^>]*> 41154004 mftr t0,\$21,0,4,0
+[0-9a-f]+ <[^>]*> 41154005 mftr t0,\$21,0,5,0
+[0-9a-f]+ <[^>]*> 41154006 mftr t0,\$21,0,6,0
+[0-9a-f]+ <[^>]*> 41154007 mftr t0,\$21,0,7,0
+[0-9a-f]+ <[^>]*> 41164000 mftr t0,\$22,0,0,0
+[0-9a-f]+ <[^>]*> 41164001 mftr t0,\$22,0,1,0
+[0-9a-f]+ <[^>]*> 41164002 mftr t0,\$22,0,2,0
+[0-9a-f]+ <[^>]*> 41164003 mftr t0,\$22,0,3,0
+[0-9a-f]+ <[^>]*> 41164004 mftr t0,\$22,0,4,0
+[0-9a-f]+ <[^>]*> 41164005 mftr t0,\$22,0,5,0
+[0-9a-f]+ <[^>]*> 41164006 mftr t0,\$22,0,6,0
+[0-9a-f]+ <[^>]*> 41164007 mftr t0,\$22,0,7,0
+[0-9a-f]+ <[^>]*> 41174000 mftr t0,\$23,0,0,0
+[0-9a-f]+ <[^>]*> 41174001 mftr t0,\$23,0,1,0
+[0-9a-f]+ <[^>]*> 41174002 mftr t0,\$23,0,2,0
+[0-9a-f]+ <[^>]*> 41174003 mftr t0,\$23,0,3,0
+[0-9a-f]+ <[^>]*> 41174004 mftr t0,\$23,0,4,0
+[0-9a-f]+ <[^>]*> 41174005 mftr t0,\$23,0,5,0
+[0-9a-f]+ <[^>]*> 41174006 mftr t0,\$23,0,6,0
+[0-9a-f]+ <[^>]*> 41174007 mftr t0,\$23,0,7,0
+[0-9a-f]+ <[^>]*> 41184000 mftr t0,\$24,0,0,0
+[0-9a-f]+ <[^>]*> 41184001 mftr t0,\$24,0,1,0
+[0-9a-f]+ <[^>]*> 41184002 mftr t0,\$24,0,2,0
+[0-9a-f]+ <[^>]*> 41184003 mftr t0,\$24,0,3,0
+[0-9a-f]+ <[^>]*> 41184004 mftr t0,\$24,0,4,0
+[0-9a-f]+ <[^>]*> 41184005 mftr t0,\$24,0,5,0
+[0-9a-f]+ <[^>]*> 41184006 mftr t0,\$24,0,6,0
+[0-9a-f]+ <[^>]*> 41184007 mftr t0,\$24,0,7,0
+[0-9a-f]+ <[^>]*> 41194000 mftr t0,\$25,0,0,0
+[0-9a-f]+ <[^>]*> 41194001 mftr t0,\$25,0,1,0
+[0-9a-f]+ <[^>]*> 41194002 mftr t0,\$25,0,2,0
+[0-9a-f]+ <[^>]*> 41194003 mftr t0,\$25,0,3,0
+[0-9a-f]+ <[^>]*> 41194004 mftr t0,\$25,0,4,0
+[0-9a-f]+ <[^>]*> 41194005 mftr t0,\$25,0,5,0
+[0-9a-f]+ <[^>]*> 41194006 mftr t0,\$25,0,6,0
+[0-9a-f]+ <[^>]*> 41194007 mftr t0,\$25,0,7,0
+[0-9a-f]+ <[^>]*> 411a4000 mftr t0,\$26,0,0,0
+[0-9a-f]+ <[^>]*> 411a4001 mftr t0,\$26,0,1,0
+[0-9a-f]+ <[^>]*> 411a4002 mftr t0,\$26,0,2,0
+[0-9a-f]+ <[^>]*> 411a4003 mftr t0,\$26,0,3,0
+[0-9a-f]+ <[^>]*> 411a4004 mftr t0,\$26,0,4,0
+[0-9a-f]+ <[^>]*> 411a4005 mftr t0,\$26,0,5,0
+[0-9a-f]+ <[^>]*> 411a4006 mftr t0,\$26,0,6,0
+[0-9a-f]+ <[^>]*> 411a4007 mftr t0,\$26,0,7,0
+[0-9a-f]+ <[^>]*> 411b4000 mftr t0,\$27,0,0,0
+[0-9a-f]+ <[^>]*> 411b4001 mftr t0,\$27,0,1,0
+[0-9a-f]+ <[^>]*> 411b4002 mftr t0,\$27,0,2,0
+[0-9a-f]+ <[^>]*> 411b4003 mftr t0,\$27,0,3,0
+[0-9a-f]+ <[^>]*> 411b4004 mftr t0,\$27,0,4,0
+[0-9a-f]+ <[^>]*> 411b4005 mftr t0,\$27,0,5,0
+[0-9a-f]+ <[^>]*> 411b4006 mftr t0,\$27,0,6,0
+[0-9a-f]+ <[^>]*> 411b4007 mftr t0,\$27,0,7,0
+[0-9a-f]+ <[^>]*> 411c4000 mftr t0,\$28,0,0,0
+[0-9a-f]+ <[^>]*> 411c4001 mftr t0,\$28,0,1,0
+[0-9a-f]+ <[^>]*> 411c4002 mftr t0,\$28,0,2,0
+[0-9a-f]+ <[^>]*> 411c4003 mftr t0,\$28,0,3,0
+[0-9a-f]+ <[^>]*> 411c4004 mftr t0,\$28,0,4,0
+[0-9a-f]+ <[^>]*> 411c4005 mftr t0,\$28,0,5,0
+[0-9a-f]+ <[^>]*> 411c4006 mftr t0,\$28,0,6,0
+[0-9a-f]+ <[^>]*> 411c4007 mftr t0,\$28,0,7,0
+[0-9a-f]+ <[^>]*> 411d4000 mftr t0,\$29,0,0,0
+[0-9a-f]+ <[^>]*> 411d4001 mftr t0,\$29,0,1,0
+[0-9a-f]+ <[^>]*> 411d4002 mftr t0,\$29,0,2,0
+[0-9a-f]+ <[^>]*> 411d4003 mftr t0,\$29,0,3,0
+[0-9a-f]+ <[^>]*> 411d4004 mftr t0,\$29,0,4,0
+[0-9a-f]+ <[^>]*> 411d4005 mftr t0,\$29,0,5,0
+[0-9a-f]+ <[^>]*> 411d4006 mftr t0,\$29,0,6,0
+[0-9a-f]+ <[^>]*> 411d4007 mftr t0,\$29,0,7,0
+[0-9a-f]+ <[^>]*> 411e4000 mftr t0,\$30,0,0,0
+[0-9a-f]+ <[^>]*> 411e4001 mftr t0,\$30,0,1,0
+[0-9a-f]+ <[^>]*> 411e4002 mftr t0,\$30,0,2,0
+[0-9a-f]+ <[^>]*> 411e4003 mftr t0,\$30,0,3,0
+[0-9a-f]+ <[^>]*> 411e4004 mftr t0,\$30,0,4,0
+[0-9a-f]+ <[^>]*> 411e4005 mftr t0,\$30,0,5,0
+[0-9a-f]+ <[^>]*> 411e4006 mftr t0,\$30,0,6,0
+[0-9a-f]+ <[^>]*> 411e4007 mftr t0,\$30,0,7,0
+[0-9a-f]+ <[^>]*> 411f4000 mftr t0,\$31,0,0,0
+[0-9a-f]+ <[^>]*> 411f4001 mftr t0,\$31,0,1,0
+[0-9a-f]+ <[^>]*> 411f4002 mftr t0,\$31,0,2,0
+[0-9a-f]+ <[^>]*> 411f4003 mftr t0,\$31,0,3,0
+[0-9a-f]+ <[^>]*> 411f4004 mftr t0,\$31,0,4,0
+[0-9a-f]+ <[^>]*> 411f4005 mftr t0,\$31,0,5,0
+[0-9a-f]+ <[^>]*> 411f4006 mftr t0,\$31,0,6,0
+[0-9a-f]+ <[^>]*> 411f4007 mftr t0,\$31,0,7,0
+[0-9a-f]+ <[^>]*> 410a4820 mftr t1,\$10,1,0,0
+[0-9a-f]+ <[^>]*> 41005021 mftr t2,\$0,1,1,0
+[0-9a-f]+ <[^>]*> 41005821 mftr t3,\$0,1,1,0
+[0-9a-f]+ <[^>]*> 41016021 mftr t4,\$1,1,1,0
+[0-9a-f]+ <[^>]*> 41056821 mftr t5,\$5,1,1,0
+[0-9a-f]+ <[^>]*> 41027021 mftr t6,\$2,1,1,0
+[0-9a-f]+ <[^>]*> 410a7821 mftr t7,\$10,1,1,0
+[0-9a-f]+ <[^>]*> 41108021 mftr s0,\$16,1,1,0
+[0-9a-f]+ <[^>]*> 41128822 mftr s1,\$18,1,2,0
+[0-9a-f]+ <[^>]*> 41139022 mftr s2,\$19,1,2,0
+[0-9a-f]+ <[^>]*> 41149832 mftr s3,\$20,1,2,1
+[0-9a-f]+ <[^>]*> 4116a032 mftr s4,\$22,1,2,1
+[0-9a-f]+ <[^>]*> 4116a823 mftr s5,\$22,1,3,0
+[0-9a-f]+ <[^>]*> 4117b023 mftr s6,\$23,1,3,0
+[0-9a-f]+ <[^>]*> 4118b824 mftr s7,\$24,1,4,0
+[0-9a-f]+ <[^>]*> 4119c034 mftr t8,\$25,1,4,1
+[0-9a-f]+ <[^>]*> 411ac825 mftr t9,\$26,1,5,0
+[0-9a-f]+ <[^>]*> 419ad800 mttr k0,\$27,0,0,0
+[0-9a-f]+ <[^>]*> 419b0000 mttr k1,\$0,0,0,0
+[0-9a-f]+ <[^>]*> 419b0001 mttr k1,\$0,0,1,0
+[0-9a-f]+ <[^>]*> 419b0002 mttr k1,\$0,0,2,0
+[0-9a-f]+ <[^>]*> 419b0003 mttr k1,\$0,0,3,0
+[0-9a-f]+ <[^>]*> 419b0004 mttr k1,\$0,0,4,0
+[0-9a-f]+ <[^>]*> 419b0005 mttr k1,\$0,0,5,0
+[0-9a-f]+ <[^>]*> 419b0006 mttr k1,\$0,0,6,0
+[0-9a-f]+ <[^>]*> 419b0007 mttr k1,\$0,0,7,0
+[0-9a-f]+ <[^>]*> 419b0800 mttr k1,\$1,0,0,0
+[0-9a-f]+ <[^>]*> 419b0801 mttr k1,\$1,0,1,0
+[0-9a-f]+ <[^>]*> 419b0802 mttr k1,\$1,0,2,0
+[0-9a-f]+ <[^>]*> 419b0803 mttr k1,\$1,0,3,0
+[0-9a-f]+ <[^>]*> 419b0804 mttr k1,\$1,0,4,0
+[0-9a-f]+ <[^>]*> 419b0805 mttr k1,\$1,0,5,0
+[0-9a-f]+ <[^>]*> 419b0806 mttr k1,\$1,0,6,0
+[0-9a-f]+ <[^>]*> 419b0807 mttr k1,\$1,0,7,0
+[0-9a-f]+ <[^>]*> 419b1000 mttr k1,\$2,0,0,0
+[0-9a-f]+ <[^>]*> 419b1001 mttr k1,\$2,0,1,0
+[0-9a-f]+ <[^>]*> 419b1002 mttr k1,\$2,0,2,0
+[0-9a-f]+ <[^>]*> 419b1003 mttr k1,\$2,0,3,0
+[0-9a-f]+ <[^>]*> 419b1004 mttr k1,\$2,0,4,0
+[0-9a-f]+ <[^>]*> 419b1005 mttr k1,\$2,0,5,0
+[0-9a-f]+ <[^>]*> 419b1006 mttr k1,\$2,0,6,0
+[0-9a-f]+ <[^>]*> 419b1007 mttr k1,\$2,0,7,0
+[0-9a-f]+ <[^>]*> 419b1800 mttr k1,\$3,0,0,0
+[0-9a-f]+ <[^>]*> 419b1801 mttr k1,\$3,0,1,0
+[0-9a-f]+ <[^>]*> 419b1802 mttr k1,\$3,0,2,0
+[0-9a-f]+ <[^>]*> 419b1803 mttr k1,\$3,0,3,0
+[0-9a-f]+ <[^>]*> 419b1804 mttr k1,\$3,0,4,0
+[0-9a-f]+ <[^>]*> 419b1805 mttr k1,\$3,0,5,0
+[0-9a-f]+ <[^>]*> 419b1806 mttr k1,\$3,0,6,0
+[0-9a-f]+ <[^>]*> 419b1807 mttr k1,\$3,0,7,0
+[0-9a-f]+ <[^>]*> 419b2000 mttr k1,\$4,0,0,0
+[0-9a-f]+ <[^>]*> 419b2001 mttr k1,\$4,0,1,0
+[0-9a-f]+ <[^>]*> 419b2002 mttr k1,\$4,0,2,0
+[0-9a-f]+ <[^>]*> 419b2003 mttr k1,\$4,0,3,0
+[0-9a-f]+ <[^>]*> 419b2004 mttr k1,\$4,0,4,0
+[0-9a-f]+ <[^>]*> 419b2005 mttr k1,\$4,0,5,0
+[0-9a-f]+ <[^>]*> 419b2006 mttr k1,\$4,0,6,0
+[0-9a-f]+ <[^>]*> 419b2007 mttr k1,\$4,0,7,0
+[0-9a-f]+ <[^>]*> 419b2800 mttr k1,\$5,0,0,0
+[0-9a-f]+ <[^>]*> 419b2801 mttr k1,\$5,0,1,0
+[0-9a-f]+ <[^>]*> 419b2802 mttr k1,\$5,0,2,0
+[0-9a-f]+ <[^>]*> 419b2803 mttr k1,\$5,0,3,0
+[0-9a-f]+ <[^>]*> 419b2804 mttr k1,\$5,0,4,0
+[0-9a-f]+ <[^>]*> 419b2805 mttr k1,\$5,0,5,0
+[0-9a-f]+ <[^>]*> 419b2806 mttr k1,\$5,0,6,0
+[0-9a-f]+ <[^>]*> 419b2807 mttr k1,\$5,0,7,0
+[0-9a-f]+ <[^>]*> 419b3000 mttr k1,\$6,0,0,0
+[0-9a-f]+ <[^>]*> 419b3001 mttr k1,\$6,0,1,0
+[0-9a-f]+ <[^>]*> 419b3002 mttr k1,\$6,0,2,0
+[0-9a-f]+ <[^>]*> 419b3003 mttr k1,\$6,0,3,0
+[0-9a-f]+ <[^>]*> 419b3004 mttr k1,\$6,0,4,0
+[0-9a-f]+ <[^>]*> 419b3005 mttr k1,\$6,0,5,0
+[0-9a-f]+ <[^>]*> 419b3006 mttr k1,\$6,0,6,0
+[0-9a-f]+ <[^>]*> 419b3007 mttr k1,\$6,0,7,0
+[0-9a-f]+ <[^>]*> 419b3800 mttr k1,\$7,0,0,0
+[0-9a-f]+ <[^>]*> 419b3801 mttr k1,\$7,0,1,0
+[0-9a-f]+ <[^>]*> 419b3802 mttr k1,\$7,0,2,0
+[0-9a-f]+ <[^>]*> 419b3803 mttr k1,\$7,0,3,0
+[0-9a-f]+ <[^>]*> 419b3804 mttr k1,\$7,0,4,0
+[0-9a-f]+ <[^>]*> 419b3805 mttr k1,\$7,0,5,0
+[0-9a-f]+ <[^>]*> 419b3806 mttr k1,\$7,0,6,0
+[0-9a-f]+ <[^>]*> 419b3807 mttr k1,\$7,0,7,0
+[0-9a-f]+ <[^>]*> 419b4000 mttr k1,\$8,0,0,0
+[0-9a-f]+ <[^>]*> 419b4001 mttr k1,\$8,0,1,0
+[0-9a-f]+ <[^>]*> 419b4002 mttr k1,\$8,0,2,0
+[0-9a-f]+ <[^>]*> 419b4003 mttr k1,\$8,0,3,0
+[0-9a-f]+ <[^>]*> 419b4004 mttr k1,\$8,0,4,0
+[0-9a-f]+ <[^>]*> 419b4005 mttr k1,\$8,0,5,0
+[0-9a-f]+ <[^>]*> 419b4006 mttr k1,\$8,0,6,0
+[0-9a-f]+ <[^>]*> 419b4007 mttr k1,\$8,0,7,0
+[0-9a-f]+ <[^>]*> 419b4800 mttr k1,\$9,0,0,0
+[0-9a-f]+ <[^>]*> 419b4801 mttr k1,\$9,0,1,0
+[0-9a-f]+ <[^>]*> 419b4802 mttr k1,\$9,0,2,0
+[0-9a-f]+ <[^>]*> 419b4803 mttr k1,\$9,0,3,0
+[0-9a-f]+ <[^>]*> 419b4804 mttr k1,\$9,0,4,0
+[0-9a-f]+ <[^>]*> 419b4805 mttr k1,\$9,0,5,0
+[0-9a-f]+ <[^>]*> 419b4806 mttr k1,\$9,0,6,0
+[0-9a-f]+ <[^>]*> 419b4807 mttr k1,\$9,0,7,0
+[0-9a-f]+ <[^>]*> 419b5000 mttr k1,\$10,0,0,0
+[0-9a-f]+ <[^>]*> 419b5001 mttr k1,\$10,0,1,0
+[0-9a-f]+ <[^>]*> 419b5002 mttr k1,\$10,0,2,0
+[0-9a-f]+ <[^>]*> 419b5003 mttr k1,\$10,0,3,0
+[0-9a-f]+ <[^>]*> 419b5004 mttr k1,\$10,0,4,0
+[0-9a-f]+ <[^>]*> 419b5005 mttr k1,\$10,0,5,0
+[0-9a-f]+ <[^>]*> 419b5006 mttr k1,\$10,0,6,0
+[0-9a-f]+ <[^>]*> 419b5007 mttr k1,\$10,0,7,0
+[0-9a-f]+ <[^>]*> 419b5800 mttr k1,\$11,0,0,0
+[0-9a-f]+ <[^>]*> 419b5801 mttr k1,\$11,0,1,0
+[0-9a-f]+ <[^>]*> 419b5802 mttr k1,\$11,0,2,0
+[0-9a-f]+ <[^>]*> 419b5803 mttr k1,\$11,0,3,0
+[0-9a-f]+ <[^>]*> 419b5804 mttr k1,\$11,0,4,0
+[0-9a-f]+ <[^>]*> 419b5805 mttr k1,\$11,0,5,0
+[0-9a-f]+ <[^>]*> 419b5806 mttr k1,\$11,0,6,0
+[0-9a-f]+ <[^>]*> 419b5807 mttr k1,\$11,0,7,0
+[0-9a-f]+ <[^>]*> 419b6000 mttr k1,\$12,0,0,0
+[0-9a-f]+ <[^>]*> 419b6001 mttr k1,\$12,0,1,0
+[0-9a-f]+ <[^>]*> 419b6002 mttr k1,\$12,0,2,0
+[0-9a-f]+ <[^>]*> 419b6003 mttr k1,\$12,0,3,0
+[0-9a-f]+ <[^>]*> 419b6004 mttr k1,\$12,0,4,0
+[0-9a-f]+ <[^>]*> 419b6005 mttr k1,\$12,0,5,0
+[0-9a-f]+ <[^>]*> 419b6006 mttr k1,\$12,0,6,0
+[0-9a-f]+ <[^>]*> 419b6007 mttr k1,\$12,0,7,0
+[0-9a-f]+ <[^>]*> 419b6800 mttr k1,\$13,0,0,0
+[0-9a-f]+ <[^>]*> 419b6801 mttr k1,\$13,0,1,0
+[0-9a-f]+ <[^>]*> 419b6802 mttr k1,\$13,0,2,0
+[0-9a-f]+ <[^>]*> 419b6803 mttr k1,\$13,0,3,0
+[0-9a-f]+ <[^>]*> 419b6804 mttr k1,\$13,0,4,0
+[0-9a-f]+ <[^>]*> 419b6805 mttr k1,\$13,0,5,0
+[0-9a-f]+ <[^>]*> 419b6806 mttr k1,\$13,0,6,0
+[0-9a-f]+ <[^>]*> 419b6807 mttr k1,\$13,0,7,0
+[0-9a-f]+ <[^>]*> 419b7000 mttr k1,\$14,0,0,0
+[0-9a-f]+ <[^>]*> 419b7001 mttr k1,\$14,0,1,0
+[0-9a-f]+ <[^>]*> 419b7002 mttr k1,\$14,0,2,0
+[0-9a-f]+ <[^>]*> 419b7003 mttr k1,\$14,0,3,0
+[0-9a-f]+ <[^>]*> 419b7004 mttr k1,\$14,0,4,0
+[0-9a-f]+ <[^>]*> 419b7005 mttr k1,\$14,0,5,0
+[0-9a-f]+ <[^>]*> 419b7006 mttr k1,\$14,0,6,0
+[0-9a-f]+ <[^>]*> 419b7007 mttr k1,\$14,0,7,0
+[0-9a-f]+ <[^>]*> 419b7800 mttr k1,\$15,0,0,0
+[0-9a-f]+ <[^>]*> 419b7801 mttr k1,\$15,0,1,0
+[0-9a-f]+ <[^>]*> 419b7802 mttr k1,\$15,0,2,0
+[0-9a-f]+ <[^>]*> 419b7803 mttr k1,\$15,0,3,0
+[0-9a-f]+ <[^>]*> 419b7804 mttr k1,\$15,0,4,0
+[0-9a-f]+ <[^>]*> 419b7805 mttr k1,\$15,0,5,0
+[0-9a-f]+ <[^>]*> 419b7806 mttr k1,\$15,0,6,0
+[0-9a-f]+ <[^>]*> 419b7807 mttr k1,\$15,0,7,0
+[0-9a-f]+ <[^>]*> 419b8000 mttr k1,\$16,0,0,0
+[0-9a-f]+ <[^>]*> 419b8001 mttr k1,\$16,0,1,0
+[0-9a-f]+ <[^>]*> 419b8002 mttr k1,\$16,0,2,0
+[0-9a-f]+ <[^>]*> 419b8003 mttr k1,\$16,0,3,0
+[0-9a-f]+ <[^>]*> 419b8004 mttr k1,\$16,0,4,0
+[0-9a-f]+ <[^>]*> 419b8005 mttr k1,\$16,0,5,0
+[0-9a-f]+ <[^>]*> 419b8006 mttr k1,\$16,0,6,0
+[0-9a-f]+ <[^>]*> 419b8007 mttr k1,\$16,0,7,0
+[0-9a-f]+ <[^>]*> 419b8800 mttr k1,\$17,0,0,0
+[0-9a-f]+ <[^>]*> 419b8801 mttr k1,\$17,0,1,0
+[0-9a-f]+ <[^>]*> 419b8802 mttr k1,\$17,0,2,0
+[0-9a-f]+ <[^>]*> 419b8803 mttr k1,\$17,0,3,0
+[0-9a-f]+ <[^>]*> 419b8804 mttr k1,\$17,0,4,0
+[0-9a-f]+ <[^>]*> 419b8805 mttr k1,\$17,0,5,0
+[0-9a-f]+ <[^>]*> 419b8806 mttr k1,\$17,0,6,0
+[0-9a-f]+ <[^>]*> 419b8807 mttr k1,\$17,0,7,0
+[0-9a-f]+ <[^>]*> 419b9000 mttr k1,\$18,0,0,0
+[0-9a-f]+ <[^>]*> 419b9001 mttr k1,\$18,0,1,0
+[0-9a-f]+ <[^>]*> 419b9002 mttr k1,\$18,0,2,0
+[0-9a-f]+ <[^>]*> 419b9003 mttr k1,\$18,0,3,0
+[0-9a-f]+ <[^>]*> 419b9004 mttr k1,\$18,0,4,0
+[0-9a-f]+ <[^>]*> 419b9005 mttr k1,\$18,0,5,0
+[0-9a-f]+ <[^>]*> 419b9006 mttr k1,\$18,0,6,0
+[0-9a-f]+ <[^>]*> 419b9007 mttr k1,\$18,0,7,0
+[0-9a-f]+ <[^>]*> 419b9800 mttr k1,\$19,0,0,0
+[0-9a-f]+ <[^>]*> 419b9801 mttr k1,\$19,0,1,0
+[0-9a-f]+ <[^>]*> 419b9802 mttr k1,\$19,0,2,0
+[0-9a-f]+ <[^>]*> 419b9803 mttr k1,\$19,0,3,0
+[0-9a-f]+ <[^>]*> 419b9804 mttr k1,\$19,0,4,0
+[0-9a-f]+ <[^>]*> 419b9805 mttr k1,\$19,0,5,0
+[0-9a-f]+ <[^>]*> 419b9806 mttr k1,\$19,0,6,0
+[0-9a-f]+ <[^>]*> 419b9807 mttr k1,\$19,0,7,0
+[0-9a-f]+ <[^>]*> 419ba000 mttr k1,\$20,0,0,0
+[0-9a-f]+ <[^>]*> 419ba001 mttr k1,\$20,0,1,0
+[0-9a-f]+ <[^>]*> 419ba002 mttr k1,\$20,0,2,0
+[0-9a-f]+ <[^>]*> 419ba003 mttr k1,\$20,0,3,0
+[0-9a-f]+ <[^>]*> 419ba004 mttr k1,\$20,0,4,0
+[0-9a-f]+ <[^>]*> 419ba005 mttr k1,\$20,0,5,0
+[0-9a-f]+ <[^>]*> 419ba006 mttr k1,\$20,0,6,0
+[0-9a-f]+ <[^>]*> 419ba007 mttr k1,\$20,0,7,0
+[0-9a-f]+ <[^>]*> 419ba800 mttr k1,\$21,0,0,0
+[0-9a-f]+ <[^>]*> 419ba801 mttr k1,\$21,0,1,0
+[0-9a-f]+ <[^>]*> 419ba802 mttr k1,\$21,0,2,0
+[0-9a-f]+ <[^>]*> 419ba803 mttr k1,\$21,0,3,0
+[0-9a-f]+ <[^>]*> 419ba804 mttr k1,\$21,0,4,0
+[0-9a-f]+ <[^>]*> 419ba805 mttr k1,\$21,0,5,0
+[0-9a-f]+ <[^>]*> 419ba806 mttr k1,\$21,0,6,0
+[0-9a-f]+ <[^>]*> 419ba807 mttr k1,\$21,0,7,0
+[0-9a-f]+ <[^>]*> 419bb000 mttr k1,\$22,0,0,0
+[0-9a-f]+ <[^>]*> 419bb001 mttr k1,\$22,0,1,0
+[0-9a-f]+ <[^>]*> 419bb002 mttr k1,\$22,0,2,0
+[0-9a-f]+ <[^>]*> 419bb003 mttr k1,\$22,0,3,0
+[0-9a-f]+ <[^>]*> 419bb004 mttr k1,\$22,0,4,0
+[0-9a-f]+ <[^>]*> 419bb005 mttr k1,\$22,0,5,0
+[0-9a-f]+ <[^>]*> 419bb006 mttr k1,\$22,0,6,0
+[0-9a-f]+ <[^>]*> 419bb007 mttr k1,\$22,0,7,0
+[0-9a-f]+ <[^>]*> 419bb800 mttr k1,\$23,0,0,0
+[0-9a-f]+ <[^>]*> 419bb801 mttr k1,\$23,0,1,0
+[0-9a-f]+ <[^>]*> 419bb802 mttr k1,\$23,0,2,0
+[0-9a-f]+ <[^>]*> 419bb803 mttr k1,\$23,0,3,0
+[0-9a-f]+ <[^>]*> 419bb804 mttr k1,\$23,0,4,0
+[0-9a-f]+ <[^>]*> 419bb805 mttr k1,\$23,0,5,0
+[0-9a-f]+ <[^>]*> 419bb806 mttr k1,\$23,0,6,0
+[0-9a-f]+ <[^>]*> 419bb807 mttr k1,\$23,0,7,0
+[0-9a-f]+ <[^>]*> 419bc000 mttr k1,\$24,0,0,0
+[0-9a-f]+ <[^>]*> 419bc001 mttr k1,\$24,0,1,0
+[0-9a-f]+ <[^>]*> 419bc002 mttr k1,\$24,0,2,0
+[0-9a-f]+ <[^>]*> 419bc003 mttr k1,\$24,0,3,0
+[0-9a-f]+ <[^>]*> 419bc004 mttr k1,\$24,0,4,0
+[0-9a-f]+ <[^>]*> 419bc005 mttr k1,\$24,0,5,0
+[0-9a-f]+ <[^>]*> 419bc006 mttr k1,\$24,0,6,0
+[0-9a-f]+ <[^>]*> 419bc007 mttr k1,\$24,0,7,0
+[0-9a-f]+ <[^>]*> 419bc800 mttr k1,\$25,0,0,0
+[0-9a-f]+ <[^>]*> 419bc801 mttr k1,\$25,0,1,0
+[0-9a-f]+ <[^>]*> 419bc802 mttr k1,\$25,0,2,0
+[0-9a-f]+ <[^>]*> 419bc803 mttr k1,\$25,0,3,0
+[0-9a-f]+ <[^>]*> 419bc804 mttr k1,\$25,0,4,0
+[0-9a-f]+ <[^>]*> 419bc805 mttr k1,\$25,0,5,0
+[0-9a-f]+ <[^>]*> 419bc806 mttr k1,\$25,0,6,0
+[0-9a-f]+ <[^>]*> 419bc807 mttr k1,\$25,0,7,0
+[0-9a-f]+ <[^>]*> 419bd000 mttr k1,\$26,0,0,0
+[0-9a-f]+ <[^>]*> 419bd001 mttr k1,\$26,0,1,0
+[0-9a-f]+ <[^>]*> 419bd002 mttr k1,\$26,0,2,0
+[0-9a-f]+ <[^>]*> 419bd003 mttr k1,\$26,0,3,0
+[0-9a-f]+ <[^>]*> 419bd004 mttr k1,\$26,0,4,0
+[0-9a-f]+ <[^>]*> 419bd005 mttr k1,\$26,0,5,0
+[0-9a-f]+ <[^>]*> 419bd006 mttr k1,\$26,0,6,0
+[0-9a-f]+ <[^>]*> 419bd007 mttr k1,\$26,0,7,0
+[0-9a-f]+ <[^>]*> 419bd800 mttr k1,\$27,0,0,0
+[0-9a-f]+ <[^>]*> 419bd801 mttr k1,\$27,0,1,0
+[0-9a-f]+ <[^>]*> 419bd802 mttr k1,\$27,0,2,0
+[0-9a-f]+ <[^>]*> 419bd803 mttr k1,\$27,0,3,0
+[0-9a-f]+ <[^>]*> 419bd804 mttr k1,\$27,0,4,0
+[0-9a-f]+ <[^>]*> 419bd805 mttr k1,\$27,0,5,0
+[0-9a-f]+ <[^>]*> 419bd806 mttr k1,\$27,0,6,0
+[0-9a-f]+ <[^>]*> 419bd807 mttr k1,\$27,0,7,0
+[0-9a-f]+ <[^>]*> 419be000 mttr k1,\$28,0,0,0
+[0-9a-f]+ <[^>]*> 419be001 mttr k1,\$28,0,1,0
+[0-9a-f]+ <[^>]*> 419be002 mttr k1,\$28,0,2,0
+[0-9a-f]+ <[^>]*> 419be003 mttr k1,\$28,0,3,0
+[0-9a-f]+ <[^>]*> 419be004 mttr k1,\$28,0,4,0
+[0-9a-f]+ <[^>]*> 419be005 mttr k1,\$28,0,5,0
+[0-9a-f]+ <[^>]*> 419be006 mttr k1,\$28,0,6,0
+[0-9a-f]+ <[^>]*> 419be007 mttr k1,\$28,0,7,0
+[0-9a-f]+ <[^>]*> 419be800 mttr k1,\$29,0,0,0
+[0-9a-f]+ <[^>]*> 419be801 mttr k1,\$29,0,1,0
+[0-9a-f]+ <[^>]*> 419be802 mttr k1,\$29,0,2,0
+[0-9a-f]+ <[^>]*> 419be803 mttr k1,\$29,0,3,0
+[0-9a-f]+ <[^>]*> 419be804 mttr k1,\$29,0,4,0
+[0-9a-f]+ <[^>]*> 419be805 mttr k1,\$29,0,5,0
+[0-9a-f]+ <[^>]*> 419be806 mttr k1,\$29,0,6,0
+[0-9a-f]+ <[^>]*> 419be807 mttr k1,\$29,0,7,0
+[0-9a-f]+ <[^>]*> 419bf000 mttr k1,\$30,0,0,0
+[0-9a-f]+ <[^>]*> 419bf001 mttr k1,\$30,0,1,0
+[0-9a-f]+ <[^>]*> 419bf002 mttr k1,\$30,0,2,0
+[0-9a-f]+ <[^>]*> 419bf003 mttr k1,\$30,0,3,0
+[0-9a-f]+ <[^>]*> 419bf004 mttr k1,\$30,0,4,0
+[0-9a-f]+ <[^>]*> 419bf005 mttr k1,\$30,0,5,0
+[0-9a-f]+ <[^>]*> 419bf006 mttr k1,\$30,0,6,0
+[0-9a-f]+ <[^>]*> 419bf007 mttr k1,\$30,0,7,0
+[0-9a-f]+ <[^>]*> 419bf800 mttr k1,\$31,0,0,0
+[0-9a-f]+ <[^>]*> 419bf801 mttr k1,\$31,0,1,0
+[0-9a-f]+ <[^>]*> 419bf802 mttr k1,\$31,0,2,0
+[0-9a-f]+ <[^>]*> 419bf803 mttr k1,\$31,0,3,0
+[0-9a-f]+ <[^>]*> 419bf804 mttr k1,\$31,0,4,0
+[0-9a-f]+ <[^>]*> 419bf805 mttr k1,\$31,0,5,0
+[0-9a-f]+ <[^>]*> 419bf806 mttr k1,\$31,0,6,0
+[0-9a-f]+ <[^>]*> 419bf807 mttr k1,\$31,0,7,0
+[0-9a-f]+ <[^>]*> 419ce820 mttr gp,\$29,1,0,0
+[0-9a-f]+ <[^>]*> 419d0021 mttr sp,\$0,1,1,0
+[0-9a-f]+ <[^>]*> 419e6021 mttr s8,\$12,1,1,0
+[0-9a-f]+ <[^>]*> 419f0821 mttr ra,\$1,1,1,0
+[0-9a-f]+ <[^>]*> 41800821 mttr zero,\$1,1,1,0
+[0-9a-f]+ <[^>]*> 41811021 mttr at,\$2,1,1,0
+[0-9a-f]+ <[^>]*> 41823021 mttr v0,\$6,1,1,0
+[0-9a-f]+ <[^>]*> 41838021 mttr v1,\$16,1,1,0
+[0-9a-f]+ <[^>]*> 41842822 mttr a0,\$5,1,2,0
+[0-9a-f]+ <[^>]*> 41853022 mttr a1,\$6,1,2,0
+[0-9a-f]+ <[^>]*> 41864032 mttr a2,\$8,1,2,1
+[0-9a-f]+ <[^>]*> 41875032 mttr a3,\$10,1,2,1
+[0-9a-f]+ <[^>]*> 41884823 mttr t0,\$9,1,3,0
+[0-9a-f]+ <[^>]*> 41895023 mttr t1,\$10,1,3,0
+[0-9a-f]+ <[^>]*> 418a5824 mttr t2,\$11,1,4,0
+[0-9a-f]+ <[^>]*> 418b6034 mttr t3,\$12,1,4,1
+[0-9a-f]+ <[^>]*> 418c6825 mttr t4,\$13,1,5,0
+[0-9a-f]+ <[^>]*> 410e6800 mftr t5,\$14,0,0,0
+[0-9a-f]+ <[^>]*> 410e6801 mftr t5,\$14,0,1,0
+[0-9a-f]+ <[^>]*> 410e6802 mftr t5,\$14,0,2,0
+[0-9a-f]+ <[^>]*> 410e6803 mftr t5,\$14,0,3,0
+[0-9a-f]+ <[^>]*> 410e6804 mftr t5,\$14,0,4,0
+[0-9a-f]+ <[^>]*> 410e6805 mftr t5,\$14,0,5,0
+[0-9a-f]+ <[^>]*> 410e6806 mftr t5,\$14,0,6,0
+[0-9a-f]+ <[^>]*> 410e6807 mftr t5,\$14,0,7,0
+[0-9a-f]+ <[^>]*> 410e6810 mftr t5,\$14,0,0,1
+[0-9a-f]+ <[^>]*> 410e6811 mftr t5,\$14,0,1,1
+[0-9a-f]+ <[^>]*> 410e6812 mftr t5,\$14,0,2,1
+[0-9a-f]+ <[^>]*> 410e6813 mftr t5,\$14,0,3,1
+[0-9a-f]+ <[^>]*> 410e6814 mftr t5,\$14,0,4,1
+[0-9a-f]+ <[^>]*> 410e6815 mftr t5,\$14,0,5,1
+[0-9a-f]+ <[^>]*> 410e6816 mftr t5,\$14,0,6,1
+[0-9a-f]+ <[^>]*> 410e6817 mftr t5,\$14,0,7,1
+[0-9a-f]+ <[^>]*> 410e6820 mftr t5,\$14,1,0,0
+[0-9a-f]+ <[^>]*> 410e6821 mftr t5,\$14,1,1,0
+[0-9a-f]+ <[^>]*> 410e6822 mftr t5,\$14,1,2,0
+[0-9a-f]+ <[^>]*> 410e6823 mftr t5,\$14,1,3,0
+[0-9a-f]+ <[^>]*> 410e6824 mftr t5,\$14,1,4,0
+[0-9a-f]+ <[^>]*> 410e6825 mftr t5,\$14,1,5,0
+[0-9a-f]+ <[^>]*> 410e6826 mftr t5,\$14,1,6,0
+[0-9a-f]+ <[^>]*> 410e6827 mftr t5,\$14,1,7,0
+[0-9a-f]+ <[^>]*> 410e6830 mftr t5,\$14,1,0,1
+[0-9a-f]+ <[^>]*> 410e6831 mftr t5,\$14,1,1,1
+[0-9a-f]+ <[^>]*> 410e6832 mftr t5,\$14,1,2,1
+[0-9a-f]+ <[^>]*> 410e6833 mftr t5,\$14,1,3,1
+[0-9a-f]+ <[^>]*> 410e6834 mftr t5,\$14,1,4,1
+[0-9a-f]+ <[^>]*> 410e6835 mftr t5,\$14,1,5,1
+[0-9a-f]+ <[^>]*> 410e6836 mftr t5,\$14,1,6,1
+[0-9a-f]+ <[^>]*> 410e6837 mftr t5,\$14,1,7,1
+[0-9a-f]+ <[^>]*> 418d7000 mttr t5,\$14,0,0,0
+[0-9a-f]+ <[^>]*> 418d7001 mttr t5,\$14,0,1,0
+[0-9a-f]+ <[^>]*> 418d7002 mttr t5,\$14,0,2,0
+[0-9a-f]+ <[^>]*> 418d7003 mttr t5,\$14,0,3,0
+[0-9a-f]+ <[^>]*> 418d7004 mttr t5,\$14,0,4,0
+[0-9a-f]+ <[^>]*> 418d7005 mttr t5,\$14,0,5,0
+[0-9a-f]+ <[^>]*> 418d7006 mttr t5,\$14,0,6,0
+[0-9a-f]+ <[^>]*> 418d7007 mttr t5,\$14,0,7,0
+[0-9a-f]+ <[^>]*> 418d7010 mttr t5,\$14,0,0,1
+[0-9a-f]+ <[^>]*> 418d7011 mttr t5,\$14,0,1,1
+[0-9a-f]+ <[^>]*> 418d7012 mttr t5,\$14,0,2,1
+[0-9a-f]+ <[^>]*> 418d7013 mttr t5,\$14,0,3,1
+[0-9a-f]+ <[^>]*> 418d7014 mttr t5,\$14,0,4,1
+[0-9a-f]+ <[^>]*> 418d7015 mttr t5,\$14,0,5,1
+[0-9a-f]+ <[^>]*> 418d7016 mttr t5,\$14,0,6,1
+[0-9a-f]+ <[^>]*> 418d7017 mttr t5,\$14,0,7,1
+[0-9a-f]+ <[^>]*> 418d7020 mttr t5,\$14,1,0,0
+[0-9a-f]+ <[^>]*> 418d7021 mttr t5,\$14,1,1,0
+[0-9a-f]+ <[^>]*> 418d7022 mttr t5,\$14,1,2,0
+[0-9a-f]+ <[^>]*> 418d7023 mttr t5,\$14,1,3,0
+[0-9a-f]+ <[^>]*> 418d7024 mttr t5,\$14,1,4,0
+[0-9a-f]+ <[^>]*> 418d7025 mttr t5,\$14,1,5,0
+[0-9a-f]+ <[^>]*> 418d7026 mttr t5,\$14,1,6,0
+[0-9a-f]+ <[^>]*> 418d7027 mttr t5,\$14,1,7,0
+[0-9a-f]+ <[^>]*> 418d7030 mttr t5,\$14,1,0,1
+[0-9a-f]+ <[^>]*> 418d7031 mttr t5,\$14,1,1,1
+[0-9a-f]+ <[^>]*> 418d7032 mttr t5,\$14,1,2,1
+[0-9a-f]+ <[^>]*> 418d7033 mttr t5,\$14,1,3,1
+[0-9a-f]+ <[^>]*> 418d7034 mttr t5,\$14,1,4,1
+[0-9a-f]+ <[^>]*> 418d7035 mttr t5,\$14,1,5,1
+[0-9a-f]+ <[^>]*> 418d7036 mttr t5,\$14,1,6,1
+[0-9a-f]+ <[^>]*> 418d7037 mttr t5,\$14,1,7,1
+[0-9a-f]+ <[^>]*> 00000140 sll zero,zero,0x5
+ \.\.\.
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index 8b432f3..2e105fe 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -1273,6 +1273,11 @@ if [is_elf_format] {
run_dump_test "strip-7"
run_dump_test "strip-8"
run_dump_test "strip-9"
+ # This requires STB_GNU_UNIQUE support with OSABI set to GNU.
+ if { [supports_gnu_unique] } {
+ run_dump_test "strip-10"
+ }
+ run_dump_test "strip-11"
run_dump_test "strip-12"
if { [istarget "mips64*-*-openbsd*"] \
@@ -1308,12 +1313,7 @@ if [is_elf_format] {
run_dump_test "strip-15" [list \
[list source strip-15${reloc_format}.s] \
[list as "${elf64} --defsym RELOC=${reloc}"]]
-
- # This requires STB_GNU_UNIQUE support with OSABI set to GNU.
- if { [supports_gnu_unique] } {
- run_dump_test "strip-10"
- }
- run_dump_test "strip-11"
+ run_dump_test "strip-16"
if { [istarget "i*86-*"] || [istarget "x86_64-*-*"] } {
# Check to make sure we don't strip a symbol named in relocations.
diff --git a/binutils/testsuite/binutils-all/strip-13.d b/binutils/testsuite/binutils-all/strip-13.d
index 73ab642..48a3124 100644
--- a/binutils/testsuite/binutils-all/strip-13.d
+++ b/binutils/testsuite/binutils-all/strip-13.d
@@ -1,7 +1,6 @@
#PROG: strip
#strip: -g
-#error: \A[^\n]*: unsupported relocation type 0x[0-9a-f]+\n
-#error: [^\n]*: bad value\Z
+#error: \A[^\n]*: unsupported relocation type 0x[0-9a-f]+\Z
#notarget: rx-*
# The RX targets do not complain about unrecognised relocs, unless they
# are actually used
diff --git a/binutils/testsuite/binutils-all/strip-16.d b/binutils/testsuite/binutils-all/strip-16.d
new file mode 100644
index 0000000..039a60b
--- /dev/null
+++ b/binutils/testsuite/binutils-all/strip-16.d
@@ -0,0 +1,12 @@
+#PROG: strip
+#strip: --strip-unneeded --merge-notes
+#as: --generate-missing-build-notes=yes
+#readelf: --notes --wide
+#name: strip with build notes
+#source: note-5.s
+
+#...
+Displaying notes found in: .gnu.build.attributes
+[ ]+Owner[ ]+Data size[ ]+Description
+[ ]+GA\$<version>3a1[ ]+0x000000(08|10)[ ]+OPEN[ ]+Applies to region from 0 to 0x.. \(note_5.s\)
+#...
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
index f013657..cffd9cf 100644
--- a/binutils/testsuite/lib/binutils-common.exp
+++ b/binutils/testsuite/lib/binutils-common.exp
@@ -473,7 +473,8 @@ proc supports_dt_relr {} {
if { ([istarget x86_64-*-*]
|| [istarget i?86-*-*]
|| [istarget powerpc64*-*-*]
- || [istarget aarch64*-*-*])
+ || [istarget aarch64*-*-*]
+ || [istarget loongarch64*-*-*])
&& ([istarget *-*-linux*]
|| [istarget *-*-gnu*]) } {
return 1
diff --git a/config.guess b/config.guess
index cdfc439..f6d217a 100755
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2023 Free Software Foundation, Inc.
+# Copyright 1992-2024 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
-timestamp='2023-08-22'
+timestamp='2024-01-01'
# 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
@@ -60,7 +60,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -165,6 +165,8 @@ Linux|GNU|GNU/*)
LIBC=dietlibc
#elif defined(__GLIBC__)
LIBC=gnu
+ #elif defined(__LLVM_LIBC__)
+ LIBC=llvm
#else
#include <stdarg.h>
/* First heuristic to detect musl libc. */
@@ -1593,6 +1595,9 @@ EOF
*:Unleashed:*:*)
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
;;
+ *:Ironclad:*:*)
+ GUESS=$UNAME_MACHINE-unknown-ironclad
+ ;;
esac
# Do we have a guess based on uname results?
diff --git a/config.sub b/config.sub
index defe52c..2c6a07a 100755
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2023 Free Software Foundation, Inc.
+# Copyright 1992-2024 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
-timestamp='2023-09-19'
+timestamp='2024-01-01'
# 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
@@ -76,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -1222,6 +1222,7 @@ case $cpu-$vendor in
| moxie \
| mt \
| msp430 \
+ | nanomips* \
| nds32 | nds32le | nds32be \
| nfp \
| nios | nios2 | nios2eb | nios2el \
@@ -1253,6 +1254,7 @@ case $cpu-$vendor in
| ubicom32 \
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
| vax \
+ | vc4 \
| visium \
| w65 \
| wasm32 | wasm64 \
@@ -1597,7 +1599,7 @@ case $cpu-$vendor in
os=
obj=elf
;;
- mips*-*)
+ mips*-*|nanomips*-*)
os=
obj=elf
;;
@@ -1721,7 +1723,7 @@ fi
case $os in
# Sometimes we do "kernel-libc", so those need to count as OSes.
- musl* | newlib* | relibc* | uclibc*)
+ llvm* | musl* | newlib* | relibc* | uclibc*)
;;
# Likewise for "kernel-abi"
eabi* | gnueabi*)
@@ -1766,12 +1768,19 @@ case $os in
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
- | fiwix* | mlibc* | cos* | mbr* )
+ | fiwix* | mlibc* | cos* | mbr* | ironclad* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
# Don't forget version if it is 3.2v4 or newer.
;;
+ # This refers to builds using the UEFI calling convention
+ # (which depends on the architecture) and PE file format.
+ # Note that this is both a different calling convention and
+ # different file format than that of GNU-EFI
+ # (x86_64-w64-mingw32).
+ uefi)
+ ;;
none)
;;
kernel* | msvc* )
@@ -1818,8 +1827,9 @@ esac
# As a final step for OS-related things, validate the OS-kernel combination
# (given a valid OS), if there is a kernel.
case $kernel-$os-$obj in
- linux-gnu*- | linux-dietlibc*- | linux-android*- | linux-newlib*- \
- | linux-musl*- | linux-relibc*- | linux-uclibc*- | linux-mlibc*- )
+ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
+ | linux-mlibc*- | linux-musl*- | linux-newlib*- \
+ | linux-relibc*- | linux-uclibc*- )
;;
uclinux-uclibc*- )
;;
@@ -1827,7 +1837,8 @@ case $kernel-$os-$obj in
;;
windows*-msvc*-)
;;
- -dietlibc*- | -newlib*- | -musl*- | -relibc*- | -uclibc*- | -mlibc*- )
+ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
+ | -uclibc*- )
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
diff --git a/configure b/configure
index d8cb423..7823f2c 100755
--- a/configure
+++ b/configure
@@ -3146,7 +3146,7 @@ fi
if test "$enable_gprofng" = "yes"; then
case "${target}" in
- x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
+ x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux* | riscv64-*-linux*)
configdirs="$configdirs gprofng"
;;
esac
diff --git a/configure.ac b/configure.ac
index 326d469..a390639 100644
--- a/configure.ac
+++ b/configure.ac
@@ -414,7 +414,7 @@ enable_gprofng=$enableval,
enable_gprofng=yes)
if test "$enable_gprofng" = "yes"; then
case "${target}" in
- x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux*)
+ x86_64-*-linux* | i?86-*-linux* | aarch64-*-linux* | riscv64-*-linux*)
configdirs="$configdirs gprofng"
;;
esac
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index 23e1f61..d3e5f9b 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,10 +1,14 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-01-15 Nick Clifton <nickc@redhat.com>
* 2.42 branch point.
2023-07-03 Nick Clifton <nickc@redhat.com>
- 2.41 Branch Point.
+ * 2.41 Branch Point.
2023-03-15 Nick Clifton <nickc@redhat.com>
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index 359bc7c..44232a1 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,10 +1,14 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-01-15 Nick Clifton <nickc@redhat.com>
* 2.42 branch point.
2023-07-03 Nick Clifton <nickc@redhat.com>
- 2.41 Branch Point.
+ * 2.41 Branch Point.
2022-12-31 Nick Clifton <nickc@redhat.com>
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 88e6108..024daf4 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-02-19 Will Hawkins <hawkinsw@obs.cr>
* config/tc-bpf.c (parse_expression): Change switch to if so that
diff --git a/gas/NEWS b/gas/NEWS
index d0eb0f7..987798e 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,5 +1,23 @@
-*- text -*-
+Changes in 2.43:
+
+* The MIPS '--trap' command-line option now causes GAS to dynamically
+ track the ISA setting as code is assembled and to emit either trap or
+ breakpoint instructions according to whether the currently selected ISA
+ permits the use of trap instructions or not. Previously the ISA was
+ only checked at startup and GAS bailed out if the initial ISA was
+ incompatible with the '--trap' option.
+
+* Support CFCMOV feature in Intel APX. Now, APX_F is fully supportted.
+
+* Support CCMP and CTEST feature in Intel APX.
+
+* Support zero-upper feature in Intel APX.
+
+* Add a .base64 directive to the assembler which allows base64 encoded
+ binary data to be provided as strings.
+
* Add support for 'armv9.5-a' for -march in AArch64 GAS.
* In x86 Intel syntax undue mnemonic suffixes are now warned about. This is
diff --git a/gas/app.c b/gas/app.c
index 041941a..6a3efb1 100644
--- a/gas/app.c
+++ b/gas/app.c
@@ -58,10 +58,6 @@ static const char * symver_state;
static char last_char;
-static char lex[256];
-static const char symbol_chars[] =
-"$._ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
-
#define LEX_IS_SYMBOL_COMPONENT 1
#define LEX_IS_WHITESPACE 2
#define LEX_IS_LINE_SEPARATOR 3
@@ -91,25 +87,76 @@ static const char symbol_chars[] =
#define IS_PARALLEL_SEPARATOR(c) (lex[c] == LEX_IS_PARALLEL_SEPARATOR)
#define IS_COMMENT(c) (lex[c] == LEX_IS_COMMENT_START)
#define IS_LINE_COMMENT(c) (lex[c] == LEX_IS_LINE_COMMENT_START)
+#define IS_TWOCHAR_COMMENT_1ST(c) (lex[c] == LEX_IS_TWOCHAR_COMMENT_1ST)
#define IS_NEWLINE(c) (lex[c] == LEX_IS_NEWLINE)
-static int process_escape (int);
-
-/* FIXME-soon: The entire lexer/parser thingy should be
- built statically at compile time rather than dynamically
- each and every time the assembler is run. xoxorich. */
+static char lex[256] = {
+ [' '] = LEX_IS_WHITESPACE,
+ ['\t'] = LEX_IS_WHITESPACE,
+ ['\r'] = LEX_IS_WHITESPACE,
+ ['\n'] = LEX_IS_NEWLINE,
+ [':'] = LEX_IS_COLON,
+ ['$'] = LEX_IS_SYMBOL_COMPONENT,
+ ['.'] = LEX_IS_SYMBOL_COMPONENT,
+ ['_'] = LEX_IS_SYMBOL_COMPONENT,
+ ['A'] = LEX_IS_SYMBOL_COMPONENT, ['a'] = LEX_IS_SYMBOL_COMPONENT,
+ ['B'] = LEX_IS_SYMBOL_COMPONENT, ['b'] = LEX_IS_SYMBOL_COMPONENT,
+ ['C'] = LEX_IS_SYMBOL_COMPONENT, ['c'] = LEX_IS_SYMBOL_COMPONENT,
+ ['D'] = LEX_IS_SYMBOL_COMPONENT, ['d'] = LEX_IS_SYMBOL_COMPONENT,
+ ['E'] = LEX_IS_SYMBOL_COMPONENT, ['e'] = LEX_IS_SYMBOL_COMPONENT,
+ ['F'] = LEX_IS_SYMBOL_COMPONENT, ['f'] = LEX_IS_SYMBOL_COMPONENT,
+ ['G'] = LEX_IS_SYMBOL_COMPONENT, ['g'] = LEX_IS_SYMBOL_COMPONENT,
+ ['H'] = LEX_IS_SYMBOL_COMPONENT, ['h'] = LEX_IS_SYMBOL_COMPONENT,
+ ['I'] = LEX_IS_SYMBOL_COMPONENT, ['i'] = LEX_IS_SYMBOL_COMPONENT,
+ ['J'] = LEX_IS_SYMBOL_COMPONENT, ['j'] = LEX_IS_SYMBOL_COMPONENT,
+ ['K'] = LEX_IS_SYMBOL_COMPONENT, ['k'] = LEX_IS_SYMBOL_COMPONENT,
+ ['L'] = LEX_IS_SYMBOL_COMPONENT, ['l'] = LEX_IS_SYMBOL_COMPONENT,
+ ['M'] = LEX_IS_SYMBOL_COMPONENT, ['m'] = LEX_IS_SYMBOL_COMPONENT,
+ ['N'] = LEX_IS_SYMBOL_COMPONENT, ['n'] = LEX_IS_SYMBOL_COMPONENT,
+ ['O'] = LEX_IS_SYMBOL_COMPONENT, ['o'] = LEX_IS_SYMBOL_COMPONENT,
+ ['P'] = LEX_IS_SYMBOL_COMPONENT, ['p'] = LEX_IS_SYMBOL_COMPONENT,
+ ['Q'] = LEX_IS_SYMBOL_COMPONENT, ['q'] = LEX_IS_SYMBOL_COMPONENT,
+ ['R'] = LEX_IS_SYMBOL_COMPONENT, ['r'] = LEX_IS_SYMBOL_COMPONENT,
+ ['S'] = LEX_IS_SYMBOL_COMPONENT, ['s'] = LEX_IS_SYMBOL_COMPONENT,
+ ['T'] = LEX_IS_SYMBOL_COMPONENT, ['t'] = LEX_IS_SYMBOL_COMPONENT,
+ ['U'] = LEX_IS_SYMBOL_COMPONENT, ['u'] = LEX_IS_SYMBOL_COMPONENT,
+ ['V'] = LEX_IS_SYMBOL_COMPONENT, ['v'] = LEX_IS_SYMBOL_COMPONENT,
+ ['W'] = LEX_IS_SYMBOL_COMPONENT, ['w'] = LEX_IS_SYMBOL_COMPONENT,
+ ['X'] = LEX_IS_SYMBOL_COMPONENT, ['x'] = LEX_IS_SYMBOL_COMPONENT,
+ ['Y'] = LEX_IS_SYMBOL_COMPONENT, ['y'] = LEX_IS_SYMBOL_COMPONENT,
+ ['Z'] = LEX_IS_SYMBOL_COMPONENT, ['z'] = LEX_IS_SYMBOL_COMPONENT,
+ ['0'] = LEX_IS_SYMBOL_COMPONENT,
+ ['1'] = LEX_IS_SYMBOL_COMPONENT,
+ ['2'] = LEX_IS_SYMBOL_COMPONENT,
+ ['3'] = LEX_IS_SYMBOL_COMPONENT,
+ ['4'] = LEX_IS_SYMBOL_COMPONENT,
+ ['5'] = LEX_IS_SYMBOL_COMPONENT,
+ ['6'] = LEX_IS_SYMBOL_COMPONENT,
+ ['7'] = LEX_IS_SYMBOL_COMPONENT,
+ ['8'] = LEX_IS_SYMBOL_COMPONENT,
+ ['9'] = LEX_IS_SYMBOL_COMPONENT,
+#define INIT2(n) [n] = LEX_IS_SYMBOL_COMPONENT, \
+ [(n) + 1] = LEX_IS_SYMBOL_COMPONENT
+#define INIT4(n) INIT2 (n), INIT2 ((n) + 2)
+#define INIT8(n) INIT4 (n), INIT4 ((n) + 4)
+#define INIT16(n) INIT8 (n), INIT8 ((n) + 8)
+#define INIT32(n) INIT16 (n), INIT16 ((n) + 16)
+#define INIT64(n) INIT32 (n), INIT32 ((n) + 32)
+#define INIT128(n) INIT64 (n), INIT64 ((n) + 64)
+ INIT128 (128),
+#undef INIT128
+#undef INIT64
+#undef INIT32
+#undef INIT16
+#undef INIT8
+#undef INIT4
+#undef INIT2
+};
void
do_scrub_begin (int m68k_mri ATTRIBUTE_UNUSED)
{
const char *p;
- int c;
-
- lex[' '] = LEX_IS_WHITESPACE;
- lex['\t'] = LEX_IS_WHITESPACE;
- lex['\r'] = LEX_IS_WHITESPACE;
- lex['\n'] = LEX_IS_NEWLINE;
- lex[':'] = LEX_IS_COLON;
#ifdef TC_M68K
scrub_m68k_mri = m68k_mri;
@@ -133,11 +180,6 @@ do_scrub_begin (int m68k_mri ATTRIBUTE_UNUSED)
/* Note that these override the previous defaults, e.g. if ';' is a
comment char, then it isn't a line separator. */
- for (p = symbol_chars; *p; ++p)
- lex[(unsigned char) *p] = LEX_IS_SYMBOL_COMPONENT;
-
- for (c = 128; c < 256; ++c)
- lex[c] = LEX_IS_SYMBOL_COMPONENT;
#ifdef tc_symbol_chars
/* This macro permits the processor to specify all characters which
@@ -156,6 +198,9 @@ do_scrub_begin (int m68k_mri ATTRIBUTE_UNUSED)
for (p = tc_comment_chars; *p; p++)
lex[(unsigned char) *p] = LEX_IS_COMMENT_START;
+ /* While counter intuitive to have more special purpose line comment chars
+ override more general purpose ordinary ones, logic in do_scrub_chars()
+ depends on this ordering. */
for (p = line_comment_chars; *p; p++)
lex[(unsigned char) *p] = LEX_IS_LINE_COMMENT_START;
@@ -406,7 +451,8 @@ scan_for_multibyte_characters (const unsigned char * start,
This is the way the old code used to work. */
size_t
-do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
+do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen,
+ bool check_multibyte)
{
char *to = tostart;
char *toend = tostart + tolen;
@@ -431,10 +477,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
11: After seeing a symbol character in state 0 (eg a label definition)
-1: output string in out_string and go to the state in old_state
-2: flush text until a '*' '/' is seen, then go to state old_state
-#ifdef TC_V850
- 12: After seeing a dash, looking for a second dash as a start
- of comment.
-#endif
+ 12: no longer used
#ifdef DOUBLEBAR_PARALLEL
13: After seeing a vertical bar, looking for a second
vertical bar as a parallel expression separator.
@@ -513,7 +556,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
from = input_buffer;
fromend = from + fromlen;
- if (multibyte_handling == multibyte_warn)
+ if (check_multibyte)
(void) scan_for_multibyte_characters ((const unsigned char *) from,
(const unsigned char* ) fromend,
true /* Generate warnings. */);
@@ -730,16 +773,6 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
line from just after the first white space. */
state = 1;
PUT ('|');
-#ifdef TC_TIC6X
- /* "||^" is used for SPMASKed instructions. */
- ch = GET ();
- if (ch == EOF)
- goto fromeof;
- else if (ch == '^')
- PUT ('^');
- else
- UNGET (ch);
-#endif
continue;
#endif
#ifdef TC_Z80
@@ -853,7 +886,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
if (ch != '\0'
&& (*mri_state == ch
|| (*mri_state == ' '
- && lex[ch] == LEX_IS_WHITESPACE)
+ && IS_WHITESPACE (ch))
|| (*mri_state == '0'
&& ch == '1')))
{
@@ -861,8 +894,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
++mri_state;
}
else if (*mri_state != '\0'
- || (lex[ch] != LEX_IS_WHITESPACE
- && lex[ch] != LEX_IS_NEWLINE))
+ || (!IS_WHITESPACE (ch) && !IS_NEWLINE (ch)))
{
/* We did not get the expected character, or we didn't
get a valid terminating character after seeing the
@@ -934,7 +966,12 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
}
}
#endif
+
+ /* Prune trailing whitespace. */
if (IS_COMMENT (ch)
+ || (IS_LINE_COMMENT (ch)
+ && (state < 1 || strchr (tc_comment_chars, ch)))
+ || IS_NEWLINE (ch)
|| IS_LINE_SEPARATOR (ch)
|| IS_PARALLEL_SEPARATOR (ch))
{
@@ -947,6 +984,16 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
}
goto recycle;
}
+#ifdef DOUBLESLASH_LINE_COMMENTS
+ if (IS_TWOCHAR_COMMENT_1ST (ch))
+ {
+ ch2 = GET ();
+ if (ch2 != EOF)
+ UNGET (ch2);
+ if (ch2 == '/')
+ goto recycle;
+ }
+#endif
/* If we're in state 2 or 11, we've seen a non-white
character followed by whitespace. If the next character
@@ -1321,14 +1368,10 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen)
start of a line. If this is also a normal comment
character, fall through. Otherwise treat it as a default
character. */
- if (strchr (tc_comment_chars, ch) == NULL
- && (! scrub_m68k_mri
- || (ch != '!' && ch != '*')))
+ if (strchr (tc_comment_chars, ch) == NULL)
goto de_fault;
if (scrub_m68k_mri
- && (ch == '!' || ch == '*' || ch == '#')
- && state != 1
- && state != 10)
+ && (ch == '!' || ch == '*' || ch == '#'))
goto de_fault;
/* Fall through. */
case LEX_IS_COMMENT_START:
diff --git a/gas/as.c b/gas/as.c
index 9e059f9..259dc0e 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -333,7 +333,7 @@ Options:\n\
fprintf (stream, _("\
-f skip whitespace and comment preprocessing\n"));
fprintf (stream, _("\
- -g --gen-debug generate debugging information\n"));
+ -g, --gen-debug generate debugging information\n"));
fprintf (stream, _("\
--gstabs generate STABS debugging information\n"));
fprintf (stream, _("\
@@ -361,9 +361,9 @@ Options:\n\
fprintf (stream, _("\
-K warn when differences altered for long displacements\n"));
fprintf (stream, _("\
- -L,--keep-locals keep local symbols (e.g. starting with `L')\n"));
+ -L, --keep-locals keep local symbols (e.g. starting with `L')\n"));
fprintf (stream, _("\
- -M,--mri assemble in MRI compatibility mode\n"));
+ -M, --mri assemble in MRI compatibility mode\n"));
fprintf (stream, _("\
--MD FILE write dependency information in FILE (default none)\n"));
fprintf (stream, _("\
@@ -388,7 +388,7 @@ Options:\n\
fprintf (stream, _("\
--version print assembler version number and exit\n"));
fprintf (stream, _("\
- -W --no-warn suppress warnings\n"));
+ -W, --no-warn suppress warnings\n"));
fprintf (stream, _("\
--warn don't suppress warnings\n"));
fprintf (stream, _("\
diff --git a/gas/as.h b/gas/as.h
index 69d7ae2..780773c 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -315,7 +315,7 @@ COMMON bool flag_macro_alternate;
COMMON unsigned char flag_readonly_data_in_text; /* -R */
/* True if warnings should be inhibited. */
-COMMON int flag_no_warnings; /* -W */
+COMMON int flag_no_warnings; /* -W, --no-warn */
/* True if warnings count as errors. */
COMMON int flag_fatal_warnings; /* --fatal-warnings */
@@ -496,7 +496,7 @@ void input_scrub_insert_line (const char *);
void input_scrub_insert_file (char *);
char * input_scrub_new_file (const char *);
char * input_scrub_next_buffer (char **bufp);
-size_t do_scrub_chars (size_t (*get) (char *, size_t), char *, size_t);
+size_t do_scrub_chars (size_t (*get) (char *, size_t), char *, size_t, bool);
size_t do_scrub_pending (void);
bool scan_for_multibyte_characters (const unsigned char *, const unsigned char *, bool);
int gen_to_words (LITTLENUM_TYPE *, int, long);
diff --git a/gas/config/bfin-lex.l b/gas/config/bfin-lex.l
index a14e25b..62a760c 100644
--- a/gas/config/bfin-lex.l
+++ b/gas/config/bfin-lex.l
@@ -287,7 +287,6 @@ int yylex (void);
"%" return PERCENT;
"!" return BANG;
";" return SEMICOLON;
-"=!" return _ASSIGN_BANG;
"||" return DOUBLE_BAR;
"@" return AT;
<KEYWORD>[pP][rR][eE][fF][eE][tT][cC][hH] return PREFETCH;
diff --git a/gas/config/bfin-parse.y b/gas/config/bfin-parse.y
index 828a009..1971058 100644
--- a/gas/config/bfin-parse.y
+++ b/gas/config/bfin-parse.y
@@ -529,7 +529,7 @@ dsp32shiftimm in slot1 and P-reg Store in slot2 Not Supported");
%token _MINUS_ASSIGN _PLUS_ASSIGN
/* Assignments, comparisons. */
-%token _ASSIGN_BANG _LESS_THAN_ASSIGN _ASSIGN_ASSIGN
+%token _LESS_THAN_ASSIGN _ASSIGN_ASSIGN
%token GE LT LE GT
%token LESS_THAN
@@ -1804,7 +1804,7 @@ asm_1:
return yyerror ("Only 'Dreg = CC' supported");
}
- | CCREG _ASSIGN_BANG CCREG
+ | CCREG ASSIGN BANG CCREG
{
notethat ("CC2dreg: CC =! CC\n");
$$ = bfin_gen_cc2dreg (3, 0);
@@ -2471,12 +2471,12 @@ asm_1:
return yyerror ("Register mismatch");
}
- | CCREG _ASSIGN_BANG BITTST LPAREN REG COMMA expr RPAREN
+ | CCREG ASSIGN BANG BITTST LPAREN REG COMMA expr RPAREN
{
- if (IS_DREG ($5) && IS_UIMM ($7, 5))
+ if (IS_DREG ($6) && IS_UIMM ($8, 5))
{
notethat ("LOGI2op: CC =! BITTST (dregs , uimm5 )\n");
- $$ = LOGI2OP ($5, uimm5 ($7), 0);
+ $$ = LOGI2OP ($6, uimm5 ($8), 0);
}
else
return yyerror ("Register mismatch or value error");
diff --git a/gas/config/tc-aarch64-ginsn.c b/gas/config/tc-aarch64-ginsn.c
new file mode 100644
index 0000000..0dce2a7
--- /dev/null
+++ b/gas/config/tc-aarch64-ginsn.c
@@ -0,0 +1,963 @@
+/* tc-aarch64-ginsn.c -- Ginsn generation for the AArch64 ISA
+
+ Copyright (C) 2024 Free Software Foundation, Inc.
+
+ This file is part of GAS.
+
+ GAS 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.
+
+ GAS 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; see the file COPYING3. If not,
+ see <http://www.gnu.org/licenses/>. */
+
+/* This file contains the implementation of the ginsn creation for aarch64
+ instructions. Most functions will read the aarch64_instruction inst
+ object, but none should need to modify it. */
+
+#ifdef OBJ_ELF
+
+/* Invalid DWARF register number. Used when WZR / XZR is seen. */
+#define GINSN_DW2_REGNUM_INVALID (~0U)
+
+/* Return whether the given register number is a callee-saved register for
+ SCFI purposes.
+
+ Apart from the callee-saved GPRs, SCFI always tracks SP, FP and LR
+ additionally. As for the FP/Advanced SIMD registers, v8-v15 are
+ callee-saved. */
+
+bool
+aarch64_scfi_callee_saved_p (unsigned int dw2reg_num)
+{
+ /* PS: Ensure SCFI_MAX_REG_ID is the max DWARF register number to cover
+ all the registers here. */
+ if (dw2reg_num == REG_SP /* x31. */
+ || dw2reg_num == REG_FP /* x29. */
+ || dw2reg_num == REG_LR /* x30. */
+ || (dw2reg_num >= 19 && dw2reg_num <= 28) /* x19 - x28. */
+ || (dw2reg_num >= 72 && dw2reg_num <= 79) /* v8 - v15. */)
+ return true;
+
+ return false;
+}
+
+/* Get the DWARF register number for the given OPND. If OPND is an address,
+ the returned register is the base register. If OPND spans multiple
+ registers, the returned register is the first of those registers. */
+
+static unsigned int
+ginsn_dw2_regnum (aarch64_opnd_info *opnd)
+{
+ enum aarch64_operand_class opnd_class;
+ unsigned int dw2reg_num = 0;
+
+ opnd_class = aarch64_get_operand_class (opnd->type);
+
+ switch (opnd_class)
+ {
+ case AARCH64_OPND_CLASS_FP_REG:
+ dw2reg_num = opnd->reg.regno + 64;
+ break;
+ case AARCH64_OPND_CLASS_SVE_REGLIST:
+ dw2reg_num = opnd->reglist.first_regno + 64;
+ break;
+ case AARCH64_OPND_CLASS_ADDRESS:
+ dw2reg_num = opnd->addr.base_regno;
+ break;
+ case AARCH64_OPND_CLASS_INT_REG:
+ case AARCH64_OPND_CLASS_MODIFIED_REG:
+ /* Use an invalid DWARF register value in case of WZR, else this will be an
+ incorrect dependency on REG_SP. */
+ if (aarch64_zero_register_p (opnd))
+ dw2reg_num = GINSN_DW2_REGNUM_INVALID;
+ else
+ /* For GPRs of our interest (callee-saved regs, SP, FP, LR),
+ DWARF register number is the same as AArch64 register number. */
+ dw2reg_num = opnd->reg.regno;
+ break;
+ default:
+ as_bad ("Unexpected operand class in ginsn_dw2_regnum");
+ break;
+ }
+
+ return dw2reg_num;
+}
+
+static bool
+ginsn_dw2_regnum_invalid_p (unsigned int opnd_reg)
+{
+ return (opnd_reg == GINSN_DW2_REGNUM_INVALID);
+}
+
+/* Generate ginsn for addsub instructions with immediate opnd. */
+
+static ginsnS *
+aarch64_ginsn_addsub_imm (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ bool add_p, sub_p;
+ offsetT src_imm = 0;
+ unsigned int dst_reg, opnd_reg;
+ aarch64_opnd_info *dst, *opnd;
+ ginsnS *(*ginsn_func) (const symbolS *, bool,
+ enum ginsn_src_type, unsigned int, offsetT,
+ enum ginsn_src_type, unsigned int, offsetT,
+ enum ginsn_dst_type, unsigned int, offsetT);
+
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ add_p = aarch64_opcode_subclass_p (opcode, F_ARITH_ADD);
+ sub_p = aarch64_opcode_subclass_p (opcode, F_ARITH_SUB);
+ gas_assert (add_p || sub_p);
+ ginsn_func = add_p ? ginsn_new_add : ginsn_new_sub;
+
+ gas_assert (aarch64_num_of_operands (opcode) == 3);
+ dst = &base->operands[0];
+ opnd = &base->operands[1];
+
+ if (aarch64_gas_internal_fixup_p () && inst.reloc.exp.X_op == O_constant)
+ src_imm = inst.reloc.exp.X_add_number;
+ /* For any other relocation type, e.g., in add reg, reg, symbol, skip now
+ and handle via aarch64_ginsn_unhandled () code path. */
+ else if (inst.reloc.type != BFD_RELOC_UNUSED)
+ return ginsn;
+ /* FIXME - verify the understanding and remove assert. */
+ else
+ gas_assert (0);
+
+ dst_reg = ginsn_dw2_regnum (dst);
+ opnd_reg = ginsn_dw2_regnum (opnd);
+
+ if (ginsn_dw2_regnum_invalid_p (dst_reg)
+ || ginsn_dw2_regnum_invalid_p (opnd_reg))
+ return ginsn;
+
+ ginsn = ginsn_func (insn_end_sym, true,
+ GINSN_SRC_REG, opnd_reg, 0,
+ GINSN_SRC_IMM, 0, src_imm,
+ GINSN_DST_REG, dst_reg, 0);
+ ginsn_set_where (ginsn);
+
+ return ginsn;
+}
+
+/* Generate ginsn for addsub instructions with reg opnd. */
+
+static ginsnS *
+aarch64_ginsn_addsub_reg (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ bool add_p, sub_p;
+ unsigned int dst_reg, src1_reg, src2_reg;
+ aarch64_opnd_info *dst, *src1, *src2;
+ ginsnS *(*ginsn_func) (const symbolS *, bool,
+ enum ginsn_src_type, unsigned int, offsetT,
+ enum ginsn_src_type, unsigned int, offsetT,
+ enum ginsn_dst_type, unsigned int, offsetT);
+
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ add_p = aarch64_opcode_subclass_p (opcode, F_ARITH_ADD);
+ sub_p = aarch64_opcode_subclass_p (opcode, F_ARITH_SUB);
+ gas_assert (add_p || sub_p);
+ ginsn_func = add_p ? ginsn_new_add : ginsn_new_sub;
+
+ gas_assert (aarch64_num_of_operands (opcode) == 3);
+ dst = &base->operands[0];
+ src1 = &base->operands[1];
+ src2 = &base->operands[2];
+
+ dst_reg = ginsn_dw2_regnum (dst);
+ src1_reg = ginsn_dw2_regnum (src1);
+ src2_reg = ginsn_dw2_regnum (src2);
+
+ if (ginsn_dw2_regnum_invalid_p (dst_reg)
+ || ginsn_dw2_regnum_invalid_p (src1_reg)
+ || ginsn_dw2_regnum_invalid_p (src2_reg))
+ return ginsn;
+
+ /* ATM, shift amount, if any, cannot be represented in the GINSN_TYPE_ADD or
+ GINSN_TYPE_SUB. As the extra information does not impact SCFI
+ correctness, skip generating ginsn for these cases. Note
+ TBD_GINSN_INFO_LOSS. */
+ if (src2->shifter.kind != AARCH64_MOD_NONE
+ && (src2->shifter.kind != AARCH64_MOD_LSL || src2->shifter.amount != 0))
+ return ginsn;
+
+ ginsn = ginsn_func (insn_end_sym, true,
+ GINSN_SRC_REG, src1_reg, 0,
+ GINSN_SRC_REG, src2_reg, 0,
+ GINSN_DST_REG, dst_reg, 0);
+ ginsn_set_where (ginsn);
+
+ return ginsn;
+}
+
+/* Generate ginsn for the load pair and store pair instructions. */
+
+static ginsnS *
+aarch64_ginsn_ldstp (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ ginsnS *ginsn_ind = NULL;
+ ginsnS *ginsn_mem1 = NULL;
+ ginsnS *ginsn_mem2 = NULL;
+ ginsnS *ginsn_mem = NULL;
+ unsigned int opnd1_reg, opnd2_reg, addr_reg;
+ offsetT offset, mem_offset;
+ unsigned int width = 8;
+ bool load_p = false;
+ bool store_p = false;
+ bool other_p = false;
+
+ aarch64_opnd_info *opnd1, *opnd2, *addr;
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ /* This function is for handling ldp / stp ops only. */
+ gas_assert (opcode->iclass == ldstpair_indexed
+ || opcode->iclass == ldstnapair_offs
+ || opcode->iclass == ldstpair_off);
+ gas_assert (aarch64_num_of_operands (opcode) == 3);
+
+ opnd1 = &base->operands[0];
+ opnd2 = &base->operands[1];
+ addr = &base->operands[2];
+
+ load_p = aarch64_opcode_subclass_p (opcode, F_LDST_LOAD);
+ store_p = aarch64_opcode_subclass_p (opcode, F_LDST_STORE);
+ other_p = aarch64_opcode_subclass_p (opcode, F_SUBCLASS_OTHER);
+ gas_assert (load_p || store_p || other_p);
+
+ addr_reg = ginsn_dw2_regnum (addr);
+ gas_assert (!addr->addr.offset.is_reg);
+ mem_offset = addr->addr.offset.imm;
+
+ offset = mem_offset;
+ /* Handle address calculation. */
+ if ((addr->addr.preind || addr->addr.postind) && addr->addr.writeback)
+ {
+ /* Pre-indexed store, e.g., stp x29, x30, [sp, -128]!
+ Pre-indexed addressing is like offset addressing, except that
+ the base pointer is updated as a result of the instruction.
+
+ Post-indexed store, e.g., stp x29, x30, [sp],128
+ Post-index addressing is useful for popping off the stack. The
+ instruction loads the value from the location pointed at by the stack
+ pointer, and then moves the stack pointer on to the next full location
+ in the stack. */
+ ginsn_ind = ginsn_new_add (insn_end_sym, false,
+ GINSN_SRC_REG, addr_reg, 0,
+ GINSN_SRC_IMM, 0, mem_offset,
+ GINSN_DST_REG, addr_reg, 0);
+ ginsn_set_where (ginsn_ind);
+
+ /* With post-index addressing, the value is loaded from the address in
+ the base pointer, and then the pointer is updated. With pre-index
+ addressing, the addr computation has already been explicitly done. */
+ offset = 0;
+ }
+
+ /* Insns like ldpsw (marked with subclass F_SUBCLASS_OTHER) do not need to
+ generate any load or store for SCFI purposes. Next, enforce that for CFI
+ purposes, the width of save / restore operation has to be 8 bytes or more.
+ However, the address processing component may have updated the stack
+ pointer. At least, emit that ginsn and return. Also note,
+ TBD_GINSN_GEN_NOT_SCFI. */
+ if (other_p || aarch64_get_qualifier_esize (opnd1->qualifier) < 8)
+ return ginsn_ind;
+
+ opnd1_reg = ginsn_dw2_regnum (opnd1);
+ opnd2_reg = ginsn_dw2_regnum (opnd2);
+ /* Save / restore of WZR is not of interest for SCFI. Exit now if both
+ registers are not of interest. */
+ if (ginsn_dw2_regnum_invalid_p (opnd1_reg)
+ && ginsn_dw2_regnum_invalid_p (opnd2_reg))
+ return ginsn_ind;
+
+ if (opnd1->qualifier == AARCH64_OPND_QLF_S_Q)
+ {
+ width = 16;
+ if (target_big_endian)
+ offset += 8;
+ }
+
+ /* Load store pair where only one of the opnd registers is a zero register
+ is possible. E.g., stp xzr, x19, [sp, #16]. */
+ if (!ginsn_dw2_regnum_invalid_p (opnd1_reg))
+ {
+ if (store_p)
+ {
+ ginsn_mem1 = ginsn_new_store (insn_end_sym, false,
+ GINSN_SRC_REG, opnd1_reg,
+ GINSN_DST_INDIRECT, addr_reg, offset);
+ ginsn_set_where (ginsn_mem1);
+ }
+ else
+ {
+ ginsn_mem1 = ginsn_new_load (insn_end_sym, false,
+ GINSN_SRC_INDIRECT, addr_reg, offset,
+ GINSN_DST_REG, opnd1_reg);
+ ginsn_set_where (ginsn_mem1);
+ }
+ /* Keep track of the last memory ginsn created so far. */
+ ginsn_mem = ginsn_mem1;
+ }
+ if (!ginsn_dw2_regnum_invalid_p (opnd2_reg))
+ {
+ if (store_p)
+ {
+ ginsn_mem2 = ginsn_new_store (insn_end_sym, false,
+ GINSN_SRC_REG, opnd2_reg,
+ GINSN_DST_INDIRECT, addr_reg,
+ offset + width);
+ ginsn_set_where (ginsn_mem2);
+ }
+ else
+ {
+ ginsn_mem2 = ginsn_new_load (insn_end_sym, false,
+ GINSN_SRC_INDIRECT, addr_reg, offset + width,
+ GINSN_DST_REG, opnd2_reg);
+ ginsn_set_where (ginsn_mem2);
+ }
+ /* Keep track of the last memory ginsn created so far. */
+ ginsn_mem = ginsn_mem2;
+ }
+
+ if (!ginsn_dw2_regnum_invalid_p (opnd1_reg)
+ && !ginsn_dw2_regnum_invalid_p (opnd2_reg))
+ goto link_two_ginsn_mem;
+ else
+ goto link_one_ginsn_mem;
+
+link_one_ginsn_mem:
+ /* Link the list of ginsns created. */
+ if (addr->addr.preind && addr->addr.writeback)
+ gas_assert (!ginsn_link_next (ginsn_ind, ginsn_mem));
+
+ if (addr->addr.postind && addr->addr.writeback)
+ gas_assert (!ginsn_link_next (ginsn_mem, ginsn_ind));
+
+ /* Make note of the first instruction in the list. */
+ ginsn = (addr->addr.preind && addr->addr.writeback) ? ginsn_ind : ginsn_mem;
+ return ginsn;
+
+link_two_ginsn_mem:
+ /* Link the list of ginsns created. */
+ if (addr->addr.preind && addr->addr.writeback)
+ gas_assert (!ginsn_link_next (ginsn_ind, ginsn_mem1));
+
+ gas_assert (ginsn_mem1 && ginsn_mem2 && ginsn_mem1 != ginsn_mem2);
+ gas_assert (!ginsn_link_next (ginsn_mem1, ginsn_mem2));
+
+ if (addr->addr.postind && addr->addr.writeback)
+ gas_assert (!ginsn_link_next (ginsn_mem2, ginsn_ind));
+
+ /* Make note of the first instruction in the list. */
+ ginsn = (addr->addr.preind && addr->addr.writeback) ? ginsn_ind : ginsn_mem1;
+ return ginsn;
+}
+
+/* Generate ginsn for load and store instructions. */
+
+static ginsnS *
+aarch64_ginsn_ldstr (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ ginsnS *ginsn_ind = NULL;
+ ginsnS *ginsn_mem = NULL;
+ unsigned int opnd_reg, addr_reg;
+ offsetT offset, mem_offset;
+ bool load_p = false;
+ bool store_p = false;
+ bool other_p = false;
+
+ aarch64_opnd_info *opnd1, *addr;
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ /* This function is for handling ldr, str ops only. */
+ gas_assert (opcode->iclass == ldst_imm9 || opcode->iclass == ldst_pos);
+ gas_assert (aarch64_num_of_operands (opcode) == 2);
+
+ opnd1 = &base->operands[0];
+ addr = &base->operands[1];
+
+ load_p = aarch64_opcode_subclass_p (opcode, F_LDST_LOAD);
+ store_p = aarch64_opcode_subclass_p (opcode, F_LDST_STORE);
+ other_p = aarch64_opcode_subclass_p (opcode, F_SUBCLASS_OTHER);
+ gas_assert (load_p || store_p || other_p);
+
+ addr_reg = ginsn_dw2_regnum (addr);
+
+ if (aarch64_gas_internal_fixup_p () && inst.reloc.exp.X_op == O_constant)
+ mem_offset = inst.reloc.exp.X_add_number;
+ else
+ {
+ gas_assert (!addr->addr.offset.is_reg);
+ mem_offset = addr->addr.offset.imm;
+ }
+
+ offset = mem_offset;
+ /* Handle address calculation. */
+ if ((addr->addr.preind || addr->addr.postind) && addr->addr.writeback)
+ {
+ ginsn_ind = ginsn_new_add (insn_end_sym, false,
+ GINSN_SRC_REG, addr_reg, 0,
+ GINSN_SRC_IMM, 0, mem_offset,
+ GINSN_DST_REG, addr_reg, 0);
+ ginsn_set_where (ginsn_ind);
+
+ /* With post-index addressing, the value is loaded from the address in
+ the base pointer, and then the pointer is updated. With pre-index
+ addressing, the addr computation has already been explicitly done. */
+ offset = 0;
+ }
+
+ /* Insns like stg, prfm, ldrsw etc. (marked with subclass F_SUBCLASS_OTHER)
+ do not need to generate any load / store ginsns for SCFI purposes. Next,
+ enforce that for CFI purposes, the width of save / restore operation has
+ to be 8 bytes or more. That said, the address processing component may
+ have updated the stack pointer. At least, emit that ginsn and return.
+ Also note, TBD_GINSN_GEN_NOT_SCFI. */
+ if (other_p || aarch64_get_qualifier_esize (opnd1->qualifier) < 8)
+ return ginsn_ind;
+
+ opnd_reg = ginsn_dw2_regnum (opnd1);
+ /* Save / restore of WZR is not of interest for SCFI. */
+ if (ginsn_dw2_regnum_invalid_p (opnd_reg))
+ return ginsn_ind;
+
+ if (target_big_endian && opnd1->qualifier == AARCH64_OPND_QLF_S_Q)
+ offset += 8;
+
+ if (store_p)
+ ginsn_mem = ginsn_new_store (insn_end_sym, false,
+ GINSN_SRC_REG, opnd_reg,
+ GINSN_DST_INDIRECT, addr_reg, offset);
+ else
+ ginsn_mem = ginsn_new_load (insn_end_sym, false,
+ GINSN_SRC_INDIRECT, addr_reg, offset,
+ GINSN_DST_REG, opnd_reg);
+ ginsn_set_where (ginsn_mem);
+
+ if (addr->addr.preind && addr->addr.writeback)
+ gas_assert (!ginsn_link_next (ginsn_ind, ginsn_mem));
+ else if (addr->addr.postind && addr->addr.writeback)
+ gas_assert (!ginsn_link_next (ginsn_mem, ginsn_ind));
+
+ /* Make note of the first instruction in the list. */
+ ginsn = (addr->addr.preind && addr->addr.writeback) ? ginsn_ind : ginsn_mem;
+
+ return ginsn;
+}
+
+/* Generate ginsn for unconditional branch instructions. */
+
+static ginsnS *
+aarch64_ginsn_branch_uncond (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ const symbolS *src_symbol = NULL;
+ enum ginsn_src_type src_type = GINSN_SRC_UNKNOWN;
+ unsigned int src_reg = 0;
+
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ if (opcode->iclass == branch_imm
+ && (inst.reloc.type == BFD_RELOC_AARCH64_CALL26
+ || inst.reloc.type == BFD_RELOC_AARCH64_JUMP26))
+ {
+ if (inst.reloc.exp.X_add_number)
+ {
+ /* A non-zero addend in b/bl target makes control-flow tracking
+ difficult. Skip SCFI for now. */
+ as_bad (_("SCFI: %#x op with non-zero addend to sym not supported"),
+ opcode->opcode);
+ return ginsn;
+ }
+ /* b or bl. */
+ src_symbol = inst.reloc.exp.X_add_symbol;
+ src_type = GINSN_SRC_SYMBOL;
+ }
+ else if (opcode->iclass == branch_reg
+ && aarch64_num_of_operands (opcode) >= 1)
+ {
+ /* Some insns (e.g., braa, blraa etc.) may have > 1 operands. For
+ current SCFI implementation, it suffices however to simply pass
+ the information about the first source. Although, strictly speaking,
+ (if reg) the source info is currently of no material use either. */
+ src_type = GINSN_SRC_REG;
+ src_reg = ginsn_dw2_regnum (&base->operands[0]);
+ }
+ else
+ /* Skip insns like branch imm. */
+ return ginsn;
+
+ if (aarch64_opcode_subclass_p (opcode, F_BRANCH_CALL))
+ {
+ gas_assert (src_type != GINSN_SRC_UNKNOWN);
+ ginsn = ginsn_new_call (insn_end_sym, true,
+ src_type, src_reg, src_symbol);
+ }
+ else if (aarch64_opcode_subclass_p (opcode, F_BRANCH_RET))
+ /* TBD_GINSN_REPRESENTATION_LIMIT. The following function to create a
+ GINSN_TYPE_RETURN does not allow src info ATM. */
+ ginsn = ginsn_new_return (insn_end_sym, true);
+ else
+ ginsn = ginsn_new_jump (insn_end_sym, true,
+ src_type, src_reg, src_symbol);
+
+ ginsn_set_where (ginsn);
+
+ return ginsn;
+}
+
+/* Generate ginsn for conditional branch instructions. */
+
+static ginsnS *
+aarch64_ginsn_branch_cond (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ const symbolS *src_symbol;
+ enum ginsn_src_type src_type;
+
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ if (inst.reloc.type == BFD_RELOC_AARCH64_BRANCH19
+ || inst.reloc.type == BFD_RELOC_AARCH64_TSTBR14)
+ {
+ if (inst.reloc.exp.X_add_number)
+ {
+ /* A non-zero addend in target makes control-flow tracking
+ difficult. Skip SCFI for now. */
+ as_bad (_("SCFI: %#x op with non-zero addend to sym not supported"),
+ opcode->opcode);
+ return ginsn;
+ }
+
+ src_symbol = inst.reloc.exp.X_add_symbol;
+ src_type = GINSN_SRC_SYMBOL;
+
+ ginsn = ginsn_new_jump_cond (insn_end_sym, true, src_type, 0, src_symbol);
+ ginsn_set_where (ginsn);
+ }
+
+ return ginsn;
+}
+
+/* Generate ginsn for mov instructions with reg opnd. */
+
+static ginsnS *
+aarch64_ginsn_mov_reg (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ unsigned int src_reg = 0, dst_reg;
+ aarch64_opnd_info *src, *dst;
+ offsetT src_imm = 0;
+ enum ginsn_src_type src_type;
+
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ gas_assert (aarch64_num_of_operands (opcode) == 2);
+
+ dst = &base->operands[0];
+ src = &base->operands[1];
+
+ dst_reg = ginsn_dw2_regnum (dst);
+ src_reg = ginsn_dw2_regnum (src);
+ src_type = GINSN_SRC_REG;
+
+ /* FIXME Explicitly bar GINSN_TYPE_MOV with a GINSN_DW2_REGNUM_INVALID in src
+ or dest at this time. This can be removed later when SCFI machinery is
+ more robust to deal with GINSN_DW2_REGNUM_INVALID. */
+ if (ginsn_dw2_regnum_invalid_p (dst_reg)
+ || ginsn_dw2_regnum_invalid_p (src_reg))
+ return ginsn;
+
+ ginsn = ginsn_new_mov (insn_end_sym, false,
+ src_type, src_reg, src_imm,
+ GINSN_DST_REG, dst_reg, 0);
+ ginsn_set_where (ginsn);
+
+ return ginsn;
+}
+
+/* Generate ginsn for mov instructions with imm opnd. */
+
+static ginsnS *
+aarch64_ginsn_mov_imm (const symbolS *insn_end_sym)
+{
+ ginsnS *ginsn = NULL;
+ unsigned int src_reg = 0, dst_reg;
+ aarch64_opnd_info *src, *dst;
+ offsetT src_imm = 0;
+ enum ginsn_src_type src_type;
+
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ gas_assert (aarch64_num_of_operands (opcode) == 2);
+
+ dst = &base->operands[0];
+ src = &base->operands[1];
+
+ /* For some mov ops, e.g., movn, movk, or movz, there may optionally be more
+ work than just a simple mov. Skip handling these mov altogether and let
+ the aarch64_ginsn_unhandled () alert if these insns affect SCFI
+ correctness. TBD_GINSN_GEN_NOT_SCFI. */
+ if (src->type == AARCH64_OPND_HALF)
+ return ginsn;
+
+ dst_reg = ginsn_dw2_regnum (dst);
+ /* FIXME Explicitly bar GINSN_TYPE_MOV which write to WZR / XZR at this time.
+ This can be removed later when SCFI machinery is more robust to deal with
+ GINSN_DW2_REGNUM_INVALID. */
+ if (ginsn_dw2_regnum_invalid_p (dst_reg))
+ return ginsn;
+
+ if (src->type == AARCH64_OPND_IMM_MOV
+ && aarch64_gas_internal_fixup_p () && inst.reloc.exp.X_op == O_constant)
+ {
+ src_imm = inst.reloc.exp.X_add_number;
+ src_type = GINSN_SRC_IMM;
+ }
+ else
+ /* Skip now and handle via aarch64_ginsn_unhandled () code path. */
+ return ginsn;
+
+ ginsn = ginsn_new_mov (insn_end_sym, false,
+ src_type, src_reg, src_imm,
+ GINSN_DST_REG, dst_reg, 0);
+ ginsn_set_where (ginsn);
+
+ return ginsn;
+}
+
+/* Check if an instruction is whitelisted.
+
+ An instruction is a candidate for whitelisting if not generating ginsn for
+ it, does not affect SCFI correctness.
+
+ TBD_GINSN_GEN_NOT_SCFI. This function assumes GINSN_GEN_SCFI is in effect.
+ When other ginsn_gen_mode are added, this will need fixing. */
+
+static bool
+aarch64_ginsn_safe_to_skip_p (void)
+{
+ bool skip_p = false;
+ aarch64_opnd_info *opnd = NULL;
+ unsigned int opnd_reg;
+ int num_opnds = 0;
+ bool dp_tag_only_p = false;
+
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ /* ATM, whitelisting operations with no operands does not seem to be
+ necessary. In fact, whitelisting insns like ERET will be dangerous for
+ SCFI. So, return false now and bar any such insns from being whitelisted
+ altogether. */
+ num_opnds = aarch64_num_of_operands (opcode);
+ if (!num_opnds)
+ return false;
+
+ opnd = &base->operands[0];
+
+ switch (opcode->iclass)
+ {
+ case ldst_regoff:
+ /* It is not expected to have reg offset based ld/st ops to be used
+ for reg save and restore operations. Warn the user though. */
+ opnd_reg = ginsn_dw2_regnum (opnd);
+ if (aarch64_scfi_callee_saved_p (opnd_reg))
+ {
+ skip_p = true;
+ as_warn ("SCFI: ignored probable save/restore op with reg offset");
+ }
+ break;
+
+ case dp_2src:
+ /* irg insn needs to be explicitly whitelisted. This is because the
+ dest is Rd_SP, but irg insn affects the tag only. To detect irg
+ insn, avoid an opcode-based check, however. */
+ dp_tag_only_p = aarch64_opcode_subclass_p (opcode, F_DP_TAG_ONLY);
+ if (dp_tag_only_p)
+ skip_p = true;
+ break;
+
+ default:
+ break;
+ }
+
+ return skip_p;
+}
+
+enum aarch64_ginsn_unhandled_code
+{
+ AARCH64_GINSN_UNHANDLED_NONE,
+ AARCH64_GINSN_UNHANDLED_DEST_REG,
+ AARCH64_GINSN_UNHANDLED_CFG,
+ AARCH64_GINSN_UNHANDLED_STACKOP,
+ AARCH64_GINSN_UNHANDLED_UNEXPECTED,
+};
+
+/* Check the input insn for its impact on the correctness of the synthesized
+ CFI. Returns an error code to the caller. */
+
+static enum aarch64_ginsn_unhandled_code
+aarch64_ginsn_unhandled (void)
+{
+ enum aarch64_ginsn_unhandled_code err = AARCH64_GINSN_UNHANDLED_NONE;
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+ aarch64_opnd_info *dest = &base->operands[0];
+ int num_opnds = aarch64_num_of_operands (opcode);
+ aarch64_opnd_info *addr;
+ unsigned int dw2_regnum;
+ unsigned int addr_reg;
+ aarch64_opnd_info *opnd;
+ unsigned int opnd_reg;
+
+ /* All change of flow instructions (COFI) are important for SCFI.
+ N.B. New iclasses for COFI when defined must be added here too. */
+ if (opcode->iclass == condbranch
+ || opcode->iclass == compbranch
+ || opcode->iclass == testbranch
+ || opcode->iclass == branch_imm
+ || opcode->iclass == branch_reg)
+ err = AARCH64_GINSN_UNHANDLED_CFG;
+ /* Also, any memory instructions that may involve an update to the stack
+ pointer or save/restore of callee-saved registers must not be skipped.
+ Note that, some iclasses cannot be used to push or pop stack because of
+ disallowed writeback: ldst_unscaled, ldst_regoff, ldst_unpriv, ldstexcl,
+ loadlit, ldstnapair_offs. Except ldstnapair_offs from the afore-mentioned
+ list, these iclasses do not seem to be amenable to being used for
+ save/restore ops either. */
+ else if (opcode->iclass == ldstpair_off
+ || opcode->iclass == ldstnapair_offs
+ || opcode->iclass == ldstpair_indexed
+ || opcode->iclass == ldst_imm9
+ || opcode->iclass == ldst_imm10
+ || opcode->iclass == ldst_pos)
+ {
+ addr = &base->operands[num_opnds - 1];
+ addr_reg = ginsn_dw2_regnum (addr);
+ if (addr_reg == REG_SP || addr_reg == REG_FP)
+ {
+ /* For all skipped memory operations, check if an update to REG_SP or
+ REG_FP is involved. */
+ if ((addr->addr.postind || addr->addr.preind) && addr->addr.writeback)
+ err = AARCH64_GINSN_UNHANDLED_STACKOP;
+ /* Also check if a save / restore of a callee-saved register has been
+ missed. */
+ else if (!aarch64_opcode_subclass_p (opcode, F_SUBCLASS_OTHER))
+ {
+ for (int i = 0; i < num_opnds - 1; i++)
+ {
+ opnd = &base->operands[i];
+ opnd_reg = ginsn_dw2_regnum (opnd);
+ if (aarch64_scfi_callee_saved_p (opnd_reg)
+ && aarch64_get_qualifier_esize (opnd->qualifier) >= 8)
+ {
+ err = AARCH64_GINSN_UNHANDLED_STACKOP;
+ break;
+ }
+ }
+ }
+ }
+ }
+ /* STR Zn are especially complicated as they do not store in the same byte
+ order for big-endian: STR Qn stores as a 128-bit integer (MSB first),
+ whereas STR Zn stores as a stream of bytes (LSB first). FIXME Simply punt
+ on the big-endian and little-endian SVE PCS case for now. */
+ else if (opcode->iclass == sve_misc)
+ {
+ opnd = &base->operands[0];
+ addr = &base->operands[num_opnds - 1];
+ addr_reg = ginsn_dw2_regnum (addr);
+ opnd_reg = ginsn_dw2_regnum (opnd);
+ /* For all skipped memory operations, check if an update to REG_SP or
+ REG_FP is involved. */
+ if (aarch64_get_operand_class (addr->type) == AARCH64_OPND_CLASS_ADDRESS
+ && (addr_reg == REG_SP || addr_reg == REG_FP)
+ && (((addr->addr.postind || addr->addr.preind) && addr->addr.writeback)
+ || aarch64_scfi_callee_saved_p (opnd_reg)))
+ err = AARCH64_GINSN_UNHANDLED_STACKOP;
+ }
+
+ /* Finally, irrespective of the iclass, check if the missed instructions are
+ affecting REG_SP or REG_FP. */
+ else if (dest && (dest->type == AARCH64_OPND_Rd
+ || dest->type == AARCH64_OPND_Rd_SP))
+ {
+ dw2_regnum = ginsn_dw2_regnum (dest);
+
+ if (dw2_regnum == REG_SP || dw2_regnum == REG_FP)
+ err = AARCH64_GINSN_UNHANDLED_DEST_REG;
+ }
+
+ return err;
+}
+
+/* Generate one or more generic GAS instructions, a.k.a, ginsns for the
+ current machine instruction.
+
+ Returns the head of linked list of ginsn(s) added, if success; Returns NULL
+ if failure.
+
+ The input ginsn_gen_mode GMODE determines the set of minimal necessary
+ ginsns necessary for correctness of any passes applicable for that mode.
+ For supporting the GINSN_GEN_SCFI generation mode, following is the list of
+ machine instructions that must be translated into the corresponding ginsns
+ to ensure correctness of SCFI:
+ - All instructions affecting the two registers that could potentially
+ be used as the base register for CFA tracking. For SCFI, the base
+ register for CFA tracking is limited to REG_SP and REG_FP only.
+ - All change of flow instructions: conditional and unconditional
+ branches, call and return from functions.
+ - All instructions that can potentially be a register save / restore
+ operations.
+ - All instructions that may update the stack pointer: pre-indexed and
+ post-indexed stack operations with writeback.
+
+ The function currently supports GINSN_GEN_SCFI ginsn generation mode only.
+ To support other generation modes will require work on this target-specific
+ process of creation of ginsns:
+ - Some of such places are tagged with TBD_GINSN_GEN_NOT_SCFI to serve as
+ possible starting points.
+ - Also note that ginsn representation may need enhancements. Specifically,
+ note some TBD_GINSN_INFO_LOSS and TBD_GINSN_REPRESENTATION_LIMIT markers.
+ */
+
+static ginsnS *
+aarch64_ginsn_new (const symbolS *insn_end_sym, enum ginsn_gen_mode gmode)
+{
+ enum aarch64_ginsn_unhandled_code err = 0;
+ ginsnS *ginsn = NULL;
+ unsigned int dw2_regnum;
+ aarch64_opnd_info *dest = NULL;
+ aarch64_inst *base = &inst.base;
+ const aarch64_opcode *opcode = base->opcode;
+
+ /* Currently supports generation of selected ginsns, sufficient for
+ the use-case of SCFI only. To remove this condition will require
+ work on this target-specific process of creation of ginsns. Some
+ of such places are tagged with TBD_GINSN_GEN_NOT_SCFI to serve as
+ examples. */
+ if (gmode != GINSN_GEN_SCFI)
+ return ginsn;
+
+ switch (opcode->iclass)
+ {
+ case addsub_ext:
+ /* TBD_GINSN_GEN_NOT_SCFI: other insns are not of interest for SCFI. */
+ if (aarch64_opcode_subclass_p (opcode, F_ARITH_ADD)
+ || aarch64_opcode_subclass_p (opcode, F_ARITH_SUB))
+ ginsn = aarch64_ginsn_addsub_reg (insn_end_sym);
+ break;
+
+ case addsub_imm:
+ if (aarch64_opcode_subclass_p (opcode, F_ARITH_MOV))
+ ginsn = aarch64_ginsn_mov_reg (insn_end_sym);
+ else if (aarch64_opcode_subclass_p (opcode, F_ARITH_ADD)
+ || aarch64_opcode_subclass_p (opcode, F_ARITH_SUB))
+ ginsn = aarch64_ginsn_addsub_imm (insn_end_sym);
+ /* Note how addg, subg involving tags have F_SUBCLASS_OTHER flag. These
+ insns will see a GINSN_TYPE_OTHER created for them if the destination
+ register is of interest via the aarch64_ginsn_unhandled ()
+ codepath. */
+ break;
+
+ case movewide:
+ ginsn = aarch64_ginsn_mov_imm (insn_end_sym);
+ break;
+
+ case ldst_imm9:
+ case ldst_pos:
+ ginsn = aarch64_ginsn_ldstr (insn_end_sym);
+ break;
+
+ case ldstpair_indexed:
+ case ldstpair_off:
+ case ldstnapair_offs:
+ ginsn = aarch64_ginsn_ldstp (insn_end_sym);
+ break;
+
+ case branch_imm:
+ case branch_reg:
+ ginsn = aarch64_ginsn_branch_uncond (insn_end_sym);
+ break;
+
+ case compbranch:
+ /* Although cbz/cbnz has an additional operand and are functionally
+ distinct from conditional branches, it is fine to use the same ginsn
+ type for both from the perspective of SCFI. */
+ case testbranch:
+ case condbranch:
+ ginsn = aarch64_ginsn_branch_cond (insn_end_sym);
+ break;
+
+ default:
+ /* TBD_GINSN_GEN_NOT_SCFI: Skip all other opcodes uninteresting for
+ GINSN_GEN_SCFI mode. */
+ break;
+ }
+
+ if (!ginsn && !aarch64_ginsn_safe_to_skip_p ())
+ {
+ /* For all unhandled insns, check that they no not impact SCFI
+ correctness. */
+ err = aarch64_ginsn_unhandled ();
+ switch (err)
+ {
+ case AARCH64_GINSN_UNHANDLED_NONE:
+ break;
+ case AARCH64_GINSN_UNHANDLED_DEST_REG:
+ /* Not all writes to REG_FP are harmful in context of SCFI. Simply
+ generate a GINSN_TYPE_OTHER with destination set to the
+ appropriate register. The SCFI machinery will bail out if this
+ ginsn affects SCFI correctness. */
+ dest = &base->operands[0];
+ dw2_regnum = ginsn_dw2_regnum (dest);
+ /* Sanity check. */
+ gas_assert (!ginsn_dw2_regnum_invalid_p (dw2_regnum));
+ ginsn = ginsn_new_other (insn_end_sym, true,
+ GINSN_SRC_IMM, 0,
+ GINSN_SRC_IMM, 0,
+ GINSN_DST_REG, dw2_regnum);
+ ginsn_set_where (ginsn);
+ break;
+ case AARCH64_GINSN_UNHANDLED_CFG:
+ case AARCH64_GINSN_UNHANDLED_STACKOP:
+ as_bad (_("SCFI: unhandled op %#x may cause incorrect CFI"),
+ opcode->opcode);
+ break;
+ case AARCH64_GINSN_UNHANDLED_UNEXPECTED:
+ as_bad (_("SCFI: unexpected op %#x may cause incorrect CFI"),
+ opcode->opcode);
+ break;
+ default:
+ abort ();
+ break;
+ }
+ }
+
+ return ginsn;
+}
+
+#endif /* OBJ_ELF. */
+
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index 42c03bd..e94a0cf 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -33,6 +33,7 @@
#include "dw2gencfi.h"
#include "sframe.h"
#include "gen-sframe.h"
+#include "scfi.h"
#endif
#include "dw2gencfi.h"
@@ -113,6 +114,7 @@ enum vector_el_type
#define NTA_HASTYPE 1
#define NTA_HASINDEX 2
#define NTA_HASVARWIDTH 4
+#define NTA_NOINDEX 8
struct vector_type_el
{
@@ -1185,11 +1187,15 @@ parse_index_expression (char **str, int64_t *imm)
register index.
FLAGS includes PTR_GOOD_MATCH if we are sufficiently far into parsing
- an operand that we can be confident that it is a good match. */
+ an operand that we can be confident that it is a good match.
+
+ FLAGS includes PTR_OPTIONAL_INDEX to handle instructions with optional index
+ operands. */
#define PTR_IN_REGLIST (1U << 0)
#define PTR_FULL_REG (1U << 1)
#define PTR_GOOD_MATCH (1U << 2)
+#define PTR_OPTIONAL_INDEX (1U << 3)
static const reg_entry *
parse_typed_reg (char **ccp, aarch64_reg_type type,
@@ -1277,7 +1283,10 @@ parse_typed_reg (char **ccp, aarch64_reg_type type,
atype.width = parsetype.width;
}
- if (!(flags & PTR_FULL_REG) && skip_past_char (&str, '['))
+ if ((flags & PTR_OPTIONAL_INDEX) && (*str == '\0' || *str == ','))
+ atype.defined |= NTA_NOINDEX;
+ else if ((!(flags & PTR_FULL_REG) || (flags & PTR_OPTIONAL_INDEX))
+ && skip_past_char (&str, '['))
{
/* Reject Sn[index] syntax. */
if (reg->type != REG_TYPE_Z
@@ -3943,10 +3952,10 @@ parse_shifter_zt0_with_bit_index (char **str,
return true;
}
- int64_t index;
- if (!parse_index_expression (str, &index))
+ int64_t idx;
+ if (!parse_index_expression (str, &idx))
return false;
- operand->imm.value = index;
+ operand->imm.value = idx;
if (!skip_past_comma (str))
return true;
@@ -6886,6 +6895,20 @@ parse_operands (char *str, const aarch64_opcode *opcode)
reg_type = REG_TYPE_Z;
goto vector_reg_index;
+ case AARCH64_OPND_SVE_Zn0_INDEX:
+ case AARCH64_OPND_SVE_Zn1_17_INDEX:
+ case AARCH64_OPND_SVE_Zn2_18_INDEX:
+ case AARCH64_OPND_SVE_Zn3_22_INDEX:
+ case AARCH64_OPND_SVE_Zd0_INDEX:
+ case AARCH64_OPND_SVE_Zd1_17_INDEX:
+ case AARCH64_OPND_SVE_Zd2_18_INDEX:
+ case AARCH64_OPND_SVE_Zd3_22_INDEX:
+ reg_type = REG_TYPE_Z;
+ reg = parse_typed_reg (&str, reg_type, &vectype, PTR_OPTIONAL_INDEX);
+ if (!reg || !(vectype.defined & (NTA_HASINDEX | NTA_NOINDEX)))
+ goto failure;
+ goto vector_reg_optional_index;
+
case AARCH64_OPND_Ed:
case AARCH64_OPND_En:
case AARCH64_OPND_Em:
@@ -6899,7 +6922,7 @@ parse_operands (char *str, const aarch64_opcode *opcode)
goto failure;
if (!(vectype.defined & NTA_HASINDEX))
goto failure;
-
+ vector_reg_optional_index:
if (reg->type == REG_TYPE_Z && vectype.type == NT_invtype)
/* Unqualified Zn[index] is allowed in LUTI2 instructions. */
info->qualifier = AARCH64_OPND_QLF_NIL;
@@ -8159,6 +8182,7 @@ parse_operands (char *str, const aarch64_opcode *opcode)
case AARCH64_OPND_SME_ZA_array_vrsh_2:
case AARCH64_OPND_SME_ZA_array_vrss_2:
case AARCH64_OPND_SME_ZA_array_vrsd_2:
+ case AARCH64_OPND_SME_ZA_ARRAY4:
if (!parse_dual_indexed_reg (&str, REG_TYPE_ZATHV,
&info->indexed_za, &qualifier, 0))
goto failure;
@@ -8591,6 +8615,10 @@ dump_opcode_operands (const aarch64_opcode *opcode)
}
#endif /* DEBUG_AARCH64 */
+#ifdef OBJ_ELF
+# include "tc-aarch64-ginsn.c"
+#endif
+
/* This is the guts of the machine-dependent assembler. STR points to a
machine dependent instruction. This function is supposed to emit
the frags/bytes it assembles to. */
@@ -8728,6 +8756,16 @@ md_assemble (char *str)
output_inst (copy);
}
+#ifdef OBJ_ELF
+ if (flag_synth_cfi)
+ {
+ ginsnS *ginsn;
+ ginsn = aarch64_ginsn_new (symbol_temp_new_now (),
+ frch_ginsn_gen_mode ());
+ frch_ginsn_data_append (ginsn);
+ }
+#endif
+
/* Issue non-fatal messages if any. */
output_operand_error_report (str, true);
return;
@@ -9078,7 +9116,7 @@ aarch64_support_sframe_p (void)
return (aarch64_abi == AARCH64_ABI_LP64);
}
-/* Specify if RA tracking is needed. */
+/* Whether SFrame return address tracking is needed. */
bool
aarch64_sframe_ra_tracking_p (void)
@@ -9086,8 +9124,8 @@ aarch64_sframe_ra_tracking_p (void)
return true;
}
-/* Specify the fixed offset to recover RA from CFA.
- (useful only when RA tracking is not needed). */
+/* The fixed offset from CFA for SFrame to recover the return address.
+ (useful only when SFrame RA tracking is not needed). */
offsetT
aarch64_sframe_cfa_ra_offset (void)
@@ -10683,7 +10721,9 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"rasv2", AARCH64_FEATURE (RASv2), AARCH64_FEATURE (RAS)},
{"ite", AARCH64_FEATURE (ITE), AARCH64_NO_FEATURES},
{"d128", AARCH64_FEATURE (D128), D128_FEATURE_DEPS},
- {"b16b16", AARCH64_FEATURE (B16B16), AARCH64_FEATURE (SVE2)},
+ // Feature b16b16 is currently incomplete.
+ // TODO: finish implementation and enable relevant flags.
+ //{"b16b16", AARCH64_FEATURE (B16B16), AARCH64_FEATURE (SVE2)},
{"sme2p1", AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SME2)},
{"sve2p1", AARCH64_FEATURE (SVE2p1), AARCH64_FEATURE (SVE2)},
{"rcpc3", AARCH64_FEATURE (RCPC3), AARCH64_FEATURE (RCPC2)},
diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h
index 1b8bada..15e2243 100644
--- a/gas/config/tc-aarch64.h
+++ b/gas/config/tc-aarch64.h
@@ -263,28 +263,49 @@ extern void aarch64_after_parse_args (void);
#ifdef OBJ_ELF
+#define TARGET_USE_GINSN 1
+/* Allow GAS to synthesize DWARF CFI for hand-written asm.
+ PS: TARGET_USE_CFIPOP is a pre-condition. */
+#define TARGET_USE_SCFI 1
+/* Identify the maximum DWARF register number of all the registers being
+ tracked for SCFI. This is the last DWARF register number of the set
+ of SP, FP, and all callee-saved registers. For Aarch64, this means 79
+ because FP/Advanced SIMD v8-v15 are also callee-saved registers. */
+# define SCFI_MAX_REG_ID 79
+/* Identify the DWARF register number of the frame-pointer register. */
+# define REG_FP 29
+/* Identify the DWARF register number of the link register. */
+# define REG_LR 30
+/* Identify the DWARF register number of the stack-pointer register. */
+# define REG_SP 31
+
+#define SCFI_INIT_CFA_OFFSET 0
+
+#define SCFI_CALLEE_SAVED_REG_P(dw2reg) aarch64_scfi_callee_saved_p (dw2reg)
+extern bool aarch64_scfi_callee_saved_p (uint32_t dw2reg_num);
+
/* Whether SFrame stack trace info is supported. */
extern bool aarch64_support_sframe_p (void);
#define support_sframe_p aarch64_support_sframe_p
-/* The stack-pointer register number for SFrame stack trace info. */
+/* The stack pointer DWARF register number for SFrame CFA tracking. */
extern unsigned int aarch64_sframe_cfa_sp_reg;
#define SFRAME_CFA_SP_REG aarch64_sframe_cfa_sp_reg
-/* The base-pointer register number for CFA stack trace info. */
+/* The frame pointer DWARF register number for SFrame CFA and FP tracking. */
extern unsigned int aarch64_sframe_cfa_fp_reg;
#define SFRAME_CFA_FP_REG aarch64_sframe_cfa_fp_reg
-/* The return address register number for CFA stack trace info. */
+/* The return address DWARF register number for SFrame RA tracking. */
extern unsigned int aarch64_sframe_cfa_ra_reg;
#define SFRAME_CFA_RA_REG aarch64_sframe_cfa_ra_reg
-/* Specify if RA tracking is needed. */
+/* Whether SFrame return address tracking is needed. */
extern bool aarch64_sframe_ra_tracking_p (void);
#define sframe_ra_tracking_p aarch64_sframe_ra_tracking_p
-/* Specify the fixed offset to recover RA from CFA.
- (useful only when RA tracking is not needed). */
+/* The fixed offset from CFA for SFrame to recover the return address.
+ (useful only when SFrame RA tracking is not needed). */
extern offsetT aarch64_sframe_cfa_ra_offset (void);
#define sframe_cfa_ra_offset aarch64_sframe_cfa_ra_offset
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index becaecd..540ab48 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -19233,13 +19233,22 @@ do_neon_cvttb_1 (bool t)
return;
}
+ unsigned op0 = inst.operands[0].reg;
+ unsigned op1 = inst.operands[1].reg;
+ /* NS_QQ so both registers are quads but inst.operands has their
+ D-register values, so halve before encoding. */
+ if (rs == NS_QQ)
+ {
+ op0 >>= 1;
+ op1 >>= 1;
+ }
inst.instruction = 0xee3f0e01;
inst.instruction |= single_to_half << 28;
- inst.instruction |= HI1 (inst.operands[0].reg) << 22;
- inst.instruction |= LOW4 (inst.operands[0].reg) << 13;
+ inst.instruction |= HI1 (op0) << 22;
+ inst.instruction |= LOW4 (op0) << 13;
inst.instruction |= t << 12;
- inst.instruction |= HI1 (inst.operands[1].reg) << 5;
- inst.instruction |= LOW4 (inst.operands[1].reg) << 1;
+ inst.instruction |= HI1 (op1) << 5;
+ inst.instruction |= LOW4 (op1) << 1;
inst.is_neon = 1;
}
else if (neon_check_type (2, rs, N_F16, N_F32 | N_VFP).type != NT_invtype)
diff --git a/gas/config/tc-bfin.c b/gas/config/tc-bfin.c
index cbf0903..001f90c 100644
--- a/gas/config/tc-bfin.c
+++ b/gas/config/tc-bfin.c
@@ -1919,6 +1919,8 @@ bfin_loop_beginend (Expr_Node *exp, int begin)
Adjust label address. */
if (!begin)
*symbol_X_add_number (linelabel) -= last_insn_size;
+
+ free (label_name);
}
bool
diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c
index f454ee9..0949e94 100644
--- a/gas/config/tc-i386-intel.c
+++ b/gas/config/tc-i386-intel.c
@@ -209,11 +209,11 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
|| i386_types[j].sz[0] > 8
|| (i386_types[j].sz[0] & (i386_types[j].sz[0] - 1)))
return O_illegal;
- switch (i.encoding)
+ switch (pp.encoding)
{
case encoding_default:
case encoding_egpr:
- i.encoding = encoding_evex;
+ pp.encoding = encoding_evex;
break;
case encoding_evex:
case encoding_evex512:
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 2e19431..f7be075 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -138,6 +138,13 @@ typedef struct
}
arch_entry;
+/* Modes for parse_insn() to operate in. */
+enum parse_mode {
+ parse_all,
+ parse_prefix,
+ parse_pseudo_prefix,
+};
+
static void update_code_flag (int, int);
static void s_insn (int);
static void s_noopt (int);
@@ -163,7 +170,7 @@ static int i386_intel_operand (char *, int);
static int i386_intel_simplify (expressionS *);
static int i386_intel_parse_name (const char *, expressionS *);
static const reg_entry *parse_register (const char *, char **);
-static const char *parse_insn (const char *, char *, bool);
+static const char *parse_insn (const char *, char *, enum parse_mode);
static char *parse_operands (char *, const char *);
static void swap_operands (void);
static void swap_2_operands (unsigned int, unsigned int);
@@ -426,51 +433,9 @@ struct _i386_insn
#define OSZC_OF 8
unsigned int oszc_flags;
- /* Prefer load or store in encoding. */
- enum
- {
- dir_encoding_default = 0,
- dir_encoding_load,
- dir_encoding_store,
- dir_encoding_swap
- } dir_encoding;
-
- /* Prefer 8bit, 16bit, 32bit displacement in encoding. */
- enum
- {
- disp_encoding_default = 0,
- disp_encoding_8bit,
- disp_encoding_16bit,
- disp_encoding_32bit
- } disp_encoding;
-
- /* Prefer the REX byte in encoding. */
- bool rex_encoding;
-
- /* Prefer the REX2 prefix in encoding. */
- bool rex2_encoding;
-
- /* No CSPAZO flags update. */
- bool has_nf;
-
- /* Disable instruction size optimization. */
- bool no_optimize;
-
/* Invert the condition encoded in a base opcode. */
bool invert_cond;
- /* How to encode instructions. */
- enum
- {
- encoding_default = 0,
- encoding_vex,
- encoding_vex3,
- encoding_egpr, /* REX2 or EVEX. */
- encoding_evex,
- encoding_evex512,
- encoding_error
- } encoding;
-
/* REP prefix. */
const char *rep_prefix;
@@ -489,6 +454,48 @@ struct _i386_insn
typedef struct _i386_insn i386_insn;
+/* Pseudo-prefix recording state, separate from i386_insn. */
+static struct pseudo_prefixes {
+ /* How to encode instructions. */
+ enum {
+ encoding_default = 0,
+ encoding_vex,
+ encoding_vex3,
+ encoding_egpr, /* REX2 or EVEX. */
+ encoding_evex,
+ encoding_evex512,
+ encoding_error
+ } encoding;
+
+ /* Prefer load or store in encoding. */
+ enum {
+ dir_encoding_default = 0,
+ dir_encoding_load,
+ dir_encoding_store,
+ dir_encoding_swap
+ } dir_encoding;
+
+ /* Prefer 8bit, 16bit, 32bit displacement in encoding. */
+ enum {
+ disp_encoding_default = 0,
+ disp_encoding_8bit,
+ disp_encoding_16bit,
+ disp_encoding_32bit
+ } disp_encoding;
+
+ /* Prefer the REX byte in encoding. */
+ bool rex_encoding;
+
+ /* Prefer the REX2 prefix in encoding. */
+ bool rex2_encoding;
+
+ /* No CSPAZO flags update. */
+ bool has_nf;
+
+ /* Disable instruction size optimization. */
+ bool no_optimize;
+} pp;
+
/* Link RC type with corresponding string, that'll be looked for in
asm. */
struct RC_name
@@ -519,7 +526,7 @@ static const unsigned char i386_seg_prefixes[] = {
/* List of chars besides those in app.c:symbol_chars that can start an
operand. Used to prevent the scrubber eating vital white-space. */
-const char extra_symbol_chars[] = "*%-([{}"
+const char extra_symbol_chars[] = "*%-(["
#ifdef LEX_AT
"@"
#endif
@@ -580,7 +587,7 @@ static char operand_chars[256];
/* All non-digit non-letter characters that may occur in an operand and
which aren't already in extra_symbol_chars[]. */
-static const char operand_special_chars[] = "$+,)._~/<>|&^!=:@]";
+static const char operand_special_chars[] = "$+,)._~/<>|&^!=:@]{}";
/* md_assemble() always leaves the strings it's passed unaltered. To
effect this we maintain a stack of saved characters that we've smashed
@@ -642,7 +649,6 @@ static int shared = 0;
unsigned int x86_sframe_cfa_sp_reg;
/* The other CFA base register for SFrame stack trace info. */
unsigned int x86_sframe_cfa_fp_reg;
-unsigned int x86_sframe_cfa_ra_reg;
#endif
@@ -1930,10 +1936,10 @@ static const i386_cpu_flags avx512 = CPU_ANY_AVX512F_FLAGS;
static INLINE bool need_evex_encoding (const insn_template *t)
{
- return i.encoding == encoding_evex
- || i.encoding == encoding_evex512
- || i.has_nf
- || (t->opcode_modifier.vex && i.encoding == encoding_egpr)
+ return pp.encoding == encoding_evex
+ || pp.encoding == encoding_evex512
+ || pp.has_nf
+ || (t->opcode_modifier.vex && pp.encoding == encoding_egpr)
|| i.mask.reg;
}
@@ -2629,8 +2635,8 @@ static INLINE int
fits_in_imm4 (offsetT num)
{
/* Despite the name, check for imm3 if we're dealing with EVEX. */
- return (num & (i.encoding != encoding_evex
- && i.encoding != encoding_egpr ? 0xf : 7)) == num;
+ return (num & (pp.encoding != encoding_evex
+ && pp.encoding != encoding_egpr ? 0xf : 7)) == num;
}
static i386_operand_type
@@ -3318,8 +3324,8 @@ op_lookup (const char *mnemonic)
void
md_begin (void)
{
- /* Support pseudo prefixes like {disp32}. */
- lex_type ['{'] = LEX_BEGIN_NAME;
+ /* Make sure possible padding space is clear. */
+ memset (&pp, 0, sizeof (pp));
/* Initialize op_hash hash table. */
op_hash = str_htab_create ();
@@ -3957,8 +3963,8 @@ build_vex_prefix (const insn_template *t)
/* Use 2-byte VEX prefix by swapping destination and source operand
if there are more than 1 register operand. */
if (i.reg_operands > 1
- && i.encoding != encoding_vex3
- && i.dir_encoding == dir_encoding_default
+ && pp.encoding != encoding_vex3
+ && pp.dir_encoding == dir_encoding_default
&& i.operands == i.reg_operands
&& operand_type_equal (&i.types[0], &i.types[i.operands - 1])
&& i.tm.opcode_space == SPACE_0F
@@ -3986,14 +3992,14 @@ build_vex_prefix (const insn_template *t)
/* Use 2-byte VEX prefix by swapping commutative source operands if there
are no memory operands and at least 3 register ones. */
if (i.reg_operands >= 3
- && i.encoding != encoding_vex3
+ && pp.encoding != encoding_vex3
&& i.reg_operands == i.operands - i.imm_operands
&& i.tm.opcode_modifier.vex
&& i.tm.opcode_modifier.commutative
/* .commutative aliases .staticrounding; disambiguate. */
&& !i.tm.opcode_modifier.sae
&& (i.tm.opcode_modifier.sse2avx
- || (optimize > 1 && !i.no_optimize))
+ || (optimize > 1 && !pp.no_optimize))
&& i.rex == REX_B
&& i.vex.register_specifier
&& !(i.vex.register_specifier->reg_flags & RegRex))
@@ -4049,7 +4055,7 @@ build_vex_prefix (const insn_template *t)
/* Use 2-byte VEX prefix if possible. */
if (w == 0
- && i.encoding != encoding_vex3
+ && pp.encoding != encoding_vex3
&& i.tm.opcode_space == SPACE_0F
&& (i.rex & (REX_W | REX_X | REX_B)) == 0)
{
@@ -4111,7 +4117,7 @@ is_any_vex_encoding (const insn_template *t)
static INLINE bool
is_apx_evex_encoding (void)
{
- return i.rex2 || i.tm.opcode_space == SPACE_EVEXMAP4 || i.has_nf
+ return i.rex2 || i.tm.opcode_space == SPACE_EVEXMAP4 || pp.has_nf
|| (i.vex.register_specifier
&& (i.vex.register_specifier->reg_flags & RegRex2));
}
@@ -4119,7 +4125,7 @@ is_apx_evex_encoding (void)
static INLINE bool
is_apx_rex2_encoding (void)
{
- return i.rex2 || i.rex2_encoding
+ return i.rex2 || pp.rex2_encoding
|| i.tm.opcode_modifier.rex2;
}
@@ -4400,9 +4406,37 @@ build_rex2_prefix (void)
| W | v`v`v`v | `x' | pp |
| z| L'L | b | `v | aaa |
*/
-static void
+static bool
build_apx_evex_prefix (void)
{
+ /* To mimic behavior for legacy insns, transform use of DATA16 and REX64 into
+ their embedded-prefix representations. */
+ if (i.tm.opcode_space == SPACE_EVEXMAP4)
+ {
+ if (i.prefix[DATA_PREFIX])
+ {
+ if (i.tm.opcode_modifier.opcodeprefix)
+ {
+ as_bad (i.tm.opcode_modifier.opcodeprefix == PREFIX_0X66
+ ? _("same type of prefix used twice")
+ : _("conflicting use of `data16' prefix"));
+ return false;
+ }
+ i.tm.opcode_modifier.opcodeprefix = PREFIX_0X66;
+ i.prefix[DATA_PREFIX] = 0;
+ }
+ if (i.prefix[REX_PREFIX] & REX_W)
+ {
+ if (i.suffix == QWORD_MNEM_SUFFIX)
+ {
+ as_bad (_("same type of prefix used twice"));
+ return false;
+ }
+ i.tm.opcode_modifier.vexw = VEXW1;
+ i.prefix[REX_PREFIX] = 0;
+ }
+ }
+
build_evex_prefix ();
if (i.rex2 & REX_R)
i.vex.bytes[1] &= ~0x10;
@@ -4436,8 +4470,10 @@ build_apx_evex_prefix (void)
}
/* Encode the NF bit. */
- if (i.has_nf)
+ if (pp.has_nf || i.tm.opcode_modifier.operandconstraint == EVEX_NF)
i.vex.bytes[3] |= 0x04;
+
+ return true;
}
static void establish_rex (void)
@@ -4484,7 +4520,7 @@ static void establish_rex (void)
}
}
- if (i.rex == 0 && i.rex2 == 0 && (i.rex_encoding || i.rex2_encoding))
+ if (i.rex == 0 && i.rex2 == 0 && (pp.rex_encoding || pp.rex2_encoding))
{
/* Check if we can add a REX_OPCODE byte. Look for 8 bit operand
that uses legacy register. If it is "hi" register, don't add
@@ -4498,12 +4534,12 @@ static void establish_rex (void)
&& i.op[x].regs->reg_num > 3)
{
gas_assert (!(i.op[x].regs->reg_flags & RegRex));
- i.rex_encoding = false;
- i.rex2_encoding = false;
+ pp.rex_encoding = false;
+ pp.rex2_encoding = false;
break;
}
- if (i.rex_encoding)
+ if (pp.rex_encoding)
i.rex = REX_OPCODE;
}
@@ -4896,7 +4932,7 @@ optimize_encoding (void)
}
else if (i.reg_operands == 3
&& i.op[0].regs == i.op[1].regs
- && i.encoding != encoding_evex
+ && pp.encoding != encoding_evex
&& (i.tm.mnem_off == MN_xor
|| i.tm.mnem_off == MN_sub))
{
@@ -5023,7 +5059,7 @@ optimize_encoding (void)
&& (i.tm.opcode_modifier.vex
|| ((!i.mask.reg || i.mask.zeroing)
&& i.tm.opcode_modifier.evex
- && (i.encoding != encoding_evex
+ && (pp.encoding != encoding_evex
|| cpu_arch_isa_flags.bitfield.cpuavx512vl
|| is_cpu (&i.tm, CpuAVX512VL)
|| (i.tm.operand_types[2].bitfield.zmmword
@@ -5073,12 +5109,12 @@ optimize_encoding (void)
*/
if (i.tm.opcode_modifier.evex)
{
- if (i.encoding != encoding_evex)
+ if (pp.encoding != encoding_evex)
{
i.tm.opcode_modifier.vex = VEX128;
i.tm.opcode_modifier.vexw = VEXW0;
i.tm.opcode_modifier.evex = 0;
- i.encoding = encoding_vex;
+ pp.encoding = encoding_vex;
i.mask.reg = NULL;
}
else if (optimize > 1)
@@ -5101,8 +5137,8 @@ optimize_encoding (void)
i.types[j].bitfield.ymmword = 0;
}
}
- else if (i.encoding != encoding_evex
- && i.encoding != encoding_egpr
+ else if (pp.encoding != encoding_evex
+ && pp.encoding != encoding_egpr
&& !i.types[0].bitfield.zmmword
&& !i.types[1].bitfield.zmmword
&& !i.mask.reg
@@ -5286,7 +5322,7 @@ optimize_encoding (void)
&& i.tm.opcode_modifier.vex
&& !(i.op[0].regs->reg_flags & RegRex)
&& i.op[0].regs->reg_type.bitfield.xmmword
- && i.encoding != encoding_vex3)
+ && pp.encoding != encoding_vex3)
{
/* Optimize: -Os:
vpbroadcastq %xmmN, %xmmM -> vpunpcklqdq %xmmN, %xmmN, %xmmM (N < 8)
@@ -5537,7 +5573,7 @@ optimize_nf_encoding (void)
}
if (optimize_for_space
- && i.encoding != encoding_evex
+ && pp.encoding != encoding_evex
&& (i.tm.base_opcode == 0x00
|| (i.tm.base_opcode == 0xd0 && i.tm.extension_opcode == 4))
&& !i.mem_operands
@@ -5546,7 +5582,7 @@ optimize_nf_encoding (void)
no size reduction would be possible. Plus 3-operand forms zero-
extend the result, which can't be expressed with LEA. */
&& (!i.types[1].bitfield.word
- || (i.operands == 2 && i.encoding != encoding_egpr))
+ || (i.operands == 2 && pp.encoding != encoding_egpr))
&& is_plausible_suffix (1)
/* %rsp can't be the index. */
&& (is_index (i.op[1].regs)
@@ -5556,7 +5592,7 @@ optimize_nf_encoding (void)
from that set and REX2 would be required to encode the insn, the
resulting encoding would be no smaller than the EVEX one. */
&& (i.op[1].regs->reg_num != 5
- || i.encoding != encoding_egpr
+ || pp.encoding != encoding_egpr
|| i.imm_operands > 0
|| i.op[0].regs->reg_num != 5))
{
@@ -5611,10 +5647,10 @@ optimize_nf_encoding (void)
i.operands = 2;
i.mem_operands = i.reg_operands = 1;
i.imm_operands = 0;
- i.has_nf = false;
+ pp.has_nf = false;
}
else if (optimize_for_space
- && i.encoding != encoding_evex
+ && pp.encoding != encoding_evex
&& (i.tm.base_opcode == 0x80 || i.tm.base_opcode == 0x83)
&& (i.tm.extension_opcode == 0
|| (i.tm.extension_opcode == 5
@@ -5625,14 +5661,14 @@ optimize_nf_encoding (void)
|| (i.types[1].bitfield.dword
&& !(i.op[1].regs->reg_flags & RegRex)
&& !(i.op[i.operands - 1].regs->reg_flags & RegRex)
- && i.encoding != encoding_egpr))))
+ && pp.encoding != encoding_egpr))))
&& !i.mem_operands
&& !i.types[1].bitfield.byte
/* 16-bit operand size has extra restrictions: If REX2 was needed,
no size reduction would be possible. Plus 3-operand forms zero-
extend the result, which can't be expressed with LEA. */
&& (!i.types[1].bitfield.word
- || (i.operands == 2 && i.encoding != encoding_egpr))
+ || (i.operands == 2 && pp.encoding != encoding_egpr))
&& is_plausible_suffix (1))
{
/* Optimize: -Os:
@@ -5676,11 +5712,11 @@ optimize_nf_encoding (void)
i.operands = 2;
i.disp_operands = i.mem_operands = i.reg_operands = 1;
i.imm_operands = 0;
- i.has_nf = false;
+ pp.has_nf = false;
}
else if (i.tm.base_opcode == 0x6b
&& !i.mem_operands
- && i.encoding != encoding_evex
+ && pp.encoding != encoding_evex
&& i.tm.mnem_off != MN_imulzu
&& is_plausible_suffix (1)
/* %rsp can't be the index. */
@@ -5690,7 +5726,7 @@ optimize_nf_encoding (void)
&& (!optimize_for_space
|| !i.types[1].bitfield.word
|| i.op[1].regs->reg_num != 5
- || i.encoding != encoding_egpr)
+ || pp.encoding != encoding_egpr)
&& i.op[0].imms->X_op == O_constant
&& (i.op[0].imms->X_add_number == 3
|| i.op[0].imms->X_add_number == 5
@@ -5731,7 +5767,7 @@ optimize_nf_encoding (void)
i.operands = 2;
i.mem_operands = i.reg_operands = 1;
i.imm_operands = 0;
- i.has_nf = false;
+ pp.has_nf = false;
}
}
@@ -7191,14 +7227,15 @@ x86_ginsn_new (const symbolS *insn_end_sym, enum ginsn_gen_mode gmode)
machine dependent instruction. This function is supposed to emit
the frags/bytes it assembles to. */
-void
-md_assemble (char *line)
+static void
+i386_assemble (char *line)
{
unsigned int j;
char mnemonic[MAX_MNEM_SIZE], mnem_suffix = 0, *copy = NULL;
char *xstrdup_copy = NULL;
const char *end, *pass1_mnem = NULL;
enum i386_error pass1_err = 0;
+ struct pseudo_prefixes orig_pp = pp;
const insn_template *t;
struct last_insn *last_insn
= &seg_info(now_seg)->tc_segment_info_data.last_insn;
@@ -7211,13 +7248,13 @@ md_assemble (char *line)
/* Suppress optimization when the last thing we saw may not have been
a proper instruction (e.g. a stand-alone prefix or .byte). */
if (last_insn->kind != last_insn_other)
- i.no_optimize = true;
+ pp.no_optimize = true;
/* First parse an instruction mnemonic & call i386_operand for the operands.
We assume that the scrubber has arranged it so that line[0] is the valid
start of a (possibly prefixed) mnemonic. */
- end = parse_insn (line, mnemonic, false);
+ end = parse_insn (line, mnemonic, parse_all);
if (end == NULL)
{
if (pass1_mnem != NULL)
@@ -7324,6 +7361,7 @@ md_assemble (char *line)
no_match:
pass1_err = i.error;
pass1_mnem = insn_name (current_templates.start);
+ pp = orig_pp;
goto retry;
}
@@ -7519,11 +7557,11 @@ md_assemble (char *line)
}
/* Zap the redundant prefix from XCHG when optimizing. */
- if (i.tm.base_opcode == 0x86 && optimize && !i.no_optimize)
+ if (i.tm.base_opcode == 0x86 && optimize && !pp.no_optimize)
i.prefix[LOCK_PREFIX] = 0;
}
- if (is_any_vex_encoding (&i.tm)
+ if ((is_any_vex_encoding (&i.tm) && i.tm.opcode_space != SPACE_EVEXMAP4)
|| i.tm.operand_types[i.imm_operands].bitfield.class >= RegMMX
|| i.tm.operand_types[i.imm_operands + 1].bitfield.class >= RegMMX)
{
@@ -7539,16 +7577,6 @@ md_assemble (char *line)
switch (i.reloc[j])
{
case BFD_RELOC_X86_64_GOTTPOFF:
- if (i.tm.mnem_off == MN_add
- && i.tm.opcode_space == SPACE_EVEXMAP4
- && i.mem_operands == 1
- && i.base_reg
- && i.base_reg->reg_num == RegIP
- && i.tm.operand_types[0].bitfield.class == Reg
- && i.tm.operand_types[2].bitfield.class == Reg)
- /* Allow APX: add %reg1, foo@gottpoff(%rip), %reg2. */
- break;
- /* Fall through. */
case BFD_RELOC_386_TLS_GOTIE:
case BFD_RELOC_386_TLS_LE_32:
case BFD_RELOC_X86_64_TLSLD:
@@ -7613,24 +7641,24 @@ md_assemble (char *line)
return;
}
- if (optimize && !i.no_optimize && i.tm.opcode_modifier.optimize)
+ if (optimize && !pp.no_optimize && i.tm.opcode_modifier.optimize)
{
- if (i.has_nf)
+ if (pp.has_nf)
optimize_nf_encoding ();
optimize_encoding ();
}
/* Past optimization there's no need to distinguish encoding_evex,
encoding_evex512, and encoding_egpr anymore. */
- if (i.encoding == encoding_evex512)
- i.encoding = encoding_evex;
- else if (i.encoding == encoding_egpr)
- i.encoding = is_any_vex_encoding (&i.tm) ? encoding_evex
+ if (pp.encoding == encoding_evex512)
+ pp.encoding = encoding_evex;
+ else if (pp.encoding == encoding_egpr)
+ pp.encoding = is_any_vex_encoding (&i.tm) ? encoding_evex
: encoding_default;
/* Similarly {nf} can now be taken to imply {evex}. */
- if (i.has_nf && i.encoding == encoding_default)
- i.encoding = encoding_evex;
+ if (pp.has_nf && pp.encoding == encoding_default)
+ pp.encoding = encoding_evex;
if (use_unaligned_vector_move)
encode_with_unaligned_vector_move ();
@@ -7703,21 +7731,29 @@ md_assemble (char *line)
}
/* Check for explicit REX prefix. */
- if (i.prefix[REX_PREFIX] || i.rex_encoding)
+ if ((i.prefix[REX_PREFIX]
+ && (i.tm.opcode_space != SPACE_EVEXMAP4
+ /* To mimic behavior for legacy insns, permit use of REX64 for promoted
+ legacy instructions. */
+ || i.prefix[REX_PREFIX] != (REX_OPCODE | REX_W)))
+ || pp.rex_encoding)
{
as_bad (_("REX prefix invalid with `%s'"), insn_name (&i.tm));
return;
}
/* Check for explicit REX2 prefix. */
- if (i.rex2_encoding)
+ if (pp.rex2_encoding)
{
as_bad (_("{rex2} prefix invalid with `%s'"), insn_name (&i.tm));
return;
}
if (is_apx_evex_encoding ())
- build_apx_evex_prefix ();
+ {
+ if (!build_apx_evex_prefix ())
+ return;
+ }
else if (i.tm.opcode_modifier.vex)
build_vex_prefix (t);
else
@@ -7780,6 +7816,14 @@ md_assemble (char *line)
last_insn->kind = last_insn_other;
}
+void
+md_assemble (char *line)
+{
+ i386_assemble (line);
+ current_templates.start = NULL;
+ memset (&pp, 0, sizeof (pp));
+}
+
/* The Q suffix is generally valid only in 64-bit mode, with very few
exceptions: fild, fistp, fisttp, and cmpxchg8b. Note that for fild
and fisttp only one of their two templates is matched below: That's
@@ -7795,7 +7839,7 @@ static INLINE bool q_suffix_allowed(const insn_template *t)
}
static const char *
-parse_insn (const char *line, char *mnemonic, bool prefix_only)
+parse_insn (const char *line, char *mnemonic, enum parse_mode mode)
{
const char *l = line, *token_start = l;
char *mnem_p;
@@ -7812,7 +7856,11 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
{
++mnem_p;
++l;
+ if (is_space_char (*l))
+ ++l;
}
+ else if (mode == parse_pseudo_prefix)
+ break;
while ((*mnem_p = mnemonic_chars[(unsigned char) *l]) != 0)
{
if (*mnem_p == '.')
@@ -7827,6 +7875,8 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
l++;
}
/* Pseudo-prefixes end with a closing figure brace. */
+ if (*mnemonic == '{' && is_space_char (*l))
+ ++l;
if (*mnemonic == '{' && *l == '}')
{
*mnem_p++ = *l++;
@@ -7844,7 +7894,7 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
&& (intel_syntax
|| (*l != PREFIX_SEPARATOR && *l != ',')))
{
- if (prefix_only)
+ if (mode != parse_all)
break;
as_bad (_("invalid character %s in mnemonic"),
output_invalid (*l));
@@ -7904,58 +7954,58 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
{
case Prefix_Disp8:
/* {disp8} */
- i.disp_encoding = disp_encoding_8bit;
+ pp.disp_encoding = disp_encoding_8bit;
break;
case Prefix_Disp16:
/* {disp16} */
- i.disp_encoding = disp_encoding_16bit;
+ pp.disp_encoding = disp_encoding_16bit;
break;
case Prefix_Disp32:
/* {disp32} */
- i.disp_encoding = disp_encoding_32bit;
+ pp.disp_encoding = disp_encoding_32bit;
break;
case Prefix_Load:
/* {load} */
- i.dir_encoding = dir_encoding_load;
+ pp.dir_encoding = dir_encoding_load;
break;
case Prefix_Store:
/* {store} */
- i.dir_encoding = dir_encoding_store;
+ pp.dir_encoding = dir_encoding_store;
break;
case Prefix_VEX:
/* {vex} */
- i.encoding = encoding_vex;
+ pp.encoding = encoding_vex;
break;
case Prefix_VEX3:
/* {vex3} */
- i.encoding = encoding_vex3;
+ pp.encoding = encoding_vex3;
break;
case Prefix_EVEX:
/* {evex} */
- i.encoding = encoding_evex;
+ pp.encoding = encoding_evex;
break;
case Prefix_REX:
/* {rex} */
- i.rex_encoding = true;
+ pp.rex_encoding = true;
break;
case Prefix_REX2:
/* {rex2} */
- i.rex2_encoding = true;
+ pp.rex2_encoding = true;
break;
case Prefix_NF:
/* {nf} */
- i.has_nf = true;
+ pp.has_nf = true;
break;
case Prefix_NoOptimize:
/* {nooptimize} */
- i.no_optimize = true;
+ pp.no_optimize = true;
break;
default:
abort ();
}
- if (i.has_nf
- && i.encoding != encoding_default
- && i.encoding != encoding_evex)
+ if (pp.has_nf
+ && pp.encoding != encoding_default
+ && pp.encoding != encoding_evex)
{
as_bad (_("{nf} cannot be combined with {vex}/{vex3}"));
return NULL;
@@ -7991,7 +8041,7 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
break;
}
- if (prefix_only)
+ if (mode != parse_all)
return token_start;
if (!current_templates.start)
@@ -8001,19 +8051,19 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
encoding. */
if (mnem_p - 2 == dot_p && dot_p[1] == 's')
{
- if (i.dir_encoding == dir_encoding_default)
- i.dir_encoding = dir_encoding_swap;
+ if (pp.dir_encoding == dir_encoding_default)
+ pp.dir_encoding = dir_encoding_swap;
else
as_warn (_("ignoring `.s' suffix due to earlier `{%s}'"),
- i.dir_encoding == dir_encoding_load ? "load" : "store");
+ pp.dir_encoding == dir_encoding_load ? "load" : "store");
}
else if (mnem_p - 3 == dot_p
&& dot_p[1] == 'd'
&& dot_p[2] == '8')
{
- if (i.disp_encoding == disp_encoding_default)
- i.disp_encoding = disp_encoding_8bit;
- else if (i.disp_encoding != disp_encoding_8bit)
+ if (pp.disp_encoding == disp_encoding_default)
+ pp.disp_encoding = disp_encoding_8bit;
+ else if (pp.disp_encoding != disp_encoding_8bit)
as_warn (_("ignoring `.d8' suffix due to earlier `{disp<N>}'"));
}
else if (mnem_p - 4 == dot_p
@@ -8021,9 +8071,9 @@ parse_insn (const char *line, char *mnemonic, bool prefix_only)
&& dot_p[2] == '3'
&& dot_p[3] == '2')
{
- if (i.disp_encoding == disp_encoding_default)
- i.disp_encoding = disp_encoding_32bit;
- else if (i.disp_encoding != disp_encoding_32bit)
+ if (pp.disp_encoding == disp_encoding_default)
+ pp.disp_encoding = disp_encoding_32bit;
+ else if (pp.disp_encoding != disp_encoding_32bit)
as_warn (_("ignoring `.d32' suffix due to earlier `{disp<N>}'"));
}
else
@@ -8570,7 +8620,7 @@ optimize_disp (const insn_template *t)
/* Don't optimize displacement for movabs since it only takes 64bit
displacement. */
- if (i.disp_encoding > disp_encoding_8bit
+ if (pp.disp_encoding > disp_encoding_8bit
|| (flag_code == CODE_64BIT && t->mnem_off == MN_movabs))
return true;
@@ -8979,9 +9029,9 @@ check_VecOperands (const insn_template *t)
&& (is_cpu (t, CpuAPX_F)
|| (t->opcode_modifier.sse2avx && t->opcode_modifier.evex
&& (!t->opcode_modifier.vex
- || (i.encoding != encoding_default
- && i.encoding != encoding_vex
- && i.encoding != encoding_vex3))))))
+ || (pp.encoding != encoding_default
+ && pp.encoding != encoding_vex
+ && pp.encoding != encoding_vex3))))))
{
if (i.op[0].imms->X_op != O_constant
|| !fits_in_imm4 (i.op[0].imms->X_add_number))
@@ -8999,7 +9049,7 @@ check_VecOperands (const insn_template *t)
if (t->opcode_modifier.disp8memshift
&& (!t->opcode_modifier.vex
|| need_evex_encoding (t))
- && i.disp_encoding <= disp_encoding_8bit)
+ && pp.disp_encoding <= disp_encoding_8bit)
{
if (i.broadcast.type || i.broadcast.bytes)
i.memshift = t->opcode_modifier.broadcast - 1;
@@ -9079,7 +9129,7 @@ check_VecOperands (const insn_template *t)
static int
VEX_check_encoding (const insn_template *t)
{
- if (i.encoding == encoding_error)
+ if (pp.encoding == encoding_error)
{
i.error = unsupported;
return 1;
@@ -9096,7 +9146,7 @@ VEX_check_encoding (const insn_template *t)
return 1;
}
- switch (i.encoding)
+ switch (pp.encoding)
{
case encoding_vex:
case encoding_vex3:
@@ -9109,7 +9159,7 @@ VEX_check_encoding (const insn_template *t)
break;
case encoding_default:
- if (!i.has_nf)
+ if (!pp.has_nf)
break;
/* Fall through. */
case encoding_evex:
@@ -9166,7 +9216,7 @@ check_EgprOperands (const insn_template *t)
}
/* Check if pseudo prefix {rex2} is valid. */
- if (i.rex2_encoding && !t->opcode_modifier.sse2avx)
+ if (pp.rex2_encoding && !t->opcode_modifier.sse2avx)
{
i.error = invalid_pseudo_prefix;
return true;
@@ -9222,7 +9272,7 @@ check_Rex_required (void)
return true;
/* Check pseudo prefix {rex} are valid. */
- return i.rex_encoding;
+ return pp.rex_encoding;
}
/* Optimize APX NDD insns to legacy insns. */
@@ -9231,7 +9281,7 @@ can_convert_NDD_to_legacy (const insn_template *t)
{
unsigned int match_dest_op = ~0;
- if (!i.has_nf && i.reg_operands >= 2)
+ if (!pp.has_nf && i.reg_operands >= 2)
{
unsigned int dest = i.operands - 1;
unsigned int src1 = i.operands - 2;
@@ -9323,7 +9373,7 @@ match_template (char mnem_suffix)
/* Check NF support. */
specific_error = progress (unsupported_nf);
- if (i.has_nf && !t->opcode_modifier.nf)
+ if (pp.has_nf && !t->opcode_modifier.nf)
continue;
/* Check Intel64/AMD64 ISA. */
@@ -9412,7 +9462,7 @@ match_template (char mnem_suffix)
}
/* Check if pseudo prefix {rex2} is valid. */
- if (t->opcode_modifier.noegpr && i.rex2_encoding)
+ if (t->opcode_modifier.noegpr && pp.rex2_encoding)
{
specific_error = progress (invalid_pseudo_prefix);
continue;
@@ -9486,9 +9536,9 @@ match_template (char mnem_suffix)
{store} pseudo prefix on an applicable insn. */
if (!t->opcode_modifier.modrm
&& i.reg_operands == 1
- && ((i.dir_encoding == dir_encoding_load
+ && ((pp.dir_encoding == dir_encoding_load
&& t->mnem_off != MN_pop)
- || (i.dir_encoding == dir_encoding_store
+ || (pp.dir_encoding == dir_encoding_store
&& t->mnem_off != MN_push))
/* Avoid BSWAP. */
&& t->mnem_off != MN_bswap)
@@ -9511,8 +9561,8 @@ match_template (char mnem_suffix)
/* Allow the ModR/M encoding to be requested by using the
{load} or {store} pseudo prefix. */
- if (i.dir_encoding == dir_encoding_load
- || i.dir_encoding == dir_encoding_store)
+ if (pp.dir_encoding == dir_encoding_load
+ || pp.dir_encoding == dir_encoding_store)
continue;
}
@@ -9531,7 +9581,7 @@ match_template (char mnem_suffix)
/* Allow the ModR/M encoding to be requested by using a suitable
{load} or {store} pseudo prefix. */
- if (i.dir_encoding == (i.types[0].bitfield.instance == Accum
+ if (pp.dir_encoding == (i.types[0].bitfield.instance == Accum
? dir_encoding_store
: dir_encoding_load)
&& !i.types[0].bitfield.disp64
@@ -9544,21 +9594,21 @@ match_template (char mnem_suffix)
if (!t->opcode_modifier.modrm
&& i.reg_operands == 1
&& i.imm_operands == 1
- && (i.dir_encoding == dir_encoding_load
- || i.dir_encoding == dir_encoding_store)
+ && (pp.dir_encoding == dir_encoding_load
+ || pp.dir_encoding == dir_encoding_store)
&& t->opcode_space == SPACE_BASE)
{
if (t->base_opcode == 0xb0 /* mov $imm, %reg */
- && i.dir_encoding == dir_encoding_store)
+ && pp.dir_encoding == dir_encoding_store)
continue;
if ((t->base_opcode | 0x38) == 0x3c /* <alu> $imm, %acc */
&& (t->base_opcode != 0x3c /* cmp $imm, %acc */
- || i.dir_encoding == dir_encoding_load))
+ || pp.dir_encoding == dir_encoding_load))
continue;
if (t->base_opcode == 0xa8 /* test $imm, %acc */
- && i.dir_encoding == dir_encoding_load)
+ && pp.dir_encoding == dir_encoding_load)
continue;
}
/* Fall through. */
@@ -9578,7 +9628,7 @@ match_template (char mnem_suffix)
if (t->opcode_modifier.d && i.reg_operands == i.operands
&& !operand_type_all_zero (&overlap1))
- switch (i.dir_encoding)
+ switch (pp.dir_encoding)
{
case dir_encoding_load:
if (operand_type_check (operand_types[j], anymem)
@@ -9600,8 +9650,8 @@ match_template (char mnem_suffix)
}
/* If we want store form, we skip the current load. */
- if ((i.dir_encoding == dir_encoding_store
- || i.dir_encoding == dir_encoding_swap)
+ if ((pp.dir_encoding == dir_encoding_store
+ || pp.dir_encoding == dir_encoding_swap)
&& i.mem_operands == 0
&& t->opcode_modifier.load)
continue;
@@ -9670,22 +9720,26 @@ match_template (char mnem_suffix)
goto check_operands_345;
}
else if (t->opcode_space == SPACE_EVEXMAP4
- && t->opcode_modifier.w)
+ && t->operands >= 3)
{
found_reverse_match = Opcode_D;
goto check_operands_345;
}
+ else if (t->opcode_modifier.commutative)
+ found_reverse_match = ~0;
else if (t->opcode_space != SPACE_BASE
+ && (t->opcode_space != SPACE_EVEXMAP4
+ /* MOVBE, originating from SPACE_0F38, also
+ belongs here. */
+ || t->mnem_off == MN_movbe)
&& (t->opcode_space != SPACE_0F
/* MOV to/from CR/DR/TR, as an exception, follow
the base opcode space encoding model. */
|| (t->base_opcode | 7) != 0x27))
found_reverse_match = (t->base_opcode & 0xee) != 0x6e
? Opcode_ExtD : Opcode_SIMD_IntD;
- else if (!t->opcode_modifier.commutative)
- found_reverse_match = Opcode_D;
else
- found_reverse_match = ~0;
+ found_reverse_match = Opcode_D;
}
else
{
@@ -9815,8 +9869,8 @@ match_template (char mnem_suffix)
add %r8, %r16, %r8 -> add %r16, %r8, then rematch template.
Note that the semantics have not been changed. */
if (optimize
- && !i.no_optimize
- && i.encoding != encoding_evex
+ && !pp.no_optimize
+ && pp.encoding != encoding_evex
&& ((t + 1 < current_templates.end
&& !t[1].opcode_modifier.evex
&& t[1].opcode_space <= SPACE_0F38
@@ -10850,8 +10904,8 @@ process_operands (void)
need converting. */
i.rex |= i.prefix[REX_PREFIX] & (REX_W | REX_R | REX_X | REX_B);
i.prefix[REX_PREFIX] = 0;
- i.rex_encoding = 0;
- i.rex2_encoding = 0;
+ pp.rex_encoding = 0;
+ pp.rex2_encoding = 0;
}
/* ImmExt should be processed after SSE2AVX. */
else if (i.tm.opcode_modifier.immext)
@@ -11080,7 +11134,7 @@ process_operands (void)
if (dot_insn () && i.reg_operands == 2)
{
gas_assert (is_any_vex_encoding (&i.tm)
- || i.encoding != encoding_default);
+ || pp.encoding != encoding_default);
i.vex.register_specifier = i.op[i.operands - 1].regs;
}
}
@@ -11090,7 +11144,7 @@ process_operands (void)
== InstanceNone)
{
gas_assert (is_any_vex_encoding (&i.tm)
- || i.encoding != encoding_default);
+ || pp.encoding != encoding_default);
i.vex.register_specifier = i.op[i.operands - 1].regs;
}
@@ -11099,7 +11153,7 @@ process_operands (void)
{
if (!quiet_warnings)
as_warn (_("segment override on `%s' is ineffectual"), insn_name (&i.tm));
- if (optimize && !i.no_optimize)
+ if (optimize && !pp.no_optimize)
{
i.seg[0] = NULL;
i.prefix[SEG_PREFIX] = 0;
@@ -11198,7 +11252,7 @@ build_modrm_byte (void)
}
exp->X_add_number |= register_number (i.op[reg_slot].regs)
<< (3 + !(i.tm.opcode_modifier.evex
- || i.encoding == encoding_evex));
+ || pp.encoding == encoding_evex));
}
switch (i.tm.opcode_modifier.vexvvvv)
@@ -11353,7 +11407,7 @@ build_modrm_byte (void)
if (operand_type_check (i.types[op], disp) == 0)
{
/* fake (%bp) into 0(%bp) */
- if (i.disp_encoding == disp_encoding_16bit)
+ if (pp.disp_encoding == disp_encoding_16bit)
i.types[op].bitfield.disp16 = 1;
else
i.types[op].bitfield.disp8 = 1;
@@ -11368,10 +11422,10 @@ build_modrm_byte (void)
}
if (!fake_zero_displacement
&& !i.disp_operands
- && i.disp_encoding)
+ && pp.disp_encoding)
{
fake_zero_displacement = 1;
- if (i.disp_encoding == disp_encoding_8bit)
+ if (pp.disp_encoding == disp_encoding_8bit)
i.types[op].bitfield.disp8 = 1;
else
i.types[op].bitfield.disp16 = 1;
@@ -11400,7 +11454,7 @@ build_modrm_byte (void)
if (i.base_reg->reg_num == 5 && i.disp_operands == 0)
{
fake_zero_displacement = 1;
- if (i.disp_encoding == disp_encoding_32bit)
+ if (pp.disp_encoding == disp_encoding_32bit)
i.types[op].bitfield.disp32 = 1;
else
i.types[op].bitfield.disp8 = 1;
@@ -11438,10 +11492,10 @@ build_modrm_byte (void)
{
if (!fake_zero_displacement
&& !i.disp_operands
- && i.disp_encoding)
+ && pp.disp_encoding)
{
fake_zero_displacement = 1;
- if (i.disp_encoding == disp_encoding_8bit)
+ if (pp.disp_encoding == disp_encoding_8bit)
i.types[op].bitfield.disp8 = 1;
else
i.types[op].bitfield.disp32 = 1;
@@ -11561,7 +11615,7 @@ output_branch (void)
}
code16 = flag_code == CODE_16BIT ? CODE16 : 0;
- size = i.disp_encoding > disp_encoding_8bit ? BIG : SMALL;
+ size = pp.disp_encoding > disp_encoding_8bit ? BIG : SMALL;
prefix = 0;
if (i.prefix[DATA_PREFIX] != 0)
@@ -11862,6 +11916,65 @@ output_interseg_jump (void)
i.op[0].imms, 0, reloc (2, 0, 0, i.reloc[0]));
}
+/* Hook used to reject pseudo-prefixes misplaced at the start of a line. */
+
+void i386_start_line (void)
+{
+ struct pseudo_prefixes last_pp;
+
+ memcpy (&last_pp, &pp, sizeof (pp));
+ memset (&pp, 0, sizeof (pp));
+ if (memcmp (&pp, &last_pp, sizeof (pp)))
+ as_bad_where (frag_now->fr_file, frag_now->fr_line,
+ _("pseudo prefix without instruction"));
+}
+
+/* Hook used to warn about pseudo-prefixes ahead of a label. */
+
+bool i386_check_label (void)
+{
+ struct pseudo_prefixes last_pp;
+
+ memcpy (&last_pp, &pp, sizeof (pp));
+ memset (&pp, 0, sizeof (pp));
+ if (memcmp (&pp, &last_pp, sizeof (pp)))
+ as_warn (_("pseudo prefix ahead of label; ignoring"));
+ return true;
+}
+
+/* Hook used to parse pseudo-prefixes off of the start of a line. */
+
+int
+i386_unrecognized_line (int ch)
+{
+ char mnemonic[MAX_MNEM_SIZE];
+ const char *end;
+
+ if (ch != '{')
+ return 0;
+
+ --input_line_pointer;
+ know (*input_line_pointer == ch);
+
+ end = parse_insn (input_line_pointer, mnemonic, parse_pseudo_prefix);
+ if (end == NULL)
+ {
+ /* Diagnostic was already issued. */
+ ignore_rest_of_line ();
+ memset (&pp, 0, sizeof (pp));
+ return 1;
+ }
+
+ if (end == input_line_pointer)
+ {
+ ++input_line_pointer;
+ return 0;
+ }
+
+ input_line_pointer += end - input_line_pointer;
+ return 1;
+}
+
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
void
x86_cleanup (void)
@@ -11982,6 +12095,7 @@ x86_cleanup (void)
subseg_set (seg, subseg);
}
+/* Whether SFrame stack trace info is supported. */
bool
x86_support_sframe_p (void)
{
@@ -11989,6 +12103,7 @@ x86_support_sframe_p (void)
return (x86_elf_abi == X86_64_ABI);
}
+/* Whether SFrame return address tracking is needed. */
bool
x86_sframe_ra_tracking_p (void)
{
@@ -11998,6 +12113,8 @@ x86_sframe_ra_tracking_p (void)
return false;
}
+/* The fixed offset from CFA for SFrame to recover the return address.
+ (useful only when SFrame RA tracking is not needed). */
offsetT
x86_sframe_cfa_ra_offset (void)
{
@@ -12005,6 +12122,7 @@ x86_sframe_cfa_ra_offset (void)
return (offsetT) -8;
}
+/* The abi/arch indentifier for SFrame. */
unsigned char
x86_sframe_get_abi_arch (void)
{
@@ -13458,13 +13576,14 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
saved_char = *saved_ilp;
*saved_ilp = 0;
- end = parse_insn (line, mnemonic, true);
+ end = parse_insn (line, mnemonic, parse_prefix);
if (end == NULL)
{
bad:
*saved_ilp = saved_char;
ignore_rest_of_line ();
i.tm.mnem_off = 0;
+ memset (&pp, 0, sizeof (pp));
return;
}
line += end - line;
@@ -13503,20 +13622,20 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
}
if (vex || xop
- ? i.encoding == encoding_evex
+ ? pp.encoding == encoding_evex
: evex
- ? i.encoding == encoding_vex
- || i.encoding == encoding_vex3
- : i.encoding != encoding_default)
+ ? pp.encoding == encoding_vex
+ || pp.encoding == encoding_vex3
+ : pp.encoding != encoding_default)
{
as_bad (_("pseudo-prefix conflicts with encoding specifier"));
goto bad;
}
- if (line > end && i.encoding == encoding_default)
- i.encoding = evex ? encoding_evex : encoding_vex;
+ if (line > end && pp.encoding == encoding_default)
+ pp.encoding = evex ? encoding_evex : encoding_vex;
- if (i.encoding != encoding_default)
+ if (pp.encoding != encoding_default)
{
/* Only address size and segment override prefixes are permitted with
VEX/XOP/EVEX encodings. */
@@ -13811,8 +13930,8 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
}
/* No need to distinguish encoding_evex and encoding_evex512. */
- if (i.encoding == encoding_evex512)
- i.encoding = encoding_evex;
+ if (pp.encoding == encoding_evex512)
+ pp.encoding = encoding_evex;
}
/* Trim off encoding space. */
@@ -13821,8 +13940,8 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
uint8_t byte = val >> ((--j - 1) * 8);
i.insn_opcode_space = SPACE_0F;
- switch (byte & -(j > 1 && !i.rex2_encoding
- && (i.encoding != encoding_egpr || evex)))
+ switch (byte & -(j > 1 && !pp.rex2_encoding
+ && (pp.encoding != encoding_egpr || evex)))
{
case 0x38:
i.insn_opcode_space = SPACE_0F38;
@@ -13856,7 +13975,7 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
expressionS *disp_exp = NULL;
bool changed;
- if (i.encoding == encoding_egpr)
+ if (pp.encoding == encoding_egpr)
{
if (vex || xop)
{
@@ -13864,21 +13983,21 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
goto done;
}
if (evex)
- i.encoding = encoding_evex;
+ pp.encoding = encoding_evex;
else
- i.encoding = encoding_default;
+ pp.encoding = encoding_default;
}
/* Are we to emit ModR/M encoding? */
if (!i.short_form
&& (i.mem_operands
- || i.reg_operands > (i.encoding != encoding_default)
+ || i.reg_operands > (pp.encoding != encoding_default)
|| i.tm.extension_opcode != None))
i.tm.opcode_modifier.modrm = 1;
if (!i.tm.opcode_modifier.modrm
&& (i.reg_operands
- > i.short_form + 0U + (i.encoding != encoding_default)
+ > i.short_form + 0U + (pp.encoding != encoding_default)
|| i.mem_operands))
{
as_bad (_("too many register/memory operands"));
@@ -13917,7 +14036,7 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
}
/* Fall through. */
case 3:
- if (i.encoding != encoding_default)
+ if (pp.encoding != encoding_default)
{
i.tm.opcode_modifier.vexvvvv = VexVVVV_SRC1;
break;
@@ -13973,13 +14092,13 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
|| i.index_reg->reg_type.bitfield.ymmword
|| i.index_reg->reg_type.bitfield.zmmword))
{
- if (i.encoding == encoding_default)
+ if (pp.encoding == encoding_default)
{
as_bad (_("VSIB unavailable with legacy encoding"));
goto done;
}
- if (i.encoding == encoding_evex
+ if (pp.encoding == encoding_evex
&& i.reg_operands > 1)
{
/* We could allow two register operands, encoding the 2nd one in
@@ -13999,7 +14118,7 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
for (j = i.imm_operands; j < i.operands; ++j)
{
/* Look for 8-bit operands that use old registers. */
- if (i.encoding != encoding_default
+ if (pp.encoding != encoding_default
&& flag_code == CODE_64BIT
&& i.types[j].bitfield.class == Reg
&& i.types[j].bitfield.byte
@@ -14058,7 +14177,7 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
case 4: combined.bitfield.dword = 1; break;
}
- if (i.encoding == encoding_default)
+ if (pp.encoding == encoding_default)
{
if (flag_code == CODE_64BIT && combined.bitfield.qword)
i.rex |= REX_W;
@@ -14123,11 +14242,11 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
++i.memshift;
else if (disp_exp != NULL && disp_exp->X_op == O_constant
&& disp_exp->X_add_number != 0
- && i.disp_encoding != disp_encoding_32bit)
+ && pp.disp_encoding != disp_encoding_32bit)
{
if (!quiet_warnings)
as_warn ("cannot determine memory operand size");
- i.disp_encoding = disp_encoding_32bit;
+ pp.disp_encoding = disp_encoding_32bit;
}
}
}
@@ -14135,7 +14254,7 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
if (i.memshift >= 32)
i.memshift = 0;
else if (!evex)
- i.encoding = encoding_error;
+ pp.encoding = encoding_error;
if (i.disp_operands && !optimize_disp (&i.tm))
goto done;
@@ -14201,8 +14320,8 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
potential special casing there. */
i.tm.base_opcode |= val;
- if (i.encoding == encoding_error
- || (i.encoding != encoding_evex
+ if (pp.encoding == encoding_error
+ || (pp.encoding != encoding_evex
? i.broadcast.type || i.broadcast.bytes
|| i.rounding.type != rc_none
|| i.mask.reg
@@ -14254,6 +14373,9 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
/* Make sure dot_insn() won't yield "true" anymore. */
i.tm.mnem_off = 0;
+
+ current_templates.start = NULL;
+ memset (&pp, 0, sizeof (pp));
}
#ifdef TE_PE
@@ -14313,11 +14435,11 @@ RC_SAE_specifier (const char *pstr)
return NULL;
}
- switch (i.encoding)
+ switch (pp.encoding)
{
case encoding_default:
case encoding_egpr:
- i.encoding = encoding_evex512;
+ pp.encoding = encoding_evex512;
break;
case encoding_evex:
case encoding_evex512:
@@ -14350,6 +14472,8 @@ check_VecOperations (char *op_string)
if (*op_string == '{')
{
op_string++;
+ if (is_space_char (*op_string))
+ op_string++;
/* Check broadcasts. */
if (startswith (op_string, "1to"))
@@ -14385,11 +14509,11 @@ check_VecOperations (char *op_string)
}
op_string++;
- switch (i.encoding)
+ switch (pp.encoding)
{
case encoding_default:
case encoding_egpr:
- i.encoding = encoding_evex;
+ pp.encoding = encoding_evex;
break;
case encoding_evex:
case encoding_evex512:
@@ -14520,6 +14644,8 @@ check_VecOperations (char *op_string)
else
goto unknown_vec_op;
+ if (is_space_char (*op_string))
+ op_string++;
if (*op_string != '}')
{
as_bad (_("missing `}' in `%s'"), saved);
@@ -14527,8 +14653,6 @@ check_VecOperations (char *op_string)
}
op_string++;
- /* Strip whitespace since the addition of pseudo prefixes
- changed how the scrubber treats '{'. */
if (is_space_char (*op_string))
++op_string;
@@ -15115,7 +15239,7 @@ i386_index_check (const char *operand_string)
if (addr_mode != CODE_16BIT)
{
/* 32-bit/64-bit checks. */
- if (i.disp_encoding == disp_encoding_16bit)
+ if (pp.disp_encoding == disp_encoding_16bit)
{
bad_disp:
as_bad (_("invalid `%s' prefix"),
@@ -15161,7 +15285,7 @@ i386_index_check (const char *operand_string)
else
{
/* 16-bit checks. */
- if (i.disp_encoding == disp_encoding_32bit)
+ if (pp.disp_encoding == disp_encoding_32bit)
goto bad_disp;
if ((i.base_reg
@@ -15190,10 +15314,17 @@ RC_SAE_immediate (const char *imm_start)
if (*pstr != '{')
return 0;
- pstr = RC_SAE_specifier (pstr + 1);
+ pstr++;
+ if (is_space_char (*pstr))
+ pstr++;
+
+ pstr = RC_SAE_specifier (pstr);
if (pstr == NULL)
return 0;
+ if (is_space_char (*pstr))
+ pstr++;
+
if (*pstr++ != '}')
{
as_bad (_("Missing '}': '%s'"), imm_start);
@@ -16664,17 +16795,18 @@ static bool check_register (const reg_entry *r)
if (vector_size < VSZ512)
return false;
- switch (i.encoding)
+ /* Don't update pp when not dealing with insn operands. */
+ switch (current_templates.start ? pp.encoding : encoding_evex)
{
case encoding_default:
case encoding_egpr:
- i.encoding = encoding_evex512;
+ pp.encoding = encoding_evex512;
break;
case encoding_evex:
case encoding_evex512:
break;
default:
- i.encoding = encoding_error;
+ pp.encoding = encoding_error;
break;
}
}
@@ -16702,17 +16834,18 @@ static bool check_register (const reg_entry *r)
|| flag_code != CODE_64BIT)
return false;
- switch (i.encoding)
+ /* Don't update pp when not dealing with insn operands. */
+ switch (current_templates.start ? pp.encoding : encoding_evex)
{
case encoding_default:
case encoding_egpr:
case encoding_evex512:
- i.encoding = encoding_evex;
+ pp.encoding = encoding_evex;
break;
case encoding_evex:
break;
default:
- i.encoding = encoding_error;
+ pp.encoding = encoding_error;
break;
}
}
@@ -16723,17 +16856,18 @@ static bool check_register (const reg_entry *r)
|| flag_code != CODE_64BIT)
return false;
- switch (i.encoding)
+ /* Don't update pp when not dealing with insn operands. */
+ switch (current_templates.start ? pp.encoding : encoding_egpr)
{
case encoding_default:
- i.encoding = encoding_egpr;
+ pp.encoding = encoding_egpr;
break;
case encoding_egpr:
case encoding_evex:
case encoding_evex512:
break;
default:
- i.encoding = encoding_error;
+ pp.encoding = encoding_error;
break;
}
}
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 7aae7a3..cda7166 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -183,6 +183,16 @@ extern int tc_i386_fix_adjustable (struct fix *);
|| (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX \
|| (FIX)->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPCRELX)
+extern void i386_start_line (void);
+#define md_start_line_hook i386_start_line
+
+extern bool i386_check_label (void);
+#define TC_START_LABEL(STR, NUL_CHAR, NEXT_CHAR) \
+ (NEXT_CHAR == ':' && i386_check_label ())
+
+extern int i386_unrecognized_line (int);
+#define tc_unrecognized_line i386_unrecognized_line
+
extern int i386_parse_name (char *, expressionS *, char *);
#define md_parse_name(s, e, m, c) i386_parse_name (s, e, c)
@@ -441,20 +451,20 @@ extern bool x86_scfi_callee_saved_p (uint32_t dw2reg_num);
extern bool x86_support_sframe_p (void);
#define support_sframe_p x86_support_sframe_p
-/* The stack-pointer register number for SFrame stack trace info. */
+/* The stack pointer DWARF register number for SFrame CFA tracking. */
extern unsigned int x86_sframe_cfa_sp_reg;
#define SFRAME_CFA_SP_REG x86_sframe_cfa_sp_reg
-/* The frame-pointer register number for SFrame stack trace info. */
+/* The frame pointer DWARF register number for SFrame CFA and FP tracking. */
extern unsigned int x86_sframe_cfa_fp_reg;
#define SFRAME_CFA_FP_REG x86_sframe_cfa_fp_reg
-/* Specify if RA tracking is needed. */
+/* 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
-/* Specify the fixed offset to recover RA from CFA.
- (useful only when RA tracking is not needed). */
+/* The fixed offset from CFA for SFrame to recover the return address.
+ (useful only when SFrame RA tracking is not needed). */
extern offsetT x86_sframe_cfa_ra_offset (void);
#define sframe_cfa_ra_offset x86_sframe_cfa_ra_offset
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 8f54cb8..d551b47 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -399,6 +399,12 @@ static int mips_32bitmode = 0;
|| (ISA) == ISA_MIPS64R5 \
|| (ISA) == ISA_MIPS64R6)
+/* Return true if the ISA and CPU support trap instructions. */
+#define ISA_HAS_TRAPS(ISA, CPU) \
+ (((ISA) != ISA_MIPS1 \
+ && (CPU) != CPU_ALLEGREX) \
+ || mips_opts.micromips) \
+
/* Return true if ISA supports 64-bit right rotate (dror et al.)
instructions. */
#define ISA_HAS_DROR(ISA) \
@@ -4153,9 +4159,6 @@ file_mips_check_options (void)
|| mips_abi == O32_ABI))
mips_32bitmode = 1;
- if (file_mips_opts.isa == ISA_MIPS1 && mips_trap)
- as_bad (_("trap exception not supported at ISA 1"));
-
/* If the selected architecture includes support for ASEs, enable
generation of code for them. */
if (file_mips_opts.mips16 == -1)
@@ -10269,6 +10272,16 @@ small_offset_p (unsigned int range, unsigned int align, unsigned int offbits)
return false;
}
+/* Return true if the ISA, CPU, and --trap settings imply using trap
+ rather than breakpoint instructions in the expansion of multiply
+ and divide macros. */
+
+static bool
+mips_use_trap (void)
+{
+ return ISA_HAS_TRAPS (mips_opts.isa, mips_opts.arch) && mips_trap;
+}
+
/*
* Build macros
* This routine implements the seemingly endless macro or synthesized
@@ -10787,7 +10800,7 @@ macro (struct mips_cl_insn *ip, char *str)
if (op[2] == 0)
{
as_warn (_("divide by zero"));
- if (mips_trap)
+ if (mips_use_trap ())
macro_build (NULL, "teq", TRAP_FMT, ZERO, ZERO, 7);
else
macro_build (NULL, "break", BRK_FMT, 7);
@@ -10795,7 +10808,7 @@ macro (struct mips_cl_insn *ip, char *str)
}
start_noreorder ();
- if (mips_trap)
+ if (mips_use_trap ())
{
macro_build (NULL, "teq", TRAP_FMT, op[2], ZERO, 7);
macro_build (NULL, dbl ? "ddiv" : "div", "z,s,t", op[1], op[2]);
@@ -10818,7 +10831,8 @@ macro (struct mips_cl_insn *ip, char *str)
if (mips_opts.micromips)
micromips_label_expr (&label_expr);
else
- label_expr.X_add_number = mips_trap ? (dbl ? 12 : 8) : (dbl ? 20 : 16);
+ label_expr.X_add_number = (mips_use_trap ()
+ ? (dbl ? 12 : 8) : (dbl ? 20 : 16));
macro_build (&label_expr, "bne", "s,t,p", op[2], AT);
if (dbl)
{
@@ -10831,7 +10845,7 @@ macro (struct mips_cl_insn *ip, char *str)
expr1.X_add_number = 0x80000000;
macro_build (&expr1, "lui", LUI_FMT, AT, BFD_RELOC_HI16);
}
- if (mips_trap)
+ if (mips_use_trap ())
{
macro_build (NULL, "teq", TRAP_FMT, op[1], AT, 6);
/* We want to close the noreorder block as soon as possible, so
@@ -10897,7 +10911,7 @@ macro (struct mips_cl_insn *ip, char *str)
if (imm_expr.X_add_number == 0)
{
as_warn (_("divide by zero"));
- if (mips_trap)
+ if (mips_use_trap ())
macro_build (NULL, "teq", TRAP_FMT, ZERO, ZERO, 7);
else
macro_build (NULL, "break", BRK_FMT, 7);
@@ -10943,7 +10957,7 @@ macro (struct mips_cl_insn *ip, char *str)
s2 = "mfhi";
do_divu3:
start_noreorder ();
- if (mips_trap)
+ if (mips_use_trap ())
{
macro_build (NULL, "teq", TRAP_FMT, op[2], ZERO, 7);
macro_build (NULL, s, "z,s,t", op[1], op[2]);
@@ -13308,7 +13322,7 @@ macro (struct mips_cl_insn *ip, char *str)
macro_build (NULL, "mflo", MFHL_FMT, op[0]);
macro_build (NULL, dbl ? "dsra32" : "sra", SHFT_FMT, op[0], op[0], 31);
macro_build (NULL, "mfhi", MFHL_FMT, AT);
- if (mips_trap)
+ if (mips_use_trap ())
macro_build (NULL, "tne", TRAP_FMT, op[0], AT, 6);
else
{
@@ -13346,7 +13360,7 @@ macro (struct mips_cl_insn *ip, char *str)
op[1], imm ? AT : op[2]);
macro_build (NULL, "mfhi", MFHL_FMT, AT);
macro_build (NULL, "mflo", MFHL_FMT, op[0]);
- if (mips_trap)
+ if (mips_use_trap ())
macro_build (NULL, "tne", TRAP_FMT, AT, ZERO, 6);
else
{
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index e008370..c09bd42 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -1784,6 +1784,7 @@ init_opcode_hash (const struct riscv_opcode *opcodes,
help us resolve the corresponding low-part relocation later. */
typedef struct
{
+ const asection *sec;
bfd_vma address;
symbolS *symbol;
bfd_vma target;
@@ -1798,7 +1799,13 @@ static hashval_t
riscv_pcrel_fixup_hash (const void *entry)
{
const riscv_pcrel_hi_fixup *e = entry;
- return (hashval_t) (e->address);
+
+ /* the pcrel_hi with same address may reside in different segments,
+ to ensure uniqueness, the segment ID needs to be included in the
+ hash key calculation.
+ Temporarily using the prime number 499 as a multiplier, but it
+ might not be large enough. */
+ return e->address + 499 * e->sec->id;
}
/* Compare the keys between two entries fo the pcrel_hi hash table. */
@@ -1807,16 +1814,17 @@ static int
riscv_pcrel_fixup_eq (const void *entry1, const void *entry2)
{
const riscv_pcrel_hi_fixup *e1 = entry1, *e2 = entry2;
- return e1->address == e2->address;
+ return e1->sec->id == e2->sec->id
+ && e1->address == e2->address;
}
/* Record the pcrel_hi relocation. */
static bool
-riscv_record_pcrel_fixup (htab_t p, bfd_vma address, symbolS *symbol,
- bfd_vma target)
+riscv_record_pcrel_fixup (htab_t p, const asection *sec, bfd_vma address,
+ symbolS *symbol, bfd_vma target)
{
- riscv_pcrel_hi_fixup entry = {address, symbol, target};
+ riscv_pcrel_hi_fixup entry = {sec, address, symbol, target};
riscv_pcrel_hi_fixup **slot =
(riscv_pcrel_hi_fixup **) htab_find_slot (p, &entry, INSERT);
if (slot == NULL)
@@ -4426,7 +4434,7 @@ md_pcrel_from (fixS *fixP)
/* Apply a fixup to the object file. */
void
-md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
+md_apply_fix (fixS *fixP, valueT *valP, segT seg)
{
unsigned int subtype;
bfd_byte *buf = (bfd_byte *) (fixP->fx_frag->fr_literal + fixP->fx_where);
@@ -4677,6 +4685,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
/* Record PCREL_HI20. */
if (!riscv_record_pcrel_fixup (riscv_pcrel_hi_fixup_hash,
+ (const asection *) seg,
md_pcrel_from (fixP),
fixP->fx_addsy,
target))
@@ -4698,7 +4707,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
and set fx_done for -mno-relax. */
{
bfd_vma location_pcrel_hi = S_GET_VALUE (fixP->fx_addsy) + *valP;
- riscv_pcrel_hi_fixup search = {location_pcrel_hi, 0, 0};
+ riscv_pcrel_hi_fixup search =
+ {(const asection *) seg, location_pcrel_hi, 0, 0};
riscv_pcrel_hi_fixup *entry = htab_find (riscv_pcrel_hi_fixup_hash,
&search);
if (entry && entry->symbol
@@ -4707,7 +4717,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
{
bfd_vma target = entry->target;
bfd_vma value = target - entry->address;
- bfd_putl32 (bfd_getl32 (buf) | ENCODE_ITYPE_IMM (value), buf);
+ if (fixP->fx_r_type == BFD_RELOC_RISCV_PCREL_LO12_S)
+ 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'. */
if (!riscv_opts.relax)
fixP->fx_done = 1;
diff --git a/gas/configure b/gas/configure
index 0cebc4e..6b96d3a 100755
--- a/gas/configure
+++ b/gas/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gas 2.42.50.
+# Generated by GNU Autoconf 2.69 for gas 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gas'
PACKAGE_TARNAME='gas'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='gas 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='gas 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1392,7 +1392,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gas 2.42.50 to adapt to many kinds of systems.
+\`configure' configures gas 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1463,7 +1463,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gas 2.42.50:";;
+ short | recursive ) echo "Configuration of gas 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1619,7 +1619,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gas configure 2.42.50
+gas configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2030,7 +2030,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gas $as_me 2.42.50, which was
+It was created by gas $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3010,7 +3010,7 @@ fi
# Define the identity of the package.
PACKAGE='gas'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -16855,7 +16855,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gas $as_me 2.42.50, which was
+This file was extended by gas $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16921,7 +16921,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gas config.status 2.42.50
+gas config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/gas/doc/as.texi b/gas/doc/as.texi
index 33169a5..3501744 100644
--- a/gas/doc/as.texi
+++ b/gas/doc/as.texi
@@ -260,7 +260,8 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{--size-check=[error|warning]}]
[@b{--statistics}]
[@b{-v}] [@b{-version}] [@b{--version}]
- [@b{-W}] [@b{--warn}] [@b{--fatal-warnings}] [@b{-w}] [@b{-x}]
+ [@b{-W}] [@b{--no-warn}] [@b{--warn}] [@b{--fatal-warnings}]
+ [@b{-w}] [@b{-x}]
[@b{-Z}] [@b{@@@var{FILE}}]
[@var{target-options}]
[@b{--}|@var{files} @dots{}]
@@ -983,12 +984,12 @@ Print the @command{as} version and exit.
@itemx --no-warn
Suppress warning messages.
-@item --fatal-warnings
-Treat warnings as errors.
-
@item --warn
Don't suppress warning messages or treat them as errors.
+@item --fatal-warnings
+Treat warnings as errors.
+
@item -w
Ignored.
@@ -2863,7 +2864,7 @@ option @samp{-v} (which you can also spell as @samp{-version}) on the
command line.
@node W
-@section Control Warnings: @option{-W}, @option{--warn}, @option{--no-warn}, @option{--fatal-warnings}
+@section Control Warnings: @option{-W}, @option{--no-warn}, @option{--warn}, @option{--fatal-warnings}
@command{@value{AS}} should never give a warning or error message when
assembling compiler output. But programs written by people often
@@ -2874,22 +2875,24 @@ made. All such warnings are directed to the standard error file.
@kindex --no-warn
@cindex suppressing warnings
@cindex warnings, suppressing
-If you use the @option{-W} and @option{--no-warn} options, no warnings are issued.
+If you use the @option{-W} or @option{--no-warn} option, no warnings are issued.
This only affects the warning messages: it does not change any particular of
how @command{@value{AS}} assembles your file. Errors, which stop the assembly,
are still reported.
+@kindex --warn
+@cindex outputing warnings
+@cindex warnings, switching on
+Warnings are switched on by default. They can be switched off with @option{-W} or
+@option{--no-warn}. Specifying the @option{--warn} again later on the command line
+will switch on warnings again, and cause them to be output as usual.
+
@kindex --fatal-warnings
@cindex errors, caused by warnings
@cindex warnings, causing error
If you use the @option{--fatal-warnings} option, @command{@value{AS}} considers
files that generate warnings to be in error.
-@kindex --warn
-@cindex warnings, switching on
-You can switch these options off again by specifying @option{--warn}, which
-causes warnings to be output as usual.
-
@node Z
@section Generate Object File in Spite of Errors: @option{-Z}
@cindex object file, after errors
@@ -2987,11 +2990,11 @@ as exactly one space.
@section Comments
@cindex comments
-There are two ways of rendering comments to @command{@value{AS}}. In both
-cases the comment is equivalent to one space.
+There are two ways of rendering comments to @command{@value{AS}}.
Anything from @samp{/*} through the next @samp{*/} is a comment.
-This means you may not nest these comments.
+This means you may not nest these comments. Such a comment is equivalent to
+one space, plus bumping the line counter accordingly.
@smallexample
/*
@@ -4497,6 +4500,7 @@ Some machine configurations provide additional directives.
* Asciz:: @code{.asciz "@var{string}"}@dots{}
* Attach_to_group:: @code{.attach_to_group @var{name}}
* Balign:: @code{.balign [@var{abs-expr}[, @var{abs-expr}]]}
+* Base64:: @code{.base64 "@var{string}"[, @dots{}]}
@ifset ELF
* Bss:: @code{.bss @var{subsection}}
@end ifset
@@ -4851,6 +4855,24 @@ filled in with the value 0x368d (the exact placement of the bytes depends upon
the endianness of the processor). If it skips 1 or 3 bytes, the fill value is
undefined.
+@node Base64
+@section @code{.base64 "@var{string}"[, @dots{}]}
+Allows binary data to be entered into a section encoded as a base64 string.
+There is no maximum length to the strings, but they must be a multiple of four
+bytes long. If necessary the ends of the strings can be padded with @code{=}
+characters. Line breaks, control characters and escaped characters are not
+allowed in the strings. The strings must be enclosed between double quote
+characters. Multiple strings are allowed, but they must be separated by
+commas.
+
+As an example of how to create a base64 encoded string, see the
+@command{base64} program (with its @option{-w0} option to disable line breaks).
+
+Note: for targets where the size of a byte is larger than the size of an octet
+the @code{.base64} directive will, if necessary, pad the end of the @emph{last}
+string so that the total number of octets generated are a multiple the number
+of octets in a byte.
+
@ifset ELF
@node Bss
@section @code{.bss @var{subsection}}
@@ -7785,7 +7807,7 @@ section, using the endian model of the target. If an expression will not fit
in two bytes, a warning message is displayed and the least significant two
bytes of the expression's value are used. If an expression cannot be evaluated
at assembly time then relocations will be generated in order to compute the
-value at link time.
+value at link time.
This directive does not apply any alignment before or after inserting the
values. As a result of this, if relocations are generated, they may be
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 2126304..8e46038 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -161,8 +161,8 @@ automatically cause those extensions to be disabled.
@headitem Extension @tab Depends upon @tab Description
@item @code{aes} @tab @code{simd}
@tab Enable the AES and PMULL cryptographic extensions.
-@item @code{b16b16} @tab @code{sve2}
- @tab Enable BFloat16 to BFloat16 arithmetic for SVE2 and SME2.
+@c @item @code{b16b16} @tab @code{sve2}
+@c @tab Enable BFloat16 to BFloat16 arithmetic for SVE2 and SME2.
@item @code{bf16} @tab @code{fp}
@tab Enable BFloat16 extension.
@item @code{brbe} @tab
diff --git a/gas/doc/c-mips.texi b/gas/doc/c-mips.texi
index f3c1f66..4181aa3 100644
--- a/gas/doc/c-mips.texi
+++ b/gas/doc/c-mips.texi
@@ -588,10 +588,12 @@ directive to the beginning of the source file. @xref{MIPS NaN Encodings}.
@c FIXME! (1) reflect these options (next item too) in option summaries;
@c (2) stop teasing, say _which_ instructions expanded _how_.
@code{@value{AS}} automatically macro expands certain division and
-multiplication instructions to check for overflow and division by zero. This
-option causes @code{@value{AS}} to generate code to take a trap exception
-rather than a break exception when an error is detected. The trap instructions
-are only supported at Instruction Set Architecture level 2 and higher.
+multiplication instructions to check for overflow and division by zero.
+This option causes @code{@value{AS}} to generate code to take a trap
+exception rather than a break exception when an error is detected and the
+ISA selected for assembly at the originating place in source code permits
+the use of trap instructions. The trap instructions are only supported at
+Instruction Set Architecture level 2 and higher.
@item --break
@itemx --no-trap
diff --git a/gas/doc/c-riscv.texi b/gas/doc/c-riscv.texi
index ebff7a6..d396669 100644
--- a/gas/doc/c-riscv.texi
+++ b/gas/doc/c-riscv.texi
@@ -210,7 +210,7 @@ Enables or disables the CSR checking.
@item arch, @var{+extension[version]} [,...,@var{+extension_n[version_n]}]
@itemx arch, @var{-extension} [,...,@var{-extension_n}]
-@itemx arch, @var{=ISA}
+@itemx arch, @var{ISA}
Enables or disables the extensions for specific code region. For example,
@samp{.option arch, +m2p0} means add m extension with version 2.0, and
@samp{.option arch, -f, -d} means remove extensions, f and d, from the
@@ -218,7 +218,7 @@ architecture string. Note that, @samp{.option arch, +c, -c} have the same
behavior as @samp{.option rvc, norvc}. However, they are also undesirable
sometimes. Besides, @samp{.option arch, -i} is illegal, since we cannot
remove the base i extension anytime. If you want to reset the whole ISA
-string, you can also use @samp{.option arch, =rv32imac} to overwrite the
+string, you can also use @samp{.option arch, rv32imac} to overwrite the
previous settings.
@end table
@@ -673,7 +673,7 @@ with the @samp{.insn} pseudo directive:
15 13 10 7 2 0
@end verbatim
-@item CJ type: .insn cj opcode2, symbol
+@item CJ type: .insn cj opcode2, func3, symbol
@verbatim
+-------+-------------------------------+---------+
| func3 | simm11[11|4|9:8|10|6|7|3:1|5] | opcode2 |
diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c
index 238b76f..626dc33 100644
--- a/gas/gen-sframe.c
+++ b/gas/gen-sframe.c
@@ -346,7 +346,8 @@ 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_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK)
+ if (sframe_ra_tracking_p ()
+ && sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK)
fre_num_offsets++;
#endif
return fre_num_offsets;
@@ -536,7 +537,8 @@ output_sframe_row_entry (symbolS *fde_start_addr,
fre_write_offsets++;
#ifdef SFRAME_FRE_RA_TRACKING
- if (sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK)
+ 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++;
@@ -665,12 +667,16 @@ output_sframe_internal (void)
-fno-omit-frame-pointer is used. */
out_one (fixed_fp_offset);
- /* Offset for the return address from CFA is fixed for some ABIs
- (e.g., AMD64), output a SFRAME_CFA_FIXED_RA_INVALID otherwise. */
-#ifdef sframe_ra_tracking_p
+ /* All ABIs participating in SFrame generation must define
+ sframe_ra_tracking_p.
+ When RA tracking (in FREs) is not needed (e.g., AMD64), SFrame assumes
+ the RA is going to be at a fixed offset from CFA. Check that the fixed RA
+ offset is appropriately defined in all cases. */
if (!sframe_ra_tracking_p ())
- fixed_ra_offset = sframe_cfa_ra_offset ();
-#endif
+ {
+ fixed_ra_offset = sframe_cfa_ra_offset ();
+ gas_assert (fixed_ra_offset != SFRAME_CFA_FIXED_RA_INVALID);
+ }
out_one (fixed_ra_offset);
/* None of the AMD64, or AARCH64 ABIs need the auxiliary header.
@@ -869,7 +875,7 @@ sframe_row_entry_new (void)
struct sframe_row_entry *fre = XCNEW (struct sframe_row_entry);
/* Reset cfa_base_reg to -1. A value of 0 will imply some valid register
for the supported arches. */
- fre->cfa_base_reg = -1;
+ fre->cfa_base_reg = SFRAME_FRE_BASE_REG_INVAL;
fre->merge_candidate = true;
/* Reset the mangled RA status bit to zero by default. We will initialize it in
sframe_row_entry_initialize () with the sticky bit if set. */
@@ -924,6 +930,23 @@ sframe_row_entry_initialize (struct sframe_row_entry *cur_fre,
cur_fre->mangled_ra_p = prev_fre->mangled_ra_p;
}
+/* Return SFrame register name for SP, FP, and RA, or NULL if other. */
+
+static const char *
+sframe_register_name (unsigned int reg)
+{
+ if (reg == SFRAME_CFA_SP_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;
+}
+
/* Translate DW_CFA_advance_loc into SFrame context.
Return SFRAME_XLATE_OK if success. */
@@ -988,7 +1011,15 @@ sframe_xlate_do_def_cfa (struct sframe_xlate_ctx *xlate_ctx,
get_dw_fde_start_addrS (xlate_ctx->dw_fde));
}
/* Define the current CFA rule to use the provided register and
- offset. */
+ offset. However, if the register is not FP/SP, skip creating
+ SFrame stack trace info for the function. */
+ if (cfi_insn->u.r != SFRAME_CFA_SP_REG
+ && cfi_insn->u.r != SFRAME_CFA_FP_REG)
+ {
+ as_warn (_("skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa"),
+ cfi_insn->u.r);
+ return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
+ }
sframe_fre_set_cfa_base_reg (cur_fre, cfi_insn->u.ri.reg);
sframe_fre_set_cfa_offset (cur_fre, cfi_insn->u.ri.offset);
cur_fre->merge_candidate = false;
@@ -1006,9 +1037,19 @@ sframe_xlate_do_def_cfa_register (struct sframe_xlate_ctx *xlate_ctx,
struct sframe_row_entry *last_fre = xlate_ctx->last_fre;
/* Get the scratchpad FRE. This FRE will eventually get linked in. */
struct sframe_row_entry *cur_fre = xlate_ctx->cur_fre;
+
gas_assert (cur_fre);
/* Define the current CFA rule to use the provided register (but to
- keep the old offset). */
+ keep the old offset). However, if the register is not FP/SP,
+ skip creating SFrame stack trace info for the function. */
+ if (cfi_insn->u.r != SFRAME_CFA_SP_REG
+ && cfi_insn->u.r != SFRAME_CFA_FP_REG)
+ {
+ as_warn (_("skipping SFrame FDE; "
+ "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.ri.reg);
sframe_fre_set_cfa_offset (cur_fre, last_fre->cfa_offset);
cur_fre->merge_candidate = false;
@@ -1039,7 +1080,13 @@ sframe_xlate_do_def_cfa_offset (struct sframe_xlate_ctx *xlate_ctx,
cur_fre->merge_candidate = false;
}
else
- return SFRAME_XLATE_ERR_NOTREPRESENTED;
+ {
+ /* 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; "
+ ".cfi_def_cfa_offset without CFA base register in effect"));
+ return SFRAME_XLATE_ERR_NOTREPRESENTED;
+ }
return SFRAME_XLATE_OK;
}
@@ -1059,6 +1106,7 @@ sframe_xlate_do_offset (struct sframe_xlate_ctx *xlate_ctx,
gas_assert (cur_fre);
/* Change the rule for the register indicated by the register number to
be the specified offset. */
+ /* Ignore SP reg, as it can be recovered from the CFA tracking info. */
if (cfi_insn->u.r == SFRAME_CFA_FP_REG)
{
gas_assert (!cur_fre->base_reg);
@@ -1089,13 +1137,44 @@ sframe_xlate_do_val_offset (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
register is not interesting (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.r == SFRAME_CFA_FP_REG)
- return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
+ if (cfi_insn->u.r == SFRAME_CFA_FP_REG
#ifdef SFRAME_FRE_RA_TRACKING
- else if (sframe_ra_tracking_p ()
- && cfi_insn->u.r == SFRAME_CFA_RA_REG)
- return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
+ || (sframe_ra_tracking_p () && cfi_insn->u.r == 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_val_offset"),
+ 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_register into SFrame context.
+ Return SFRAME_XLATE_OK if success. */
+
+static int
+sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
+ struct cfi_insn_data *cfi_insn)
+{
+ /* Previous value of register1 is register2. However, if the specified
+ register1 is not interesting (FP or RA reg), the current DW_CFA_register
+ 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"),
+ sframe_register_name (cfi_insn->u.rr.reg1), cfi_insn->u.rr.reg1);
+ return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
+ }
/* Safe to skip. */
return SFRAME_XLATE_OK;
@@ -1113,7 +1192,11 @@ sframe_xlate_do_remember_state (struct sframe_xlate_ctx *xlate_ctx)
early with non-zero error code, this will cause no SFrame stack trace
info for the function involved. */
if (!last_fre)
- return SFRAME_XLATE_ERR_INVAL;
+ {
+ as_warn (_("skipping SFrame FDE; "
+ ".cfi_remember_state without prior SFrame FRE state"));
+ return SFRAME_XLATE_ERR_INVAL;
+ }
if (!xlate_ctx->remember_fre)
xlate_ctx->remember_fre = sframe_row_entry_new ();
@@ -1182,12 +1265,12 @@ sframe_xlate_do_restore (struct sframe_xlate_ctx *xlate_ctx,
return SFRAME_XLATE_OK;
}
-/* Translate DW_CFA_GNU_window_save into SFrame context.
+/* Translate DW_CFA_AARCH64_negate_ra_state into SFrame context.
Return SFRAME_XLATE_OK if success. */
static int
-sframe_xlate_do_gnu_window_save (struct sframe_xlate_ctx *xlate_ctx,
- struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
+sframe_xlate_do_aarch64_negate_ra_state (struct sframe_xlate_ctx *xlate_ctx,
+ struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
{
struct sframe_row_entry *cur_fre = xlate_ctx->cur_fre;
@@ -1199,6 +1282,65 @@ sframe_xlate_do_gnu_window_save (struct sframe_xlate_ctx *xlate_ctx,
return SFRAME_XLATE_OK;
}
+/* Translate DW_CFA_GNU_window_save into SFrame context.
+ DW_CFA_AARCH64_negate_ra_state is multiplexed with DW_CFA_GNU_window_save.
+ Return SFRAME_XLATE_OK if success. */
+
+static int
+sframe_xlate_do_gnu_window_save (struct sframe_xlate_ctx *xlate_ctx,
+ struct cfi_insn_data *cfi_insn)
+{
+ unsigned char abi_arch = sframe_get_abi_arch ();
+
+ /* Translate DW_CFA_AARCH64_negate_ra_state into SFrame context. */
+ if (abi_arch == SFRAME_ABI_AARCH64_ENDIAN_BIG
+ || 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"));
+ return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
+}
+
+/* Returns the DWARF call frame instruction name or fake CFI name for the
+ specified CFI opcode, or NULL if the value is not recognized. */
+
+static const char *
+sframe_get_cfi_name (int cfi_opc)
+{
+ const char *cfi_name;
+
+ switch (cfi_opc)
+ {
+ /* Fake CFI type; outside the byte range of any real CFI insn. */
+ /* See gas/dw2gencfi.h. */
+ case CFI_adjust_cfa_offset:
+ cfi_name = "CFI_adjust_cfa_offset";
+ break;
+ case CFI_return_column:
+ cfi_name = "CFI_return_column";
+ break;
+ case CFI_rel_offset:
+ cfi_name = "CFI_rel_offset";
+ break;
+ case CFI_escape:
+ cfi_name = "CFI_escape";
+ break;
+ case CFI_signal_frame:
+ cfi_name = "CFI_signal_frame";
+ break;
+ case CFI_val_encoded_addr:
+ cfi_name = "CFI_val_encoded_addr";
+ break;
+ case CFI_label:
+ cfi_name = "CFI_label";
+ break;
+ default:
+ cfi_name = get_DW_CFA_name (cfi_opc);
+ }
+
+ return cfi_name;
+}
+
/* Process CFI_INSN and update the translation context with the FRE
information.
@@ -1249,33 +1391,31 @@ sframe_do_cfi_insn (struct sframe_xlate_ctx *xlate_ctx,
case DW_CFA_GNU_window_save:
err = sframe_xlate_do_gnu_window_save (xlate_ctx, cfi_insn);
break;
- /* Other 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.
- - DW_CFA_register,
- - etc. */
case DW_CFA_register:
- if (cfi_insn->u.rr.reg1 == SFRAME_CFA_SP_REG
-#ifdef SFRAME_FRE_RA_TRACKING
- || cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG
-#endif
- || cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG)
- err = SFRAME_XLATE_ERR_NOTREPRESENTED;
+ 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 DW_CFA_undefined:
case DW_CFA_same_value:
break;
default:
/* Following skipped operations do, however, impact the asynchronicity:
- CFI_escape. */
- err = SFRAME_XLATE_ERR_NOTREPRESENTED;
- }
+ {
+ const char *cfi_name = sframe_get_cfi_name (op);
- /* An error here will cause no SFrame FDE later. Warn the user because this
- will affect the overall coverage and hence, asynchronicity. */
- if (err)
- as_warn (_("skipping SFrame FDE due to DWARF CFI op %#x"), op);
+ if (!cfi_name)
+ cfi_name = _("(unknown)");
+ as_warn (_("skipping SFrame FDE; CFI insn %s (%#x)"),
+ cfi_name, op);
+ err = SFRAME_XLATE_ERR_NOTREPRESENTED;
+ }
+ }
+ /* Any error will cause no SFrame FDE later. The user has already been
+ warned. */
return err;
}
@@ -1289,9 +1429,13 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx,
xlate_ctx->dw_fde = dw_fde;
- /* If the return column is not RIP, SFrame format cannot represent it. */
+ /* SFrame format cannot represent a non-default DWARF return column reg. */
if (xlate_ctx->dw_fde->return_column != DWARF2_DEFAULT_RETURN_COLUMN)
- return SFRAME_XLATE_ERR_NOTREPRESENTED;
+ {
+ as_warn (_("skipping SFrame FDE; non-default RA register %u"),
+ xlate_ctx->dw_fde->return_column);
+ return SFRAME_XLATE_ERR_NOTREPRESENTED;
+ }
/* Iterate over the CFIs and create SFrame FREs. */
for (cfi_insn = dw_fde->data; cfi_insn; cfi_insn = cfi_insn->next)
@@ -1301,13 +1445,12 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx,
if (err != SFRAME_XLATE_OK)
{
/* Skip generating SFrame stack trace info for the function if any
- offending CFI is encountered by sframe_do_cfi_insn (). */
+ offending CFI is encountered by sframe_do_cfi_insn (). Warning
+ message already printed by sframe_do_cfi_insn (). */
return err; /* Return the error code. */
}
}
- /* No errors encountered. */
-
/* Link in the scratchpad FRE that the last few CFI insns helped create. */
if (xlate_ctx->cur_fre)
{
@@ -1321,6 +1464,25 @@ 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;
+
+ /* Iterate over the scratchpad FREs and validate them. */
+ for (fre = xlate_ctx->first_fre; fre; fre = fre->next)
+ {
+ /* SFrame format cannot represent FP on stack without RA on stack. */
+ 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"));
+ return SFRAME_XLATE_ERR_NOTREPRESENTED;
+ }
+ }
+ }
+#endif /* SFRAME_FRE_RA_TRACKING */
+
return SFRAME_XLATE_OK;
}
diff --git a/gas/gen-sframe.h b/gas/gen-sframe.h
index fbe2fd5..8ed46db 100644
--- a/gas/gen-sframe.h
+++ b/gas/gen-sframe.h
@@ -24,6 +24,8 @@
#define SFRAME_FRE_ELEM_LOC_REG 0
#define SFRAME_FRE_ELEM_LOC_STACK 1
+#define SFRAME_FRE_BASE_REG_INVAL ((unsigned int)-1)
+
/* SFrame Frame Row Entry (FRE).
A frame row entry is a slice of the frame and can be valid for a set of
diff --git a/gas/input-file.c b/gas/input-file.c
index 9ec255b..89f03a9 100644
--- a/gas/input-file.c
+++ b/gas/input-file.c
@@ -240,9 +240,20 @@ input_file_give_next_buffer (char *where /* Where to place 1st character of new
Since the assembler shouldn't do any output to stdout, we
don't bother to synch output and input. */
if (preprocess)
- size = do_scrub_chars (input_file_get, where, BUFFER_SIZE);
+ size = do_scrub_chars (input_file_get, where, BUFFER_SIZE,
+ multibyte_handling == multibyte_warn);
else
- size = input_file_get (where, BUFFER_SIZE);
+ {
+ size = input_file_get (where, BUFFER_SIZE);
+
+ if (multibyte_handling == multibyte_warn)
+ {
+ const unsigned char *start = (const unsigned char *) where;
+
+ (void) scan_for_multibyte_characters (start, start + size,
+ true /* Generate warnings */);
+ }
+ }
if (size)
return_value = where + size;
diff --git a/gas/input-scrub.c b/gas/input-scrub.c
index 5bfdc53..776d15e 100644
--- a/gas/input-scrub.c
+++ b/gas/input-scrub.c
@@ -386,11 +386,6 @@ input_scrub_next_buffer (char **bufp)
++p;
}
- if (multibyte_handling == multibyte_warn)
- (void) scan_for_multibyte_characters ((const unsigned char *) p,
- (const unsigned char *) limit,
- true /* Generate warnings */);
-
/* We found a newline in the newly read chars. */
partial_where = p;
partial_size = limit - p;
diff --git a/gas/po/gas.pot b/gas/po/gas.pot
index be0e0d5..465ace5 100644
--- a/gas/po/gas.pot
+++ b/gas/po/gas.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-01-15 15:02+0000\n"
+"POT-Creation-Date: 2024-07-20 13:04+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,60 +17,60 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: app.c:381
+#: app.c:426
#, c-format
msgid "multibyte character (%#x) encountered in input"
msgstr ""
-#: app.c:383
+#: app.c:428
#, c-format
msgid "multibyte character (%#x) encountered in %s"
msgstr ""
-#: app.c:385
+#: app.c:430
#, c-format
msgid "multibyte character (%#x) encountered in %s at or near line %u"
msgstr ""
-#: app.c:389
+#: app.c:434
msgid "further multibyte character warnings suppressed"
msgstr ""
-#: app.c:548 app.c:562
+#: app.c:591 app.c:605
msgid "end of file in comment"
msgstr ""
-#: app.c:640 app.c:685
+#: app.c:683 app.c:728
#, c-format
msgid "end of file in string; '%c' inserted"
msgstr ""
-#: app.c:711
+#: app.c:759
#, c-format
msgid "unknown escape '\\%c' in string; ignored"
msgstr ""
-#: app.c:887 input-scrub.c:372
+#: app.c:924 input-scrub.c:372
msgid "end of file not at end of a line; newline inserted"
msgstr ""
-#: app.c:1049
+#: app.c:1101
msgid "end of file in multiline comment"
msgstr ""
-#: app.c:1123
+#: app.c:1175
msgid "end of file after a one-character quote; \\0 inserted"
msgstr ""
-#: app.c:1131
+#: app.c:1183
msgid "end of file in escape character"
msgstr ""
-#: app.c:1143
+#: app.c:1195
msgid "missing close quote; (assumed)"
msgstr ""
-#: app.c:1211 app.c:1266 app.c:1278 app.c:1356
+#: app.c:1263 app.c:1318 app.c:1330 app.c:1404
msgid "end of file in comment; newline inserted"
msgstr ""
@@ -187,12 +187,12 @@ msgstr ""
msgid " --elf-stt-common=[no|yes] "
msgstr ""
-#: as.c:307 as.c:318 config/tc-i386.c:16802 config/tc-i386.c:16822
+#: as.c:307 as.c:318 config/tc-i386.c:17974 config/tc-i386.c:17994
#, c-format
msgid "(default: yes)\n"
msgstr ""
-#: as.c:309 as.c:320 config/tc-i386.c:16804 config/tc-i386.c:16824
+#: as.c:309 as.c:320 config/tc-i386.c:17976 config/tc-i386.c:17996
#, c-format
msgid "(default: no)\n"
msgstr ""
@@ -239,7 +239,7 @@ msgstr ""
#: as.c:335
#, c-format
-msgid " -g --gen-debug generate debugging information\n"
+msgid " -g, --gen-debug generate debugging information\n"
msgstr ""
#: as.c:337
@@ -312,12 +312,12 @@ msgstr ""
#: as.c:363
#, c-format
-msgid " -L,--keep-locals keep local symbols (e.g. starting with `L')\n"
+msgid " -L, --keep-locals keep local symbols (e.g. starting with `L')\n"
msgstr ""
#: as.c:365
#, c-format
-msgid " -M,--mri assemble in MRI compatibility mode\n"
+msgid " -M, --mri assemble in MRI compatibility mode\n"
msgstr ""
#: as.c:367
@@ -388,7 +388,7 @@ msgstr ""
#: as.c:390
#, c-format
-msgid " -W --no-warn suppress warnings\n"
+msgid " -W, --no-warn suppress warnings\n"
msgstr ""
#: as.c:392
@@ -658,29 +658,28 @@ msgid "failed sanity check"
msgstr ""
#: cgen.c:106 config/tc-alpha.c:2097 config/tc-alpha.c:2121
-#: config/tc-arc.c:4074 config/tc-arc.c:4147 config/tc-d10v.c:550
+#: config/tc-arc.c:4075 config/tc-arc.c:4148 config/tc-d10v.c:550
#: config/tc-d30v.c:534 config/tc-mn10200.c:1092 config/tc-mn10300.c:1753
-#: config/tc-ppc.c:3959 config/tc-s390.c:1339 config/tc-s390.c:1462
-#: config/tc-s390.c:1596 config/tc-v850.c:2530 config/tc-v850.c:2601
-#: config/tc-v850.c:2648 config/tc-v850.c:2685 config/tc-v850.c:2722
-#: config/tc-v850.c:2986
+#: config/tc-ppc.c:3961 config/tc-s390.c:1817 config/tc-v850.c:2530
+#: config/tc-v850.c:2601 config/tc-v850.c:2648 config/tc-v850.c:2685
+#: config/tc-v850.c:2722 config/tc-v850.c:2986
msgid "too many fixups"
msgstr ""
#: cgen.c:371 cgen.c:393 config/tc-d10v.c:461 config/tc-d30v.c:450
-#: config/tc-mn10200.c:1034 config/tc-mn10300.c:1678 config/tc-ppc.c:3481
-#: config/tc-s390.c:1323 config/tc-v850.c:2639 config/tc-v850.c:2673
-#: config/tc-v850.c:2713 config/tc-v850.c:2959 config/tc-z80.c:785
+#: config/tc-mn10200.c:1034 config/tc-mn10300.c:1678 config/tc-ppc.c:3483
+#: config/tc-v850.c:2639 config/tc-v850.c:2673 config/tc-v850.c:2713
+#: config/tc-v850.c:2959 config/tc-z80.c:785
msgid "illegal operand"
msgstr ""
#: cgen.c:397 config/tc-avr.c:910 config/tc-d10v.c:463 config/tc-d30v.c:452
#: config/tc-h8300.c:493 config/tc-mcore.c:662 config/tc-microblaze.c:585
#: config/tc-mmix.c:495 config/tc-mn10200.c:1037 config/tc-mn10300.c:1681
-#: config/tc-msp430.c:417 config/tc-ppc.c:3483 config/tc-s390.c:1328
-#: config/tc-sh.c:988 config/tc-v850.c:2643 config/tc-v850.c:2677
-#: config/tc-v850.c:2717 config/tc-v850.c:2962 config/tc-xgate.c:895
-#: config/tc-z80.c:933 config/tc-z8k.c:349
+#: config/tc-msp430.c:417 config/tc-ppc.c:3485 config/tc-sh.c:988
+#: config/tc-v850.c:2643 config/tc-v850.c:2677 config/tc-v850.c:2717
+#: config/tc-v850.c:2962 config/tc-xgate.c:895 config/tc-z80.c:933
+#: config/tc-z8k.c:349
msgid "missing operand"
msgstr ""
@@ -692,21 +691,21 @@ msgstr ""
msgid "operand mask overflow"
msgstr ""
-#: cgen.c:860 config/tc-arm.c:2056 config/tc-arm.c:11395 config/tc-arm.c:11447
-#: config/tc-arm.c:11735 config/tc-arm.c:12631 config/tc-arm.c:13771
-#: config/tc-arm.c:13811 config/tc-arm.c:14184 config/tc-arm.c:14226
-#: config/tc-arm.c:21462 config/tc-arm.c:21522 config/tc-mips.c:9704
-#: config/tc-mips.c:11014 config/tc-mips.c:12311 config/tc-mips.c:12992
-#: config/tc-spu.c:982 config/tc-xtensa.c:13078
+#: cgen.c:860 config/tc-arm.c:2040 config/tc-arm.c:11124 config/tc-arm.c:11176
+#: config/tc-arm.c:11464 config/tc-arm.c:12360 config/tc-arm.c:13500
+#: config/tc-arm.c:13540 config/tc-arm.c:13913 config/tc-arm.c:13955
+#: config/tc-arm.c:21200 config/tc-arm.c:21260 config/tc-mips.c:9707
+#: config/tc-mips.c:11028 config/tc-mips.c:12325 config/tc-mips.c:13006
+#: config/tc-spu.c:982 config/tc-xtensa.c:13110
msgid "expression too complex"
msgstr ""
-#: cgen.c:961 config/tc-ppc.c:7489 config/tc-s390.c:2374 config/tc-v850.c:3495
+#: cgen.c:961 config/tc-ppc.c:7491 config/tc-s390.c:2595 config/tc-v850.c:3495
#: config/tc-xstormy16.c:541
msgid "unresolved expression that must be resolved"
msgstr ""
-#: cgen.c:986 config/tc-bpf.c:858 config/tc-xstormy16.c:566
+#: cgen.c:986 config/tc-bpf.c:887 config/tc-xstormy16.c:566
#, c-format
msgid "internal error: can't install fix for reloc type %d (`%s')"
msgstr ""
@@ -804,7 +803,7 @@ msgstr ""
msgid "Infinities are not supported by this target"
msgstr ""
-#: config/atof-ieee.c:825 config/atof-vax.c:449 config/tc-arm.c:1285
+#: config/atof-ieee.c:825 config/atof-vax.c:449 config/tc-arm.c:1269
#: config/tc-ia64.c:11577 config/tc-tic30.c:1241 config/tc-tic4x.c:2570
msgid "Unrecognized or unsupported floating point constant"
msgstr ""
@@ -825,7 +824,7 @@ msgid "Symbol `%s' can not be both weak and common"
msgstr ""
#: config/obj-coff.c:206 config/obj-coff.c:1684 config/tc-tic54x.c:4002
-#: read.c:2991
+#: read.c:2993
#, c-format
msgid "error setting flags for \"%s\": %s"
msgstr ""
@@ -952,21 +951,21 @@ msgstr ""
msgid "bad .common segment %s"
msgstr ""
-#: config/obj-elf.c:394 config/tc-aarch64.c:2196 config/tc-kvx.c:2243
+#: config/obj-elf.c:394 config/tc-aarch64.c:2271 config/tc-kvx.c:2244
msgid "Missing symbol name in directive"
msgstr ""
-#: config/obj-elf.c:630
+#: config/obj-elf.c:724
#, c-format
msgid "setting incorrect section type for %s"
msgstr ""
-#: config/obj-elf.c:635
+#: config/obj-elf.c:729
#, c-format
msgid "ignoring incorrect section type for %s"
msgstr ""
-#: config/obj-elf.c:694
+#: config/obj-elf.c:788
#, c-format
msgid "setting incorrect section attributes for %s"
msgstr ""
@@ -975,282 +974,282 @@ msgstr ""
#. assembly might get the section type wrong; Even high
#. profile projects like glibc have done so in the past.
#. So don't error in this case.
-#: config/obj-elf.c:788
+#: config/obj-elf.c:882
#, c-format
msgid "ignoring changed section type for %s"
msgstr ""
#. Do error when assembly isn't self-consistent.
-#: config/obj-elf.c:791
+#: config/obj-elf.c:885
#, c-format
msgid "changed section type for %s"
msgstr ""
-#: config/obj-elf.c:806
+#: config/obj-elf.c:900
#, c-format
msgid "ignoring changed section attributes for %s"
msgstr ""
-#: config/obj-elf.c:808
+#: config/obj-elf.c:902
#, c-format
msgid "changed section attributes for %s"
msgstr ""
-#: config/obj-elf.c:816
+#: config/obj-elf.c:910
#, c-format
msgid "changed section entity size for %s"
msgstr ""
-#: config/obj-elf.c:898
+#: config/obj-elf.c:992
msgid "unrecognized .section attribute: want a,e,o,w,x,M,S,G,T or number"
msgstr ""
-#: config/obj-elf.c:984
+#: config/obj-elf.c:1078
msgid "extraneous characters at end of numeric section type"
msgstr ""
-#: config/obj-elf.c:990 read.c:2975
+#: config/obj-elf.c:1084 read.c:2977
msgid "unrecognized section type"
msgstr ""
-#: config/obj-elf.c:1015
+#: config/obj-elf.c:1109
msgid "unrecognized section attribute"
msgstr ""
-#: config/obj-elf.c:1047 config/tc-alpha.c:4208
+#: config/obj-elf.c:1141 config/tc-alpha.c:4208
msgid "missing name"
msgstr ""
-#: config/obj-elf.c:1094
+#: config/obj-elf.c:1211
msgid "group name not parseable"
msgstr ""
-#: config/obj-elf.c:1101
+#: config/obj-elf.c:1218
#, c-format
msgid "section %s already has a group (%s)"
msgstr ""
-#: config/obj-elf.c:1156
+#: config/obj-elf.c:1271
#, c-format
msgid "section name '%s' already defined as another symbol"
msgstr ""
-#: config/obj-elf.c:1259
+#: config/obj-elf.c:1374
msgid "invalid merge entity size"
msgstr ""
-#: config/obj-elf.c:1272
+#: config/obj-elf.c:1387
msgid "entity size for SHF_MERGE not specified"
msgstr ""
-#: config/obj-elf.c:1314
+#: config/obj-elf.c:1429
msgid "? section flag ignored with G present"
msgstr ""
-#: config/obj-elf.c:1351
+#: config/obj-elf.c:1466
msgid "group name for SHF_GROUP not specified"
msgstr ""
-#: config/obj-elf.c:1377
+#: config/obj-elf.c:1492
#, c-format
msgid "unsupported mbind section info: %s"
msgstr ""
-#: config/obj-elf.c:1430
+#: config/obj-elf.c:1545
#, c-format
msgid "unsupported section id: %s"
msgstr ""
-#: config/obj-elf.c:1456
+#: config/obj-elf.c:1571
msgid "character following name is not '#'"
msgstr ""
-#: config/obj-elf.c:1484
+#: config/obj-elf.c:1599
#, c-format
msgid "SHF_ALLOC isn't set for GNU_MBIND section: %s"
msgstr ""
-#: config/obj-elf.c:1491
+#: config/obj-elf.c:1606
#, c-format
msgid "%s section is supported only by GNU and FreeBSD targets"
msgstr ""
-#: config/obj-elf.c:1629
+#: config/obj-elf.c:1744
msgid ".previous without corresponding .section; ignored"
msgstr ""
-#: config/obj-elf.c:1655
+#: config/obj-elf.c:1770
msgid ".popsection without corresponding .pushsection; ignored"
msgstr ""
-#: config/obj-elf.c:1699 config/obj-elf.c:1794
+#: config/obj-elf.c:1814 config/obj-elf.c:1909
#, c-format
msgid "missing version name in `%s' for symbol `%s'"
msgstr ""
-#: config/obj-elf.c:1718
+#: config/obj-elf.c:1833
#, c-format
msgid "only one version name with `@@@' is allowed for symbol `%s'"
msgstr ""
-#: config/obj-elf.c:1726
+#: config/obj-elf.c:1841
#, c-format
msgid "invalid version name '%s' for symbol `%s'"
msgstr ""
-#: config/obj-elf.c:1768
+#: config/obj-elf.c:1883
msgid "expected comma after name in .symver"
msgstr ""
-#: config/obj-elf.c:1785 config/obj-elf.c:2713
+#: config/obj-elf.c:1900 config/obj-elf.c:2844
#, c-format
msgid "`%s' can't be versioned to common symbol '%s'"
msgstr ""
-#: config/obj-elf.c:1862
+#: config/obj-elf.c:1977
#, c-format
msgid "expected `%s' to have already been set for .vtable_inherit"
msgstr ""
-#: config/obj-elf.c:1872
+#: config/obj-elf.c:1987
msgid "expected comma after name in .vtable_inherit"
msgstr ""
-#: config/obj-elf.c:1933
+#: config/obj-elf.c:2048
msgid "expected comma after name in .vtable_entry"
msgstr ""
-#: config/obj-elf.c:2072
+#: config/obj-elf.c:2187
#, c-format
msgid "Attribute name not recognised: %s"
msgstr ""
-#: config/obj-elf.c:2089
+#: config/obj-elf.c:2204
msgid "expected numeric constant"
msgstr ""
-#: config/obj-elf.c:2098 config/tc-arm.c:7122
+#: config/obj-elf.c:2213 config/tc-arm.c:6968
msgid "expected comma"
msgstr ""
-#: config/obj-elf.c:2129 config/tc-arc.c:4945 config/tc-arc.c:4956
-#: config/tc-arc.c:5028 config/tc-arc.c:5079 config/tc-arm.c:32980
-#: config/tc-arm.c:32991 config/tc-csky.c:1697 config/tc-csky.c:1709
-#: config/tc-csky.c:1880 config/tc-mips.c:20631 config/tc-msp430.c:5152
-#: config/tc-riscv.c:5127 config/tc-riscv.c:5169 config/tc-sparc.c:1134
+#: config/obj-elf.c:2244 config/tc-arc.c:4946 config/tc-arc.c:4957
+#: config/tc-arc.c:5029 config/tc-arc.c:5080 config/tc-arm.c:32169
+#: config/tc-arm.c:32180 config/tc-csky.c:1697 config/tc-csky.c:1709
+#: config/tc-csky.c:1880 config/tc-mips.c:20647 config/tc-msp430.c:5152
+#: config/tc-riscv.c:5376 config/tc-riscv.c:5418 config/tc-sparc.c:1134
#: config/tc-tic6x.c:4385
#, c-format
msgid "error adding attribute: %s"
msgstr ""
-#: config/obj-elf.c:2135
+#: config/obj-elf.c:2250
msgid "bad string constant"
msgstr ""
-#: config/obj-elf.c:2139
+#: config/obj-elf.c:2254
msgid "expected <tag> , <value>"
msgstr ""
-#: config/obj-elf.c:2268
+#: config/obj-elf.c:2383
msgid "expected quoted string"
msgstr ""
-#: config/obj-elf.c:2288
+#: config/obj-elf.c:2403
#, c-format
msgid "expected comma after name `%s' in .size directive"
msgstr ""
-#: config/obj-elf.c:2297
+#: config/obj-elf.c:2412
msgid "missing expression in .size directive"
msgstr ""
-#: config/obj-elf.c:2424
+#: config/obj-elf.c:2539
#, c-format
msgid "symbol '%s' is already defined"
msgstr ""
-#: config/obj-elf.c:2444
+#: config/obj-elf.c:2559
#, c-format
msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets"
msgstr ""
-#: config/obj-elf.c:2448
+#: config/obj-elf.c:2563
#, c-format
msgid "symbol type \"%s\" is not supported by MIPS targets"
msgstr ""
-#: config/obj-elf.c:2460
+#: config/obj-elf.c:2575
#, c-format
msgid "symbol type \"%s\" is supported only by GNU targets"
msgstr ""
-#: config/obj-elf.c:2470 config/tc-kvx.c:2287
+#: config/obj-elf.c:2585 config/tc-kvx.c:2288
#, c-format
msgid "unrecognized symbol type \"%s\""
msgstr ""
-#: config/obj-elf.c:2491
+#: config/obj-elf.c:2606
#, c-format
msgid "cannot change type of common symbol '%s'"
msgstr ""
-#: config/obj-elf.c:2503
+#: config/obj-elf.c:2618
#, c-format
msgid "symbol '%s' already has its type set"
msgstr ""
-#: config/obj-elf.c:2686 config/obj-elf.c:2689
+#: config/obj-elf.c:2720
#, c-format
-msgid ".size expression for %s does not evaluate to a constant"
+msgid "undefined linked-to symbol `%s' on section `%s'"
msgstr ""
-#: config/obj-elf.c:2778
+#: config/obj-elf.c:2817 config/obj-elf.c:2820
#, c-format
-msgid "symbol '%s' with multiple versions cannot be used in relocation"
+msgid ".size expression for %s does not evaluate to a constant"
msgstr ""
-#: config/obj-elf.c:2796 ecoff.c:3576
+#: config/obj-elf.c:2909
#, c-format
-msgid "symbol `%s' can not be both weak and common"
+msgid "symbol '%s' with multiple versions cannot be used in relocation"
msgstr ""
-#: config/obj-elf.c:2844
+#: config/obj-elf.c:2927 ecoff.c:3576
#, c-format
-msgid "undefined linked-to symbol `%s' on section `%s'"
+msgid "symbol `%s' can not be both weak and common"
msgstr ""
-#: config/obj-elf.c:2922
+#: config/obj-elf.c:2971
#, c-format
msgid "assuming all members of group `%s' are COMDAT"
msgstr ""
-#: config/obj-elf.c:2934
+#: config/obj-elf.c:2983
#, c-format
msgid "can't create group: %s"
msgstr ""
-#: config/obj-elf.c:3011
+#: config/obj-elf.c:3060
#, c-format
msgid ""
"invalid attempt to declare external version name as default in symbol `%s'"
msgstr ""
-#: config/obj-elf.c:3021
+#: config/obj-elf.c:3070
#, c-format
msgid "multiple versions [`%s'|`%s'] for symbol `%s'"
msgstr ""
-#: config/obj-elf.c:3110
+#: config/obj-elf.c:3159
#, c-format
msgid "failed to set up debugging information: %s"
msgstr ""
-#: config/obj-elf.c:3130
+#: config/obj-elf.c:3179
#, c-format
msgid "can't start writing .mdebug section: %s"
msgstr ""
-#: config/obj-elf.c:3138
+#: config/obj-elf.c:3187
#, c-format
msgid "could not write .mdebug section: %s"
msgstr ""
@@ -1308,31 +1307,31 @@ msgid "missing sizeof_stub expression"
msgstr ""
#: config/obj-macho.c:478 config/tc-ia64.c:1080 config/tc-ia64.c:11738
-#: config/tc-score.c:6073 expr.c:1246 read.c:1730
+#: config/tc-score.c:6073 expr.c:1245 read.c:1732
msgid "expected symbol name"
msgstr ""
-#: config/obj-macho.c:491 read.c:548
+#: config/obj-macho.c:491 read.c:549
msgid "bad or irreducible absolute expression"
msgstr ""
-#: config/obj-macho.c:497 config/tc-score.c:6090 read.c:1769
+#: config/obj-macho.c:497 config/tc-score.c:6090 read.c:1771
msgid "missing size expression"
msgstr ""
-#: config/obj-macho.c:506 config/tc-ia64.c:1115 read.c:1775
+#: config/obj-macho.c:506 config/tc-ia64.c:1115 read.c:1777
#, c-format
msgid "size (%ld) out of range, ignored"
msgstr ""
#: config/obj-macho.c:516 config/tc-score.c:6228 dwarf2dbg.c:1427 ecoff.c:3345
-#: read.c:1787 read.c:1890 read.c:2664 read.c:3202 read.c:3798 symbols.c:579
+#: read.c:1789 read.c:1892 read.c:2666 read.c:3258 read.c:3854 symbols.c:579
#: symbols.c:674
#, c-format
msgid "symbol `%s' is already defined"
msgstr ""
-#: config/obj-macho.c:526 read.c:1802
+#: config/obj-macho.c:526 read.c:1804
#, c-format
msgid "size of \"%s\" is already %ld; not changing to %ld"
msgstr ""
@@ -1486,61 +1485,61 @@ msgstr ""
msgid "attaching copyright header %s: %s"
msgstr ""
-#: config/tc-aarch64.c:429
+#: config/tc-aarch64.c:431
#, c-format
msgid "expected an unsuffixed ZA tile at operand %d"
msgstr ""
-#: config/tc-aarch64.c:433
+#: config/tc-aarch64.c:435
#, c-format
msgid "missing horizontal or vertical suffix at operand %d"
msgstr ""
-#: config/tc-aarch64.c:438
+#: config/tc-aarch64.c:440
#, c-format
msgid "expected 'za' rather than a ZA tile at operand %d"
msgstr ""
-#: config/tc-aarch64.c:442
+#: config/tc-aarch64.c:444
#, c-format
msgid ""
"expected a predicate-as-counter rather than predicate-as-mask register at "
"operand %d"
msgstr ""
-#: config/tc-aarch64.c:447
+#: config/tc-aarch64.c:449
#, c-format
msgid ""
"expected a predicate-as-mask rather than predicate-as-counter register at "
"operand %d"
msgstr ""
-#: config/tc-aarch64.c:452
+#: config/tc-aarch64.c:454
#, c-format
msgid "expected a 64-bit integer register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:454
+#: config/tc-aarch64.c:456
#, c-format
msgid "expected an integer or zero register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:456
+#: config/tc-aarch64.c:458
#, c-format
msgid "expected an integer or stack pointer register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:460
+#: config/tc-aarch64.c:462
#, c-format
msgid "expected a scalar SIMD or floating-point register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:463
+#: config/tc-aarch64.c:465
#, c-format
msgid "expected an Advanced SIMD vector register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:465
+#: config/tc-aarch64.c:467
#, c-format
msgid "expected an SVE vector register at operand %d"
msgstr ""
@@ -1549,1018 +1548,1038 @@ msgstr ""
#. predicate". We report a more specific error if P is used where
#. PN is expected, and vice versa, so the issue at this point is
#. "predicate-like" vs. "not predicate-like".
-#: config/tc-aarch64.c:472
+#: config/tc-aarch64.c:474
#, c-format
msgid "expected an SVE predicate register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:474
+#: config/tc-aarch64.c:476
#, c-format
msgid "expected an SVE predicate-as-counter register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:476
+#: config/tc-aarch64.c:478
#, c-format
msgid "expected a vector register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:478
+#: config/tc-aarch64.c:480
#, c-format
msgid "expected an SVE vector or predicate register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:480
+#: config/tc-aarch64.c:482
#, c-format
msgid "expected a vector or predicate register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:484
+#: config/tc-aarch64.c:486
#, c-format
msgid "expected a ZA array vector at operand %d"
msgstr ""
-#: config/tc-aarch64.c:486
+#: config/tc-aarch64.c:488
#, c-format
msgid "expected ZT0 or a ZA mask at operand %d"
msgstr ""
-#: config/tc-aarch64.c:488
+#: config/tc-aarch64.c:490
#, c-format
msgid "expected a ZA tile at operand %d"
msgstr ""
-#: config/tc-aarch64.c:490
+#: config/tc-aarch64.c:492
#, c-format
msgid "expected a ZA tile slice at operand %d"
msgstr ""
-#: config/tc-aarch64.c:494
+#: config/tc-aarch64.c:496
#, c-format
msgid ""
"expected an integer register or Advanced SIMD vector register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:497
+#: config/tc-aarch64.c:499
#, c-format
msgid "expected an integer register or SVE vector register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:500
+#: config/tc-aarch64.c:502
#, c-format
msgid "expected an integer or vector register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:502
+#: config/tc-aarch64.c:504
#, c-format
msgid "expected an integer or predicate register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:504
+#: config/tc-aarch64.c:506
#, c-format
msgid "expected an integer, vector or predicate register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:509
+#: config/tc-aarch64.c:511
#, c-format
msgid "expected an SVE vector register or ZA tile slice at operand %d"
msgstr ""
-#: config/tc-aarch64.c:707 config/tc-aarch64.c:709 config/tc-arm.c:1202
-#: config/tc-score.c:6447 expr.c:1409 read.c:2646
+#: config/tc-aarch64.c:709 config/tc-aarch64.c:711 config/tc-arm.c:1186
+#: config/tc-score.c:6447 expr.c:1408 read.c:2648
msgid "bad expression"
msgstr ""
-#: config/tc-aarch64.c:720 config/tc-sparc.c:3379
+#: config/tc-aarch64.c:722 config/tc-sparc.c:3379
msgid "bad segment"
msgstr ""
-#: config/tc-aarch64.c:864
+#: config/tc-aarch64.c:870
msgid "bad vector arrangement type"
msgstr ""
-#: config/tc-aarch64.c:1036
+#: config/tc-aarch64.c:1042
#, c-format
msgid "bad size %d in vector width specifier"
msgstr ""
-#: config/tc-aarch64.c:1069
+#: config/tc-aarch64.c:1075
#, c-format
msgid "unexpected character `%c' in element size"
msgstr ""
-#: config/tc-aarch64.c:1071
+#: config/tc-aarch64.c:1077
msgid "missing element size"
msgstr ""
-#: config/tc-aarch64.c:1080
+#: config/tc-aarch64.c:1087
#, c-format
msgid "invalid element size %d and vector size combination %c"
msgstr ""
-#: config/tc-aarch64.c:1116
+#: config/tc-aarch64.c:1123
#, c-format
msgid "unexpected character `%c' in predication type"
msgstr ""
-#: config/tc-aarch64.c:1119
+#: config/tc-aarch64.c:1126
msgid "missing predication type"
msgstr ""
-#: config/tc-aarch64.c:1162 config/tc-aarch64.c:2242 config/tc-aarch64.c:2502
-#: config/tc-arm.c:1779 config/tc-arm.c:3986 config/tc-arm.c:5264
-#: config/tc-arm.c:7411
+#: config/tc-aarch64.c:1169 config/tc-aarch64.c:2317 config/tc-aarch64.c:2577
+#: config/tc-arm.c:1763 config/tc-arm.c:3970 config/tc-arm.c:5203
+#: config/tc-arm.c:7249
msgid "constant expression required"
msgstr ""
-#: config/tc-aarch64.c:1212
+#: config/tc-aarch64.c:1223
msgid "syntax error in register list"
msgstr ""
-#: config/tc-aarch64.c:1242
+#: config/tc-aarch64.c:1253
msgid "ZA tile number out of range"
msgstr ""
-#: config/tc-aarch64.c:1283
+#: config/tc-aarch64.c:1297
msgid "this type of register can't be indexed"
msgstr ""
-#: config/tc-aarch64.c:1289
+#: config/tc-aarch64.c:1303
msgid "index not allowed inside register list"
msgstr ""
#. Indexed vector register expected.
-#: config/tc-aarch64.c:1304
+#: config/tc-aarch64.c:1318
msgid "indexed vector register expected"
msgstr ""
-#: config/tc-aarch64.c:1311
+#: config/tc-aarch64.c:1325
msgid "invalid use of vector register"
msgstr ""
-#: config/tc-aarch64.c:1420
+#: config/tc-aarch64.c:1447
msgid "invalid vector register in list"
msgstr ""
-#: config/tc-aarch64.c:1428
+#: config/tc-aarch64.c:1455
msgid "invalid scalar register in list"
msgstr ""
-#: config/tc-aarch64.c:1441
+#: config/tc-aarch64.c:1468
msgid "invalid range in vector register list"
msgstr ""
-#: config/tc-aarch64.c:1454
+#: config/tc-aarch64.c:1481
msgid "type mismatch in vector register list"
msgstr ""
-#: config/tc-aarch64.c:1475
+#: config/tc-aarch64.c:1502
msgid "end of vector register list not found"
msgstr ""
-#: config/tc-aarch64.c:1493
+#: config/tc-aarch64.c:1520
msgid "expected index"
msgstr ""
-#: config/tc-aarch64.c:1500
+#: config/tc-aarch64.c:1527
msgid "too many registers in vector register list"
msgstr ""
-#: config/tc-aarch64.c:1505
+#: config/tc-aarch64.c:1532
msgid "empty vector register list"
msgstr ""
-#: config/tc-aarch64.c:1527 config/tc-arm.c:2548
+#: config/tc-aarch64.c:1602 config/tc-arm.c:2532
#, c-format
msgid "ignoring attempt to redefine built-in register '%s'"
msgstr ""
-#: config/tc-aarch64.c:1533 config/tc-arm.c:2553
+#: config/tc-aarch64.c:1608 config/tc-arm.c:2537
#, c-format
msgid "ignoring redefinition of register alias '%s'"
msgstr ""
-#: config/tc-aarch64.c:1578 config/tc-arm.c:2618
+#: config/tc-aarch64.c:1653 config/tc-arm.c:2602
#, c-format
msgid "unknown register '%s' -- .req ignored"
msgstr ""
-#: config/tc-aarch64.c:1636 config/tc-arm.c:2826
+#: config/tc-aarch64.c:1711 config/tc-arm.c:2810
msgid "invalid syntax for .req directive"
msgstr ""
-#: config/tc-aarch64.c:1657 config/tc-arm.c:2859
+#: config/tc-aarch64.c:1732 config/tc-arm.c:2843
msgid "invalid syntax for .unreq directive"
msgstr ""
-#: config/tc-aarch64.c:1663 config/tc-arm.c:2866
+#: config/tc-aarch64.c:1738 config/tc-arm.c:2850
#, c-format
msgid "unknown register alias '%s'"
msgstr ""
-#: config/tc-aarch64.c:1665
+#: config/tc-aarch64.c:1740
#, c-format
msgid "ignoring attempt to undefine built-in register '%s'"
msgstr ""
-#: config/tc-aarch64.c:1979 config/tc-arm.c:3597 config/tc-arm.c:3624
-#: config/tc-arm.c:3637
+#: config/tc-aarch64.c:2054 config/tc-arm.c:3581 config/tc-arm.c:3608
+#: config/tc-arm.c:3621
msgid "literal pool overflow"
msgstr ""
-#: config/tc-aarch64.c:2160 config/tc-aarch64.c:7225 config/tc-arm.c:3859
-#: config/tc-arm.c:7844
+#: config/tc-aarch64.c:2235 config/tc-aarch64.c:7452 config/tc-arm.c:3843
+#: config/tc-arm.c:7675
msgid "unrecognized relocation suffix"
msgstr ""
-#: config/tc-aarch64.c:2162
+#: config/tc-aarch64.c:2237
msgid "unimplemented relocation suffix"
msgstr ""
-#: config/tc-aarch64.c:2470 config/tc-aarch64.c:2660 config/tc-aarch64.c:2704
+#: config/tc-aarch64.c:2545 config/tc-aarch64.c:2735 config/tc-aarch64.c:2779
#: config/tc-csky.c:2336
msgid "immediate operand required"
msgstr ""
-#: config/tc-aarch64.c:2478
+#: config/tc-aarch64.c:2553
msgid "missing immediate expression"
msgstr ""
-#: config/tc-aarch64.c:2684 config/tc-aarch64.c:7048 config/tc-aarch64.c:7068
+#: config/tc-aarch64.c:2759 config/tc-aarch64.c:7275 config/tc-aarch64.c:7295
msgid "invalid floating-point constant"
msgstr ""
-#: config/tc-aarch64.c:3491 config/tc-arm.c:5604 config/tc-arm.c:5614
+#: config/tc-aarch64.c:3566 config/tc-arm.c:5450 config/tc-arm.c:5460
msgid "shift expression expected"
msgstr ""
-#: config/tc-aarch64.c:3499
+#: config/tc-aarch64.c:3574
msgid "shift operator expected"
msgstr ""
-#: config/tc-aarch64.c:3507
+#: config/tc-aarch64.c:3582
msgid "invalid use of 'MSL'"
msgstr ""
-#: config/tc-aarch64.c:3515
+#: config/tc-aarch64.c:3590
msgid "invalid use of 'MUL'"
msgstr ""
-#: config/tc-aarch64.c:3524
+#: config/tc-aarch64.c:3599
msgid "extending shift is not permitted"
msgstr ""
-#: config/tc-aarch64.c:3532
+#: config/tc-aarch64.c:3607
msgid "'ROR' shift is not permitted"
msgstr ""
-#: config/tc-aarch64.c:3540
+#: config/tc-aarch64.c:3615
msgid "only 'LSL' shift is permitted"
msgstr ""
-#: config/tc-aarch64.c:3548
+#: config/tc-aarch64.c:3623
msgid "only 'MUL' is permitted"
msgstr ""
-#: config/tc-aarch64.c:3566
+#: config/tc-aarch64.c:3641
msgid "only 'MUL VL' is permitted"
msgstr ""
-#: config/tc-aarch64.c:3574
+#: config/tc-aarch64.c:3649
msgid "invalid shift for the register offset addressing mode"
msgstr ""
-#: config/tc-aarch64.c:3582
+#: config/tc-aarch64.c:3657
msgid "invalid shift operator"
msgstr ""
-#: config/tc-aarch64.c:3615
+#: config/tc-aarch64.c:3690
msgid "missing shift amount"
msgstr ""
-#: config/tc-aarch64.c:3622
+#: config/tc-aarch64.c:3697
msgid "constant shift amount required"
msgstr ""
-#: config/tc-aarch64.c:3631
+#: config/tc-aarch64.c:3706
msgid "shift amount out of range 0 to 63"
msgstr ""
-#: config/tc-aarch64.c:3681
+#: config/tc-aarch64.c:3756
msgid "unexpected shift operator"
msgstr ""
-#: config/tc-aarch64.c:3717
+#: config/tc-aarch64.c:3792
msgid "unexpected register in the immediate operand"
msgstr ""
-#: config/tc-aarch64.c:3742
+#: config/tc-aarch64.c:3817
msgid "integer register expected in the extended/shifted operand register"
msgstr ""
-#: config/tc-aarch64.c:3777 config/tc-aarch64.c:3914 config/tc-aarch64.c:4053
-#: config/tc-aarch64.c:4250 config/tc-aarch64.c:4291
+#: config/tc-aarch64.c:3855
+msgid "integer register expected in the shifted operand register"
+msgstr ""
+
+#: config/tc-aarch64.c:3887 config/tc-aarch64.c:4073 config/tc-aarch64.c:4212
+#: config/tc-aarch64.c:4409 config/tc-aarch64.c:4450
msgid "unknown relocation modifier"
msgstr ""
-#: config/tc-aarch64.c:3784 config/tc-aarch64.c:3933 config/tc-aarch64.c:4060
-#: config/tc-aarch64.c:4257 config/tc-aarch64.c:4298
+#: config/tc-aarch64.c:3894 config/tc-aarch64.c:4092 config/tc-aarch64.c:4219
+#: config/tc-aarch64.c:4416 config/tc-aarch64.c:4457
msgid "this relocation modifier is not allowed on this instruction"
msgstr ""
-#: config/tc-aarch64.c:3941 config/tc-aarch64.c:4071
+#: config/tc-aarch64.c:4100 config/tc-aarch64.c:4230
msgid "invalid relocation expression"
msgstr ""
-#: config/tc-aarch64.c:3957
+#: config/tc-aarch64.c:4116
msgid "invalid address"
msgstr ""
-#: config/tc-aarch64.c:3975
+#: config/tc-aarch64.c:4134
msgid "expected a 64-bit base register"
msgstr ""
-#: config/tc-aarch64.c:3977
+#: config/tc-aarch64.c:4136
msgid "invalid base register"
msgstr ""
-#: config/tc-aarch64.c:3979
+#: config/tc-aarch64.c:4138
msgid "expected a base register"
msgstr ""
-#: config/tc-aarch64.c:3995 config/tc-aarch64.c:4131
+#: config/tc-aarch64.c:4154 config/tc-aarch64.c:4290
msgid "invalid offset register"
msgstr ""
-#: config/tc-aarch64.c:4022
+#: config/tc-aarch64.c:4181
msgid "invalid use of 32-bit register offset"
msgstr ""
-#: config/tc-aarch64.c:4031
+#: config/tc-aarch64.c:4190
msgid "offset has different size from base"
msgstr ""
-#: config/tc-aarch64.c:4037
+#: config/tc-aarch64.c:4196
msgid "invalid use of 64-bit register offset"
msgstr ""
#. [Xn],#expr
-#: config/tc-aarch64.c:4084 config/tc-aarch64.c:4141
+#: config/tc-aarch64.c:4243 config/tc-aarch64.c:4300
msgid "invalid expression in the address"
msgstr ""
-#: config/tc-aarch64.c:4098 config/tc-arm.c:6203 config/tc-arm.c:6802
+#: config/tc-aarch64.c:4257 config/tc-arm.c:6049 config/tc-arm.c:6648
msgid "']' expected"
msgstr ""
-#: config/tc-aarch64.c:4106
+#: config/tc-aarch64.c:4265
msgid "register offset not allowed in pre-indexed addressing mode"
msgstr ""
-#: config/tc-aarch64.c:4121 config/tc-arm.c:6239
+#: config/tc-aarch64.c:4280 config/tc-arm.c:6085
msgid "cannot combine pre- and post-indexing"
msgstr ""
#. Reject [Rn]!
-#: config/tc-aarch64.c:4165
+#: config/tc-aarch64.c:4324
msgid "missing offset in the pre-indexed address"
msgstr ""
-#: config/tc-aarch64.c:4506
+#: config/tc-aarch64.c:4665
msgid "expected '['"
msgstr ""
-#: config/tc-aarch64.c:4514
+#: config/tc-aarch64.c:4673
msgid "expected a 32-bit selection register"
msgstr ""
-#: config/tc-aarch64.c:4521
+#: config/tc-aarch64.c:4680
msgid "missing immediate offset"
msgstr ""
-#: config/tc-aarch64.c:4527 config/tc-aarch64.c:4536
+#: config/tc-aarch64.c:4686 config/tc-aarch64.c:4695
msgid "expected a constant immediate offset"
msgstr ""
-#: config/tc-aarch64.c:4541
+#: config/tc-aarch64.c:4700
msgid "the last offset is less than the first offset"
msgstr ""
-#: config/tc-aarch64.c:4547
+#: config/tc-aarch64.c:4706
msgid "the last offset is equal to the first offset"
msgstr ""
-#: config/tc-aarch64.c:4569
+#: config/tc-aarch64.c:4728
msgid "invalid vector group size"
msgstr ""
-#: config/tc-aarch64.c:4576
+#: config/tc-aarch64.c:4735
msgid "expected ']'"
msgstr ""
-#: config/tc-aarch64.c:4636 config/tc-aarch64.c:4744
+#: config/tc-aarch64.c:4795 config/tc-aarch64.c:4903
msgid "expected '}'"
msgstr ""
-#: config/tc-aarch64.c:4695
+#: config/tc-aarch64.c:4854
msgid "ZA tile masks do not operate at .Q granularity"
msgstr ""
-#: config/tc-aarch64.c:4701
+#: config/tc-aarch64.c:4860
msgid "missing ZA tile size"
msgstr ""
-#: config/tc-aarch64.c:4706
+#: config/tc-aarch64.c:4865
msgid "invalid ZA tile"
msgstr ""
-#: config/tc-aarch64.c:4731
+#: config/tc-aarch64.c:4890
msgid "expected '{'"
msgstr ""
-#: config/tc-aarch64.c:4772
+#: config/tc-aarch64.c:4931
msgid "expected SM or ZA operand"
msgstr ""
-#: config/tc-aarch64.c:4835
+#: config/tc-aarch64.c:4994
#, c-format
msgid "selected processor does not support PSTATE field name '%s'"
msgstr ""
-#: config/tc-aarch64.c:4840 config/tc-aarch64.c:4885
+#: config/tc-aarch64.c:4999 config/tc-aarch64.c:5044
#, c-format
msgid "selected processor does not support system register name '%s'"
msgstr ""
-#: config/tc-aarch64.c:4843
+#: config/tc-aarch64.c:5002
#, c-format
msgid "128-bit-wide accsess not allowed on selected system register '%s'"
msgstr ""
-#: config/tc-aarch64.c:4846 config/tc-aarch64.c:4888
+#: config/tc-aarch64.c:5005 config/tc-aarch64.c:5047
#, c-format
msgid ""
"system register name '%s' is deprecated and may be removed in a future "
"release"
msgstr ""
-#: config/tc-aarch64.c:4927
+#: config/tc-aarch64.c:5086
msgid "immediate value out of range "
msgstr ""
-#: config/tc-aarch64.c:5527 messages.c:148
+#: config/tc-aarch64.c:5686 messages.c:148
#, c-format
msgid "Info: "
msgstr ""
-#: config/tc-aarch64.c:5545
+#: config/tc-aarch64.c:5704
#, c-format
msgid "missing braces at operand %d"
msgstr ""
-#: config/tc-aarch64.c:5556
+#: config/tc-aarch64.c:5715
#, c-format
msgid "unexpected register type at operand %d"
msgstr ""
-#: config/tc-aarch64.c:5567
+#: config/tc-aarch64.c:5726
#, c-format
msgid "invalid register list at operand %d"
msgstr ""
-#: config/tc-aarch64.c:5580
+#: config/tc-aarch64.c:5739
#, c-format
msgid "expected a register at operand %d"
msgstr ""
-#: config/tc-aarch64.c:5587
+#: config/tc-aarch64.c:5746
#, c-format
msgid "expected '{' at operand %d"
msgstr ""
-#: config/tc-aarch64.c:5589
+#: config/tc-aarch64.c:5748
#, c-format
msgid "expected a register or register list at operand %d"
msgstr ""
-#: config/tc-aarch64.c:5614
+#: config/tc-aarch64.c:5773
#, c-format
msgid "this `%s' should have an immediately preceding `%s' -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5620
+#: config/tc-aarch64.c:5779
#, c-format
msgid "the preceding `%s' should be followed by `%s` rather than `%s` -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5632 config/tc-aarch64.c:5647 config/tc-score.c:2748
+#: config/tc-aarch64.c:5791 config/tc-aarch64.c:5806 config/tc-score.c:2748
#: config/tc-score.c:6436
#, c-format
msgid "%s -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5649
+#: config/tc-aarch64.c:5808
#, c-format
msgid "%s at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5655
+#: config/tc-aarch64.c:5814
#, c-format
msgid "operand %d must be %s -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5661
+#: config/tc-aarch64.c:5820
#, c-format
msgid "operand mismatch -- `%s'"
msgstr ""
#. Print the hint.
-#: config/tc-aarch64.c:5721
+#: config/tc-aarch64.c:5880
msgid " did you mean this?"
msgstr ""
-#: config/tc-aarch64.c:5724 config/tc-aarch64.c:5751
+#: config/tc-aarch64.c:5883 config/tc-aarch64.c:5910
#, c-format
msgid " %s"
msgstr ""
-#: config/tc-aarch64.c:5729
+#: config/tc-aarch64.c:5888
msgid " other valid variant(s):"
msgstr ""
-#: config/tc-aarch64.c:5758
+#: config/tc-aarch64.c:5917
#, c-format
msgid "operand %d must have the same immediate value as operand 1 -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5764
+#: config/tc-aarch64.c:5923
#, c-format
msgid "operand %d must be the same register as operand 1 -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5769
+#: config/tc-aarch64.c:5928
#, c-format
msgid "%s%d-%s%d expected at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5776
+#: config/tc-aarch64.c:5935
#, c-format
msgid "%s out of range %d to %d at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5777 config/tc-aarch64.c:5781 config/tc-aarch64.c:8111
+#: config/tc-aarch64.c:5936 config/tc-aarch64.c:5940 config/tc-aarch64.c:8351
msgid "immediate value"
msgstr ""
-#: config/tc-aarch64.c:5780
+#: config/tc-aarch64.c:5939
#, c-format
msgid "%s must be %d at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5787
+#: config/tc-aarch64.c:5946
#, c-format
msgid "unexpected vector group size at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5790
+#: config/tc-aarch64.c:5949
#, c-format
msgid "operand %d must have a vector group size of %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5796
+#: config/tc-aarch64.c:5955
#, c-format
msgid "expected a single-register list at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5799
+#: config/tc-aarch64.c:5958
#, c-format
msgid "expected a list of %d registers at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5802
+#: config/tc-aarch64.c:5961
#, c-format
msgid "expected a list of %d or %d registers at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5806
+#: config/tc-aarch64.c:5965
#, c-format
msgid "invalid number of registers in the list at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5812
+#: config/tc-aarch64.c:5971
#, c-format
msgid "the register list must have a stride of %d at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5815
+#: config/tc-aarch64.c:5974
#, c-format
msgid "the register list must have a stride of %d or %d at operand %d -- `%s`"
msgstr ""
-#: config/tc-aarch64.c:5819
+#: config/tc-aarch64.c:5978
#, c-format
msgid "invalid register stride at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:5824
+#: config/tc-aarch64.c:5983
#, c-format
msgid "immediate value must be a multiple of %d at operand %d -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:6266
+#: config/tc-aarch64.c:6427
msgid "the specified relocation type is not allowed for MOVK"
msgstr ""
-#: config/tc-aarch64.c:6314 config/tc-aarch64.c:6325
+#: config/tc-aarch64.c:6475 config/tc-aarch64.c:6486
msgid "the specified relocation type is not allowed for 32-bit register"
msgstr ""
-#: config/tc-aarch64.c:6420
+#: config/tc-aarch64.c:6581
msgid "relocation qualifier does not match instruction size"
msgstr ""
-#: config/tc-aarch64.c:6521
+#: config/tc-aarch64.c:6682
msgid "comma expected between operands"
msgstr ""
-#: config/tc-aarch64.c:6556
+#: config/tc-aarch64.c:6718
msgid "invalid Rt register number in 64-byte load/store"
msgstr ""
-#: config/tc-aarch64.c:6682
+#: config/tc-aarch64.c:6855
msgid "the top half of a 128-bit FP/SIMD register is expected"
msgstr ""
-#: config/tc-aarch64.c:6793 config/tc-arm.c:2221 config/tc-arm.c:2266
-#: config/tc-h8300.c:1039
+#: config/tc-aarch64.c:6968 config/tc-aarch64.c:7019 config/tc-arm.c:2205
+#: config/tc-arm.c:2250 config/tc-h8300.c:1039
msgid "invalid register list"
msgstr ""
-#: config/tc-aarch64.c:6800
+#: config/tc-aarch64.c:7026
msgid "expected element type rather than vector type"
msgstr ""
-#: config/tc-aarch64.c:6818
+#: config/tc-aarch64.c:7044
msgid "missing type suffix"
msgstr ""
-#: config/tc-aarch64.c:6840
+#: config/tc-aarch64.c:7066
msgid "C8 - C9 expected"
msgstr ""
-#: config/tc-aarch64.c:6846
+#: config/tc-aarch64.c:7072
msgid "C0 - C7 expected"
msgstr ""
-#: config/tc-aarch64.c:6852
+#: config/tc-aarch64.c:7078
msgid "C0 - C15 expected"
msgstr ""
-#: config/tc-aarch64.c:6963 config/tc-aarch64.c:6987
+#: config/tc-aarch64.c:7190 config/tc-aarch64.c:7214
msgid "immediate zero expected"
msgstr ""
-#: config/tc-aarch64.c:7083
+#: config/tc-aarch64.c:7310
msgid "shift not allowed for bitmask immediate"
msgstr ""
-#: config/tc-aarch64.c:7137
+#: config/tc-aarch64.c:7364
msgid "can't mix relocation modifier with explicit shift"
msgstr ""
-#: config/tc-aarch64.c:7186 config/tc-arm.c:15981 config/tc-arm.c:16006
-#: config/tc-arm.c:16017 config/tc-arm.c:16024
+#: config/tc-aarch64.c:7413 config/tc-arm.c:15710 config/tc-arm.c:15735
+#: config/tc-arm.c:15746 config/tc-arm.c:15753
msgid "invalid condition"
msgstr ""
-#: config/tc-aarch64.c:7212
+#: config/tc-aarch64.c:7439
msgid "invalid pc-relative address"
msgstr ""
#. Only permit "=value" in the literal load instructions.
#. The literal will be generated by programmer_friendly_fixup.
-#: config/tc-aarch64.c:7220
+#: config/tc-aarch64.c:7447
msgid "invalid use of \"=immediate\""
msgstr ""
-#: config/tc-aarch64.c:7283 config/tc-aarch64.c:7308 config/tc-aarch64.c:7330
-#: config/tc-aarch64.c:7362 config/tc-aarch64.c:7380 config/tc-aarch64.c:7404
-#: config/tc-aarch64.c:7424 config/tc-aarch64.c:7444 config/tc-aarch64.c:7463
-#: config/tc-aarch64.c:7486 config/tc-aarch64.c:7540 config/tc-aarch64.c:7547
-#: config/tc-aarch64.c:7575 config/tc-aarch64.c:7596 config/tc-aarch64.c:7621
-#: config/tc-aarch64.c:7639 config/tc-aarch64.c:7647 config/tc-aarch64.c:7664
-#: config/tc-aarch64.c:7688
+#: config/tc-aarch64.c:7510 config/tc-aarch64.c:7535 config/tc-aarch64.c:7557
+#: config/tc-aarch64.c:7589 config/tc-aarch64.c:7607 config/tc-aarch64.c:7631
+#: config/tc-aarch64.c:7651 config/tc-aarch64.c:7671 config/tc-aarch64.c:7690
+#: config/tc-aarch64.c:7713 config/tc-aarch64.c:7767 config/tc-aarch64.c:7774
+#: config/tc-aarch64.c:7802 config/tc-aarch64.c:7824 config/tc-aarch64.c:7849
+#: config/tc-aarch64.c:7867 config/tc-aarch64.c:7875 config/tc-aarch64.c:7892
+#: config/tc-aarch64.c:7916
msgid "invalid addressing mode"
msgstr ""
-#: config/tc-aarch64.c:7346
+#: config/tc-aarch64.c:7573
msgid "the optional immediate offset can only be 0"
msgstr ""
-#: config/tc-aarch64.c:7385 config/tc-aarch64.c:7409 config/tc-aarch64.c:7429
-#: config/tc-aarch64.c:7449
+#: config/tc-aarch64.c:7612 config/tc-aarch64.c:7636 config/tc-aarch64.c:7656
+#: config/tc-aarch64.c:7676
msgid "relocation not allowed"
msgstr ""
-#: config/tc-aarch64.c:7496
+#: config/tc-aarch64.c:7723
msgid "writeback value must be an immediate constant"
msgstr ""
-#: config/tc-aarch64.c:7507 config/tc-aarch64.c:7716
+#: config/tc-aarch64.c:7734 config/tc-aarch64.c:7944
msgid "unknown or missing PSTATE field name"
msgstr ""
#. Make sure this has priority over
#. "invalid addressing mode".
-#: config/tc-aarch64.c:7555
+#: config/tc-aarch64.c:7782
msgid "constant offset required"
msgstr ""
-#: config/tc-aarch64.c:7702
+#: config/tc-aarch64.c:7930
msgid "unknown or missing system register name"
msgstr ""
-#: config/tc-aarch64.c:7755
+#: config/tc-aarch64.c:7983
msgid "unknown or missing operation name"
msgstr ""
-#: config/tc-aarch64.c:7768
+#: config/tc-aarch64.c:7996
msgid "the specified option is not accepted in ISB"
msgstr ""
-#: config/tc-aarch64.c:7780 config/tc-aarch64.c:7797
+#: config/tc-aarch64.c:8008 config/tc-aarch64.c:8025
msgid "the specified option is not accepted in DSB"
msgstr ""
-#: config/tc-aarch64.c:7811
+#: config/tc-aarch64.c:8039
msgid "immediate value must be 16, 20, 24, 28"
msgstr ""
-#: config/tc-aarch64.c:7848 config/tc-aarch64.c:7878
+#: config/tc-aarch64.c:8076 config/tc-aarch64.c:8111
msgid "missing register index"
msgstr ""
-#: config/tc-aarch64.c:7865
+#: config/tc-aarch64.c:8098
msgid "expected '}' after ZT0"
msgstr ""
-#: config/tc-aarch64.c:7985 config/tc-aarch64.c:9290 config/tc-arm.c:8126
+#: config/tc-aarch64.c:8225 config/tc-aarch64.c:9582 config/tc-arm.c:7943
#, c-format
msgid "unhandled operand code %d"
msgstr ""
-#: config/tc-aarch64.c:8031
+#: config/tc-aarch64.c:8271
msgid "unexpected comma before the omitted optional operand"
msgstr ""
-#: config/tc-aarch64.c:8059
+#: config/tc-aarch64.c:8299
msgid "unexpected characters following instruction"
msgstr ""
-#: config/tc-aarch64.c:8137 config/tc-arm.c:5729 config/tc-arm.c:6347
-#: config/tc-arm.c:8938
+#: config/tc-aarch64.c:8377 config/tc-arm.c:5575 config/tc-arm.c:6193
+#: config/tc-arm.c:8755
msgid "constant expression expected"
msgstr ""
-#: config/tc-aarch64.c:8144
+#: config/tc-aarch64.c:8384
msgid "literal pool insertion failed"
msgstr ""
-#: config/tc-aarch64.c:8215 config/tc-aarch64.c:8230
+#: config/tc-aarch64.c:8455 config/tc-aarch64.c:8508
#, c-format
msgid "unpredictable transfer with writeback -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:8234 config/tc-aarch64.c:8248
+#. ldiapp, stilp
+#: config/tc-aarch64.c:8467
+#, c-format
+msgid "unpredictable load pair transfer with register overlap -- `%s'"
+msgstr ""
+
+#: config/tc-aarch64.c:8485
+#, c-format
+msgid "unpredictable transfer with writeback (load) -- `%s'"
+msgstr ""
+
+#: config/tc-aarch64.c:8489
+#, c-format
+msgid "unpredictable transfer with writeback (store) -- `%s'"
+msgstr ""
+
+#: config/tc-aarch64.c:8512 config/tc-aarch64.c:8526
#, c-format
msgid "unpredictable load of register pair -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:8255 config/tc-aarch64.c:8268
+#: config/tc-aarch64.c:8533 config/tc-aarch64.c:8546
#, c-format
msgid "unpredictable: identical transfer and status registers --`%s'"
msgstr ""
-#: config/tc-aarch64.c:8263 config/tc-aarch64.c:8277
+#: config/tc-aarch64.c:8541 config/tc-aarch64.c:8555
#, c-format
msgid "unpredictable: identical base and status registers --`%s'"
msgstr ""
-#: config/tc-aarch64.c:8297
+#: config/tc-aarch64.c:8575
#, c-format
msgid "previous `%s' sequence has not been closed"
msgstr ""
-#: config/tc-aarch64.c:8382
+#: config/tc-aarch64.c:8664
#, c-format
msgid "unknown mnemonic -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:8392
+#: config/tc-aarch64.c:8674
#, c-format
msgid "unknown mnemonic `%s' -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:8400
+#: config/tc-aarch64.c:8682
#, c-format
msgid "unexpected comma after the mnemonic name `%s' -- `%s'"
msgstr ""
-#: config/tc-aarch64.c:8457
+#: config/tc-aarch64.c:8739
#, c-format
msgid "selected processor does not support `%s'"
msgstr ""
-#: config/tc-aarch64.c:8949 config/tc-arm.c:28188
+#: config/tc-aarch64.c:9241 config/tc-arm.c:27367
msgid "GOT already in the symbol table"
msgstr ""
-#: config/tc-aarch64.c:9112
+#: config/tc-aarch64.c:9404
msgid "immediate cannot be moved by a single instruction"
msgstr ""
-#: config/tc-aarch64.c:9156 config/tc-aarch64.c:9201 config/tc-aarch64.c:9227
-#: config/tc-arm.c:16525 config/tc-arm.c:18222 config/tc-arm.c:18802
-#: config/tc-arm.c:18829 config/tc-arm.c:19607 config/tc-arm.c:20442
-#: config/tc-arm.c:21465 config/tc-arm.c:21525 config/tc-metag.c:2443
+#: config/tc-aarch64.c:9448 config/tc-aarch64.c:9493 config/tc-aarch64.c:9519
+#: config/tc-arm.c:16254 config/tc-arm.c:17951 config/tc-arm.c:18531
+#: config/tc-arm.c:18558 config/tc-arm.c:19345 config/tc-arm.c:20180
+#: config/tc-arm.c:21203 config/tc-arm.c:21263 config/tc-metag.c:2443
#: config/tc-metag.c:2452 config/tc-metag.c:2491 config/tc-metag.c:2500
#: config/tc-metag.c:3019 config/tc-metag.c:3028
msgid "immediate out of range"
msgstr ""
-#: config/tc-aarch64.c:9220 config/tc-metag.c:4654 config/tc-xtensa.c:4230
+#: config/tc-aarch64.c:9512 config/tc-metag.c:4654 config/tc-xtensa.c:4230
msgid "invalid immediate"
msgstr ""
-#: config/tc-aarch64.c:9285 config/tc-tic6x.c:3855 config/tc-tic6x.c:3920
+#: config/tc-aarch64.c:9577 config/tc-tic6x.c:3855 config/tc-tic6x.c:3920
#: config/tc-tic6x.c:3947 config/tc-tic6x.c:3975
msgid "immediate offset out of range"
msgstr ""
-#: config/tc-aarch64.c:9360 config/tc-arm.c:28526 config/tc-arm.c:28594
-#: config/tc-arm.c:28876
+#: config/tc-aarch64.c:9652 config/tc-arm.c:27705 config/tc-arm.c:27773
+#: config/tc-arm.c:28055
#, c-format
msgid "undefined symbol %s used as an immediate value"
msgstr ""
-#: config/tc-aarch64.c:9372
+#: config/tc-aarch64.c:9664
msgid "pc-relative load offset not word aligned"
msgstr ""
-#: config/tc-aarch64.c:9375
+#: config/tc-aarch64.c:9667
msgid "pc-relative load offset out of range"
msgstr ""
-#: config/tc-aarch64.c:9387
+#: config/tc-aarch64.c:9679
msgid "pc-relative address offset out of range"
msgstr ""
-#: config/tc-aarch64.c:9399 config/tc-aarch64.c:9414
+#: config/tc-aarch64.c:9691 config/tc-aarch64.c:9706
msgid "conditional branch target not word aligned"
msgstr ""
-#: config/tc-aarch64.c:9402 config/tc-aarch64.c:9417 config/tc-arm.c:29171
+#: config/tc-aarch64.c:9694 config/tc-aarch64.c:9709 config/tc-arm.c:28350
msgid "conditional branch out of range"
msgstr ""
-#: config/tc-aarch64.c:9430
+#: config/tc-aarch64.c:9722
msgid "branch target not word aligned"
msgstr ""
-#: config/tc-aarch64.c:9433 config/tc-arm.c:930 config/tc-arm.c:29977
-#: config/tc-kvx.c:1725 config/tc-kvx.c:1731 config/tc-mips.c:16062
-#: config/tc-mips.c:16078 config/tc-mips.c:16168
+#: config/tc-aarch64.c:9725 config/tc-arm.c:914 config/tc-arm.c:29156
+#: config/tc-kvx.c:1725 config/tc-kvx.c:1731 config/tc-mips.c:16078
+#: config/tc-mips.c:16094 config/tc-mips.c:16184
msgid "branch out of range"
msgstr ""
-#: config/tc-aarch64.c:9492 config/tc-arm.c:28767 config/tc-arm.c:28782
-#: config/tc-arm.c:28797 config/tc-arm.c:28808 config/tc-arm.c:28831
-#: config/tc-arm.c:29681 config/tc-moxie.c:714 config/tc-pj.c:449
+#: config/tc-aarch64.c:9784 config/tc-arm.c:27946 config/tc-arm.c:27961
+#: config/tc-arm.c:27976 config/tc-arm.c:27987 config/tc-arm.c:28010
+#: config/tc-arm.c:28860 config/tc-moxie.c:714 config/tc-pj.c:449
#: config/tc-sh.c:3713
msgid "offset out of range"
msgstr ""
-#: config/tc-aarch64.c:9507
+#: config/tc-aarch64.c:9799
msgid "unsigned value out of range"
msgstr ""
-#: config/tc-aarch64.c:9518
+#: config/tc-aarch64.c:9810
msgid "signed value out of range"
msgstr ""
-#: config/tc-aarch64.c:9673
+#: config/tc-aarch64.c:9965
#, c-format
msgid "unexpected %s fixup"
msgstr ""
-#: config/tc-aarch64.c:9738 config/tc-arm.c:30397 config/tc-arm.c:30418
-#: config/tc-mips.c:18430 config/tc-or1k.c:345 config/tc-score.c:7403
+#: config/tc-aarch64.c:10030 config/tc-arm.c:29576 config/tc-arm.c:29597
+#: config/tc-mips.c:18446 config/tc-or1k.c:345 config/tc-score.c:7403
#, c-format
msgid "cannot represent %s relocation in this object file format"
msgstr ""
-#: config/tc-aarch64.c:9785
+#: config/tc-aarch64.c:10077
#, c-format
msgid "cannot do %u-byte relocation"
msgstr ""
-#: config/tc-aarch64.c:10213 config/tc-arm.c:31232
+#: config/tc-aarch64.c:10505 config/tc-arm.c:30397
msgid "assemble for big-endian"
msgstr ""
-#: config/tc-aarch64.c:10214 config/tc-arm.c:31233
+#: config/tc-aarch64.c:10506 config/tc-arm.c:30398
msgid "assemble for little-endian"
msgstr ""
-#: config/tc-aarch64.c:10217
+#: config/tc-aarch64.c:10509
msgid "temporary switch for dumping"
msgstr ""
-#: config/tc-aarch64.c:10219
+#: config/tc-aarch64.c:10511
msgid "output verbose error messages"
msgstr ""
-#: config/tc-aarch64.c:10221
+#: config/tc-aarch64.c:10513
msgid "do not output verbose error messages"
msgstr ""
-#: config/tc-aarch64.c:10502 config/tc-arm.c:32398
+#: config/tc-aarch64.c:10851 config/tc-arm.c:31586
msgid "invalid architectural extension"
msgstr ""
-#: config/tc-aarch64.c:10527 config/tc-arm.c:32430
+#: config/tc-aarch64.c:10876 config/tc-arm.c:31618
msgid "must specify extensions to add before specifying those to remove"
msgstr ""
-#: config/tc-aarch64.c:10535 config/tc-arm.c:32438
+#: config/tc-aarch64.c:10884 config/tc-arm.c:31626
msgid "missing architectural extension"
msgstr ""
-#: config/tc-aarch64.c:10563 config/tc-arm.c:32524
+#: config/tc-aarch64.c:10912 config/tc-arm.c:31712
#, c-format
msgid "unknown architectural extension `%s'"
msgstr ""
-#: config/tc-aarch64.c:10587 config/tc-arm.c:32574 config/tc-metag.c:5832
+#: config/tc-aarch64.c:10937 config/tc-arm.c:31762 config/tc-metag.c:5832
#, c-format
msgid "missing cpu name `%s'"
msgstr ""
-#: config/tc-aarch64.c:10601 config/tc-aarch64.c:10818 config/tc-arm.c:32609
-#: config/tc-arm.c:33428 config/tc-csky.c:1218 config/tc-metag.c:5843
+#: config/tc-aarch64.c:10948 config/tc-aarch64.c:11169 config/tc-arm.c:31797
+#: config/tc-arm.c:32617 config/tc-csky.c:1218 config/tc-metag.c:5843
#, c-format
msgid "unknown cpu `%s'"
msgstr ""
-#: config/tc-aarch64.c:10619 config/tc-arm.c:32627
+#: config/tc-aarch64.c:10966 config/tc-arm.c:31815
#, c-format
msgid "missing architecture name `%s'"
msgstr ""
-#: config/tc-aarch64.c:10633 config/tc-aarch64.c:10864 config/tc-arm.c:32649
-#: config/tc-arm.c:33468 config/tc-arm.c:33504 config/tc-score.c:7638
+#: config/tc-aarch64.c:10977 config/tc-aarch64.c:11214 config/tc-arm.c:31837
+#: config/tc-arm.c:32657 config/tc-arm.c:32693 config/tc-score.c:7638
#, c-format
msgid "unknown architecture `%s'\n"
msgstr ""
-#: config/tc-aarch64.c:10660
+#: config/tc-aarch64.c:11004
#, c-format
msgid "missing abi name `%s'"
msgstr ""
-#: config/tc-aarch64.c:10671
+#: config/tc-aarch64.c:11015
#, c-format
msgid "unknown abi `%s'\n"
msgstr ""
-#: config/tc-aarch64.c:10676
+#: config/tc-aarch64.c:11028
msgid "<abi name>\t specify for ABI <abi name>"
msgstr ""
-#: config/tc-aarch64.c:10678 config/tc-arm.c:32736 config/tc-metag.c:5909
+#: config/tc-aarch64.c:11030 config/tc-arm.c:31924 config/tc-metag.c:5909
msgid "<cpu name>\t assemble for CPU <cpu name>"
msgstr ""
-#: config/tc-aarch64.c:10680 config/tc-arm.c:32738
+#: config/tc-aarch64.c:11032 config/tc-arm.c:31926
msgid "<arch name>\t assemble for architecture <arch name>"
msgstr ""
-#: config/tc-aarch64.c:10719 config/tc-aarch64.c:10738 config/tc-arm.c:32806
-#: config/tc-arm.c:32824 config/tc-arm.c:32844 config/tc-metag.c:5933
+#: config/tc-aarch64.c:11071 config/tc-aarch64.c:11090 config/tc-arm.c:31994
+#: config/tc-arm.c:32012 config/tc-arm.c:32032 config/tc-metag.c:5933
#, c-format
msgid "option `-%c%s' is deprecated: %s"
msgstr ""
-#: config/tc-aarch64.c:10758
+#: config/tc-aarch64.c:11110
#, c-format
msgid " AArch64-specific assembler options:\n"
msgstr ""
-#: config/tc-aarch64.c:10769 config/tc-arc.c:3597 config/tc-arm.c:32875
+#: config/tc-aarch64.c:11121 config/tc-arc.c:3598 config/tc-arm.c:32063
#, c-format
msgid " -EB assemble code for a big-endian cpu\n"
msgstr ""
-#: config/tc-aarch64.c:10774 config/tc-arc.c:3599 config/tc-arm.c:32880
+#: config/tc-aarch64.c:11126 config/tc-arc.c:3600 config/tc-arm.c:32068
#, c-format
msgid " -EL assemble code for a little-endian cpu\n"
msgstr ""
@@ -2600,7 +2619,7 @@ msgstr ""
msgid "More than one relocation op per insn"
msgstr ""
-#: config/tc-alpha.c:925 config/tc-arc.c:1136
+#: config/tc-alpha.c:925 config/tc-arc.c:1137
msgid "No relocation operand"
msgstr ""
@@ -2715,9 +2734,9 @@ msgstr ""
msgid "sequence number in use for !tlsgd!%ld"
msgstr ""
-#: config/tc-alpha.c:1994 config/tc-arc.c:2869 config/tc-mn10200.c:847
-#: config/tc-mn10300.c:1150 config/tc-ppc.c:2063 config/tc-s390.c:666
-#: config/tc-tilegx.c:422 config/tc-tilegx.c:472 config/tc-tilepro.c:375
+#: config/tc-alpha.c:1994 config/tc-arc.c:2870 config/tc-mn10200.c:847
+#: config/tc-mn10300.c:1150 config/tc-ppc.c:2065 config/tc-tilegx.c:422
+#: config/tc-tilegx.c:472 config/tc-tilepro.c:375
msgid "operand"
msgstr ""
@@ -2733,7 +2752,7 @@ msgstr ""
msgid "can not resolve expression"
msgstr ""
-#: config/tc-alpha.c:3514 config/tc-microblaze.c:183 config/tc-ppc.c:2405
+#: config/tc-alpha.c:3514 config/tc-microblaze.c:183 config/tc-ppc.c:2407
#, c-format
msgid ".COMMon length (%ld.) <0! Ignored."
msgstr ""
@@ -2784,12 +2803,12 @@ msgstr ""
msgid "bad .mask directive"
msgstr ""
-#: config/tc-alpha.c:3874 config/tc-mips.c:19912 config/tc-score.c:5716
+#: config/tc-alpha.c:3874 config/tc-mips.c:19928 config/tc-score.c:5716
#: ecoff.c:3160
msgid ".frame outside of .ent"
msgstr ""
-#: config/tc-alpha.c:3885 config/tc-mips.c:19923 ecoff.c:3171
+#: config/tc-alpha.c:3885 config/tc-mips.c:19939 ecoff.c:3171
msgid "bad .frame directive"
msgstr ""
@@ -2944,18 +2963,18 @@ msgstr ""
msgid "bad .section directive: want a,s,w,x,M,S,G,T in string"
msgstr ""
-#: config/tc-alpha.c:5430 config/tc-alpha.c:5466 config/tc-arc.c:767
-#: config/tc-arc.c:2563 config/tc-arc.c:2595 config/tc-arc.c:2701
+#: config/tc-alpha.c:5430 config/tc-alpha.c:5466 config/tc-arc.c:768
+#: config/tc-arc.c:2564 config/tc-arc.c:2596 config/tc-arc.c:2702
#: config/tc-cr16.c:809 config/tc-cr16.c:828 config/tc-cris.c:1223
#: config/tc-crx.c:512 config/tc-crx.c:534 config/tc-crx.c:545
-#: config/tc-dlx.c:289 config/tc-hppa.c:8271 config/tc-i386.c:3185
-#: config/tc-i386.c:3230 config/tc-ia64.c:5363 config/tc-ia64.c:7402
+#: config/tc-dlx.c:289 config/tc-hppa.c:8271 config/tc-i386.c:3339
+#: config/tc-i386.c:3384 config/tc-ia64.c:5363 config/tc-ia64.c:7402
#: config/tc-ia64.c:7461 config/tc-kvx.c:1478 config/tc-m68k.c:4556
-#: config/tc-m68k.c:4568 config/tc-mips.c:3703 config/tc-mips.c:3736
-#: config/tc-mips.c:3762 config/tc-nds32.c:3440 config/tc-nios2.c:3624
+#: config/tc-m68k.c:4568 config/tc-mips.c:3709 config/tc-mips.c:3742
+#: config/tc-mips.c:3768 config/tc-nds32.c:3440 config/tc-nios2.c:3624
#: config/tc-nios2.c:3629 config/tc-nios2.c:3635 config/tc-ns32k.c:1906
-#: config/tc-ppc.c:1743 config/tc-ppc.c:1783 config/tc-pru.c:1568
-#: config/tc-pru.c:1572 config/tc-s390.c:536 config/tc-s390.c:574
+#: config/tc-ppc.c:1745 config/tc-ppc.c:1785 config/tc-pru.c:1568
+#: config/tc-pru.c:1572 config/tc-s390.c:609 config/tc-s390.c:647
#: config/tc-sparc.c:961 config/tc-sparc.c:993 config/tc-tic30.c:121
#: config/tc-tic30.c:131 config/tc-tic30.c:141 config/tc-tic30.c:151
#: config/tc-tic4x.c:1220 config/tc-tilegx.c:316 config/tc-tilepro.c:252
@@ -2964,8 +2983,8 @@ msgstr ""
msgid "duplicate %s"
msgstr ""
-#: config/tc-alpha.c:5549 config/tc-arc.c:2531 config/tc-arc.c:2545
-#: config/tc-arm.c:902 config/tc-xtensa.c:5474 config/tc-xtensa.c:5550
+#: config/tc-alpha.c:5549 config/tc-arc.c:2532 config/tc-arc.c:2546
+#: config/tc-arm.c:886 config/tc-xtensa.c:5474 config/tc-xtensa.c:5550
#: config/tc-xtensa.c:5667 config/tc-z80.c:3677
msgid "syntax error"
msgstr ""
@@ -2990,12 +3009,12 @@ msgid ""
"-replace/-noreplace\tenable or disable the optimization of procedure calls\n"
msgstr ""
-#: config/tc-alpha.c:5946 config/tc-arc.c:3144
+#: config/tc-alpha.c:5946 config/tc-arc.c:3145
#, c-format
msgid "unhandled relocation type %s"
msgstr ""
-#: config/tc-alpha.c:5959 config/tc-arc.c:3152
+#: config/tc-alpha.c:5959 config/tc-arc.c:3153
msgid "non-absolute expression in constant field"
msgstr ""
@@ -3013,14 +3032,14 @@ msgstr ""
msgid "!samegp reloc against symbol without .prologue: %s"
msgstr ""
-#: config/tc-alpha.c:6240 config/tc-arc.c:3275 config/tc-csky.c:5668
+#: config/tc-alpha.c:6240 config/tc-arc.c:3276 config/tc-csky.c:5668
#: config/tc-tilegx.c:1745 config/tc-tilepro.c:1522 config/tc-wasm32.c:813
#: config/tc-xtensa.c:6177
#, c-format
msgid "cannot represent `%s' relocation in object file"
msgstr ""
-#: config/tc-alpha.c:6246 config/tc-arc.c:3281
+#: config/tc-alpha.c:6246 config/tc-arc.c:3282
#, c-format
msgid "internal error? cannot generate `%s' relocation"
msgstr ""
@@ -3030,159 +3049,159 @@ msgstr ""
msgid "frame reg expected, using $%d."
msgstr ""
-#: config/tc-arc.c:830
+#: config/tc-arc.c:831
#, c-format
msgid "invalid %s option for %s cpu"
msgstr ""
-#: config/tc-arc.c:835
+#: config/tc-arc.c:836
msgid "conflicting ISA extension attributes."
msgstr ""
-#: config/tc-arc.c:855
+#: config/tc-arc.c:856
msgid "Multiple .cpu directives found"
msgstr ""
-#: config/tc-arc.c:873
+#: config/tc-arc.c:874
msgid "Command-line value overrides \".cpu\" directive"
msgstr ""
-#: config/tc-arc.c:889
+#: config/tc-arc.c:890
#, c-format
msgid "unknown architecture: %s\n"
msgstr ""
-#: config/tc-arc.c:900 config/tc-ia64.c:7471 config/tc-tilegx.c:262
+#: config/tc-arc.c:901 config/tc-ia64.c:7471 config/tc-tilegx.c:262
msgid "Could not set architecture and machine"
msgstr ""
-#: config/tc-arc.c:1125
+#: config/tc-arc.c:1126
msgid "No valid label relocation operand"
msgstr ""
-#: config/tc-arc.c:1149
+#: config/tc-arc.c:1150
#, c-format
msgid "Unknown relocation operand: @%s"
msgstr ""
-#: config/tc-arc.c:1162
+#: config/tc-arc.c:1163
#, c-format
msgid "Unable to parse TLS base: %s"
msgstr ""
-#: config/tc-arc.c:1185
+#: config/tc-arc.c:1186
#, c-format
msgid "@%s is not a complex relocation."
msgstr ""
-#: config/tc-arc.c:1192
+#: config/tc-arc.c:1193
#, c-format
msgid "Bad expression: @%s + %s."
msgstr ""
-#: config/tc-arc.c:1342
+#: config/tc-arc.c:1343
msgid "Brackets in operand field incorrect"
msgstr ""
-#: config/tc-arc.c:1344 config/tc-xtensa.c:2073
+#: config/tc-arc.c:1345 config/tc-xtensa.c:2073
msgid "extra comma"
msgstr ""
-#: config/tc-arc.c:1346 config/tc-pru.c:1449 config/tc-pru.c:1697
+#: config/tc-arc.c:1347 config/tc-pru.c:1449 config/tc-pru.c:1697
#: config/tc-xtensa.c:2077
msgid "missing argument"
msgstr ""
-#: config/tc-arc.c:1348 config/tc-xtensa.c:2079
+#: config/tc-arc.c:1349 config/tc-xtensa.c:2079
msgid "missing comma or colon"
msgstr ""
-#: config/tc-arc.c:1417
+#: config/tc-arc.c:1418
msgid "extra dot"
msgstr ""
-#: config/tc-arc.c:1419
+#: config/tc-arc.c:1420
msgid "unrecognized flag"
msgstr ""
-#: config/tc-arc.c:1421
+#: config/tc-arc.c:1422
msgid "failed to parse flags"
msgstr ""
-#: config/tc-arc.c:1447
+#: config/tc-arc.c:1448
msgid "Unhandled reloc type"
msgstr ""
-#: config/tc-arc.c:1966
+#: config/tc-arc.c:1967
msgid "immediate is out of bounds"
msgstr ""
-#: config/tc-arc.c:1974
+#: config/tc-arc.c:1975
msgid "immediate is not 32bit aligned"
msgstr ""
-#: config/tc-arc.c:1981
+#: config/tc-arc.c:1982
msgid "immediate is not 16bit aligned"
msgstr ""
-#: config/tc-arc.c:2062
+#: config/tc-arc.c:2063
msgid "operand is not duplicate of the previous one"
msgstr ""
-#: config/tc-arc.c:2082
+#: config/tc-arc.c:2083
msgid "flag mismatch"
msgstr ""
-#: config/tc-arc.c:2094 config/tc-nios2.c:3103 config/tc-nios2.c:3130
+#: config/tc-arc.c:2095 config/tc-nios2.c:3103 config/tc-nios2.c:3130
#: config/tc-pru.c:1412 config/tc-pru.c:1437 config/tc-xtensa.c:2143
msgid "too many arguments"
msgstr ""
-#: config/tc-arc.c:2499
+#: config/tc-arc.c:2500
#, c-format
msgid "%s for instruction '%s'"
msgstr ""
-#: config/tc-arc.c:2501
+#: config/tc-arc.c:2502
#, c-format
msgid "inappropriate arguments for opcode '%s'"
msgstr ""
-#: config/tc-arc.c:2503
+#: config/tc-arc.c:2504
#, c-format
msgid "opcode '%s' not supported for target %s"
msgstr ""
-#: config/tc-arc.c:2507 config/tc-tic6x.c:3189
+#: config/tc-arc.c:2508 config/tc-tic6x.c:3189
#, c-format
msgid "unknown opcode '%s'"
msgstr ""
-#: config/tc-arc.c:2613 config/tc-arc.c:5092 config/tc-h8300.c:78
+#: config/tc-arc.c:2614 config/tc-arc.c:5093 config/tc-h8300.c:78
#: config/tc-h8300.c:87 config/tc-h8300.c:97 config/tc-h8300.c:107
#: config/tc-h8300.c:117 config/tc-h8300.c:128 config/tc-h8300.c:241
#: config/tc-hppa.c:6845 config/tc-hppa.c:6851 config/tc-hppa.c:6857
#: config/tc-hppa.c:6863 config/tc-hppa.c:8250 config/tc-kvx.c:1438
-#: config/tc-lm32.c:197 config/tc-mips.c:3693 config/tc-mips.c:4190
+#: config/tc-lm32.c:197 config/tc-mips.c:3699 config/tc-mips.c:4193
#: config/tc-mn10300.c:935 config/tc-mn10300.c:940 config/tc-mn10300.c:2441
-#: config/tc-riscv.c:1660 config/tc-riscv.c:5319
+#: config/tc-riscv.c:1849 config/tc-riscv.c:5568
msgid "could not set architecture and machine"
msgstr ""
-#: config/tc-arc.c:2814
+#: config/tc-arc.c:2815
#, c-format
msgid "unhandled reloc %s in md_pcrel_from_section"
msgstr ""
-#: config/tc-arc.c:2879
+#: config/tc-arc.c:2880
msgid "Unaligned operand. Needs to be 32bit aligned"
msgstr ""
-#: config/tc-arc.c:2884
+#: config/tc-arc.c:2885
msgid "Unaligned operand. Needs to be 16bit aligned"
msgstr ""
-#: config/tc-arc.c:3015
+#: config/tc-arc.c:3016
#, c-format
msgid "PC relative relocation not allowed for (internal) type %d"
msgstr ""
@@ -3191,35 +3210,35 @@ msgstr ""
#. the insn.
#. FIXME! Check for the conditionality of
#. the insn.
-#: config/tc-arc.c:3060 config/tc-arc.c:4041
+#: config/tc-arc.c:3061 config/tc-arc.c:4042
msgid "TLS_*_S9 relocs are not supported yet"
msgstr ""
#. I cannot fix an GOTPC relocation because I need to relax it
#. from ld rx,[pcl,@sym@gotpc] to add rx,pcl,@sym@gotpc.
-#: config/tc-arc.c:3096
+#: config/tc-arc.c:3097
msgid "Unsupported operation on reloc"
msgstr ""
-#: config/tc-arc.c:3172 config/tc-arc.c:3188
+#: config/tc-arc.c:3173 config/tc-arc.c:3189
msgid "unknown fixup size"
msgstr ""
-#: config/tc-arc.c:3322
+#: config/tc-arc.c:3323
msgid "no relaxation found for this instruction."
msgstr ""
-#: config/tc-arc.c:3575
+#: config/tc-arc.c:3576
#, c-format
msgid "ARC-specific assembler options:\n"
msgstr ""
-#: config/tc-arc.c:3601
+#: config/tc-arc.c:3602
#, c-format
msgid " -mrelax enable relaxation\n"
msgstr ""
-#: config/tc-arc.c:3604
+#: config/tc-arc.c:3605
#, c-format
msgid ""
"The following ARC-specific assembler options are deprecated and are "
@@ -3227,7 +3246,7 @@ msgid ""
"for compatibility only:\n"
msgstr ""
-#: config/tc-arc.c:3607
+#: config/tc-arc.c:3608
#, c-format
msgid ""
" -mEA\n"
@@ -3257,1133 +3276,1116 @@ msgid ""
" -mxy\n"
msgstr ""
-#: config/tc-arc.c:3697
+#: config/tc-arc.c:3698
#, c-format
msgid "Unable to find %s relocation for instruction %s"
msgstr ""
-#: config/tc-arc.c:3992
+#: config/tc-arc.c:3993
#, c-format
msgid "Unable to use @plt relocation for insn %s"
msgstr ""
-#: config/tc-arc.c:4011
+#: config/tc-arc.c:4012
#, c-format
msgid "Unable to use @pcl relocation for insn %s"
msgstr ""
-#: config/tc-arc.c:4067
+#: config/tc-arc.c:4068
#, c-format
msgid "invalid relocation %s for field"
msgstr ""
-#: config/tc-arc.c:4177
+#: config/tc-arc.c:4178
#, c-format
msgid "Insn %s has a jump/branch instruction %s in its delay slot."
msgstr ""
-#: config/tc-arc.c:4182
+#: config/tc-arc.c:4183
#, c-format
msgid "Insn %s has an instruction %s with limm in its delay slot."
msgstr ""
-#: config/tc-arc.c:4292 config/tc-microblaze.c:2628 config/tc-mn10300.c:1069
-#: config/tc-sh.c:418 config/tc-z80.c:1120 read.c:4731
+#: config/tc-arc.c:4293 config/tc-microblaze.c:2628 config/tc-mn10300.c:1069
+#: config/tc-sh.c:418 config/tc-z80.c:1120 read.c:4787
#, c-format
msgid "unsupported BFD relocation size %u"
msgstr ""
-#: config/tc-arc.c:4312
+#: config/tc-arc.c:4313
#, c-format
msgid "Jump/Branch instruction detected at the end of the ZOL label @%s"
msgstr ""
-#: config/tc-arc.c:4319
+#: config/tc-arc.c:4320
#, c-format
msgid "Kernel instruction detected at the end of the ZOL label @%s"
msgstr ""
-#: config/tc-arc.c:4324
+#: config/tc-arc.c:4325
#, c-format
msgid ""
"A jump instruction with long immediate detected at the end of the ZOL label @"
"%s"
msgstr ""
-#: config/tc-arc.c:4330
+#: config/tc-arc.c:4331
#, c-format
msgid "An illegal use of delay slot detected at the end of the ZOL label @%s"
msgstr ""
-#: config/tc-arc.c:4439
+#: config/tc-arc.c:4440
msgid "expected comma after instruction name"
msgstr ""
-#: config/tc-arc.c:4451
+#: config/tc-arc.c:4452
msgid "expected comma after major opcode"
msgstr ""
-#: config/tc-arc.c:4636
+#: config/tc-arc.c:4637
#, c-format
msgid "Pseudocode already used %s"
msgstr ""
-#: config/tc-arc.c:4644
+#: config/tc-arc.c:4645
#, c-format
msgid "major opcode not in range [0x%02x - 0x%02x]"
msgstr ""
-#: config/tc-arc.c:4648
+#: config/tc-arc.c:4649
msgid "minor opcode not in range [0x00 - 0x3f]"
msgstr ""
-#: config/tc-arc.c:4654
+#: config/tc-arc.c:4655
msgid "Improper use of OP1_IMM_IMPLIED"
msgstr ""
-#: config/tc-arc.c:4660
+#: config/tc-arc.c:4661
msgid "Improper use of OP1_MUST_BE_IMM"
msgstr ""
-#: config/tc-arc.c:4672
+#: config/tc-arc.c:4673
msgid "Couldn't generate extension instruction opcodes"
msgstr ""
-#: config/tc-arc.c:4707
+#: config/tc-arc.c:4708
msgid "expected comma after name"
msgstr ""
-#: config/tc-arc.c:4718
+#: config/tc-arc.c:4719
#, c-format
msgid "%s second argument cannot be a negative number %d"
msgstr ""
-#: config/tc-arc.c:4733
+#: config/tc-arc.c:4734
msgid "expected comma after register number"
msgstr ""
-#: config/tc-arc.c:4754
+#: config/tc-arc.c:4755
msgid "invalid mode"
msgstr ""
-#: config/tc-arc.c:4772
+#: config/tc-arc.c:4773
msgid "expected comma after register mode"
msgstr ""
-#: config/tc-arc.c:4787
+#: config/tc-arc.c:4788
msgid "shortcut designator invalid"
msgstr ""
-#: config/tc-arc.c:4885
+#: config/tc-arc.c:4886
#, c-format
msgid "core register %s value (%d) too large"
msgstr ""
-#: config/tc-arc.c:4897
+#: config/tc-arc.c:4898
#, c-format
msgid "duplicate aux register %s"
msgstr ""
-#: config/tc-arc.c:4902
+#: config/tc-arc.c:4903
#, c-format
msgid "condition code %s value (%d) too large"
msgstr ""
-#: config/tc-arc.c:4919
+#: config/tc-arc.c:4920
msgid "Unknown extension"
msgstr ""
-#: config/tc-arc.c:5026
+#: config/tc-arc.c:5027
msgid "Overwrite explicitly set Tag_ARC_CPU_base"
msgstr ""
-#: config/tc-arc.c:5076
+#: config/tc-arc.c:5077
msgid "Overwrite explicitly set Tag_ARC_ABI_rf16 to full register file"
msgstr ""
-#: config/tc-arm.c:711
+#: config/tc-arm.c:702
msgid "ARM register expected"
msgstr ""
-#: config/tc-arm.c:712
+#: config/tc-arm.c:703
msgid "bad or missing co-processor number"
msgstr ""
-#: config/tc-arm.c:713
+#: config/tc-arm.c:704
msgid "co-processor register expected"
msgstr ""
-#: config/tc-arm.c:714
-msgid "FPA register expected"
-msgstr ""
-
-#: config/tc-arm.c:715
+#: config/tc-arm.c:705
msgid "VFP single precision register expected"
msgstr ""
-#: config/tc-arm.c:716
+#: config/tc-arm.c:706
msgid "VFP/Neon double precision register expected"
msgstr ""
-#: config/tc-arm.c:717
+#: config/tc-arm.c:707
msgid "Neon quad precision register expected"
msgstr ""
-#: config/tc-arm.c:718
+#: config/tc-arm.c:708
msgid "VFP single or double precision register expected"
msgstr ""
-#: config/tc-arm.c:719
+#: config/tc-arm.c:709
msgid "Neon double or quad precision register expected"
msgstr ""
-#: config/tc-arm.c:720
+#: config/tc-arm.c:710
msgid "Neon single or double precision register expected"
msgstr ""
-#: config/tc-arm.c:721
+#: config/tc-arm.c:711
msgid "VFP single, double or Neon quad precision register expected"
msgstr ""
-#: config/tc-arm.c:723
+#: config/tc-arm.c:713
msgid "VFP system register expected"
msgstr ""
-#: config/tc-arm.c:724
-msgid "Maverick MVF register expected"
-msgstr ""
-
-#: config/tc-arm.c:725
-msgid "Maverick MVD register expected"
-msgstr ""
-
-#: config/tc-arm.c:726
-msgid "Maverick MVFX register expected"
-msgstr ""
-
-#: config/tc-arm.c:727
-msgid "Maverick MVDX register expected"
-msgstr ""
-
-#: config/tc-arm.c:728
-msgid "Maverick MVAX register expected"
-msgstr ""
-
-#: config/tc-arm.c:729
-msgid "Maverick DSPSC register expected"
-msgstr ""
-
-#: config/tc-arm.c:730
+#: config/tc-arm.c:714
msgid "iWMMXt data register expected"
msgstr ""
-#: config/tc-arm.c:731 config/tc-arm.c:7926
+#: config/tc-arm.c:715 config/tc-arm.c:7743
msgid "iWMMXt control register expected"
msgstr ""
-#: config/tc-arm.c:732
+#: config/tc-arm.c:716
msgid "iWMMXt scalar register expected"
msgstr ""
-#: config/tc-arm.c:733
+#: config/tc-arm.c:717
msgid "XScale accumulator register expected"
msgstr ""
-#: config/tc-arm.c:734
+#: config/tc-arm.c:718
msgid "MVE vector register expected"
msgstr ""
-#: config/tc-arm.c:736
+#: config/tc-arm.c:720
msgid "ZR register expected"
msgstr ""
-#: config/tc-arm.c:737
+#: config/tc-arm.c:721
msgid "Pseudo register expected"
msgstr ""
#. For score5u : div/mul will pop warning message, mmu/alw/asw will pop error message.
-#: config/tc-arm.c:903 config/tc-score.c:255
+#: config/tc-arm.c:887 config/tc-score.c:255
msgid "bad arguments to instruction"
msgstr ""
-#: config/tc-arm.c:904
+#: config/tc-arm.c:888
msgid "r13 not allowed here"
msgstr ""
-#: config/tc-arm.c:905
+#: config/tc-arm.c:889
msgid "r15 not allowed here"
msgstr ""
-#: config/tc-arm.c:906
+#: config/tc-arm.c:890
msgid "Odd register not allowed here"
msgstr ""
-#: config/tc-arm.c:907
+#: config/tc-arm.c:891
msgid "Even register not allowed here"
msgstr ""
-#: config/tc-arm.c:908
+#: config/tc-arm.c:892
msgid "instruction cannot be conditional"
msgstr ""
-#: config/tc-arm.c:909
+#: config/tc-arm.c:893
msgid "registers may not be the same"
msgstr ""
-#: config/tc-arm.c:910
+#: config/tc-arm.c:894
msgid "lo register required"
msgstr ""
-#: config/tc-arm.c:911
+#: config/tc-arm.c:895
msgid "instruction not supported in Thumb16 mode"
msgstr ""
-#: config/tc-arm.c:912
+#: config/tc-arm.c:896
msgid "instruction does not accept this addressing mode"
msgstr ""
-#: config/tc-arm.c:913
+#: config/tc-arm.c:897
msgid "branch must be last instruction in IT block"
msgstr ""
-#: config/tc-arm.c:914
+#: config/tc-arm.c:898
msgid "branch out of range or not a multiple of 2"
msgstr ""
-#: config/tc-arm.c:915
+#: config/tc-arm.c:899
msgid "instruction not allowed in VPT block"
msgstr ""
-#: config/tc-arm.c:916
+#: config/tc-arm.c:900
msgid "instruction not allowed in IT block"
msgstr ""
-#: config/tc-arm.c:917
+#: config/tc-arm.c:901
msgid "instruction missing MVE vector predication code"
msgstr ""
-#: config/tc-arm.c:918
+#: config/tc-arm.c:902
msgid "selected FPU does not support instruction"
msgstr ""
-#: config/tc-arm.c:919
+#: config/tc-arm.c:903
msgid "thumb conditional instruction should be in IT block"
msgstr ""
-#: config/tc-arm.c:921
+#: config/tc-arm.c:905
msgid "vector predicated instruction should be in VPT/VPST block"
msgstr ""
-#: config/tc-arm.c:922
+#: config/tc-arm.c:906
msgid "incorrect condition in IT block"
msgstr ""
-#: config/tc-arm.c:923
+#: config/tc-arm.c:907
msgid "incorrect condition in VPT/VPST block"
msgstr ""
-#: config/tc-arm.c:924
+#: config/tc-arm.c:908
msgid "IT falling in the range of a previous IT block"
msgstr ""
-#: config/tc-arm.c:925
+#: config/tc-arm.c:909
msgid "missing .fnstart before unwinding directive"
msgstr ""
-#: config/tc-arm.c:927
+#: config/tc-arm.c:911
msgid "cannot use register index with PC-relative addressing"
msgstr ""
-#: config/tc-arm.c:929
+#: config/tc-arm.c:913
msgid "cannot use writeback with PC-relative addressing"
msgstr ""
-#: config/tc-arm.c:931
+#: config/tc-arm.c:915
msgid "selected processor does not support fp16 instruction"
msgstr ""
-#: config/tc-arm.c:932
+#: config/tc-arm.c:916
msgid "selected processor does not support bf16 instruction"
msgstr ""
-#: config/tc-arm.c:933
+#: config/tc-arm.c:917
msgid "selected processor does not support cde instruction"
msgstr ""
-#: config/tc-arm.c:934
+#: config/tc-arm.c:918
msgid "coprocessor for insn is not enabled for cde"
msgstr ""
-#: config/tc-arm.c:935
+#: config/tc-arm.c:919
msgid "using "
msgstr ""
-#: config/tc-arm.c:936
+#: config/tc-arm.c:920
msgid "relocation valid in thumb1 code only"
msgstr ""
-#: config/tc-arm.c:937
+#: config/tc-arm.c:921
msgid "Warning: instruction is UNPREDICTABLE in an IT block"
msgstr ""
-#: config/tc-arm.c:939
+#: config/tc-arm.c:923
msgid "Warning: instruction is UNPREDICTABLE in a VPT block"
msgstr ""
-#: config/tc-arm.c:941
+#: config/tc-arm.c:925
msgid "Warning: instruction is UNPREDICTABLE with PC operand"
msgstr ""
-#: config/tc-arm.c:943
+#: config/tc-arm.c:927
msgid "Warning: instruction is UNPREDICTABLE with SP operand"
msgstr ""
-#: config/tc-arm.c:945
+#: config/tc-arm.c:929
msgid "bad type in SIMD instruction"
msgstr ""
-#: config/tc-arm.c:947
+#: config/tc-arm.c:931
msgid ""
"GAS auto-detection mode and -march=all is deprecated for MVE, please use a "
"valid -march or -mcpu option."
msgstr ""
-#: config/tc-arm.c:949
+#: config/tc-arm.c:933
msgid ""
"Warning: 32-bit element size and same destination and source operands makes "
"instruction UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:951
+#: config/tc-arm.c:935
msgid "bad element type for instruction"
msgstr ""
-#: config/tc-arm.c:952
+#: config/tc-arm.c:936
msgid "MVE vector register Q[0..7] expected"
msgstr ""
-#: config/tc-arm.c:953
+#: config/tc-arm.c:937
msgid "selected processor does not support PACBTI extention"
msgstr ""
-#: config/tc-arm.c:1173
+#: config/tc-arm.c:1157
msgid "immediate expression requires a # prefix"
msgstr ""
-#: config/tc-arm.c:1202 read.c:3969
+#: config/tc-arm.c:1186 read.c:4025
msgid "missing expression"
msgstr ""
-#: config/tc-arm.c:1216 config/tc-arm.c:5742 config/tc-score.c:1205
+#: config/tc-arm.c:1200 config/tc-arm.c:5588 config/tc-score.c:1205
msgid "invalid constant"
msgstr ""
-#: config/tc-arm.c:1351
+#: config/tc-arm.c:1335
msgid "expected #constant"
msgstr ""
-#: config/tc-arm.c:1523 config/tc-arm.c:1554
+#: config/tc-arm.c:1507 config/tc-arm.c:1538
#, c-format
msgid "bad size %d in type specifier"
msgstr ""
-#: config/tc-arm.c:1530
+#: config/tc-arm.c:1514
msgid "unexpected type character `b' -- did you mean `bf'?"
msgstr ""
-#: config/tc-arm.c:1537
+#: config/tc-arm.c:1521
#, c-format
msgid "unexpected character `%c' in type specifier"
msgstr ""
-#: config/tc-arm.c:1604
+#: config/tc-arm.c:1588
msgid "only one type should be specified for operand"
msgstr ""
-#: config/tc-arm.c:1610
+#: config/tc-arm.c:1594
msgid "vector type expected"
msgstr ""
-#: config/tc-arm.c:1719
+#: config/tc-arm.c:1703
msgid "expected MVE register [q0..q7]"
msgstr ""
-#: config/tc-arm.c:1739
+#: config/tc-arm.c:1723
msgid "can't redefine type for operand"
msgstr ""
-#: config/tc-arm.c:1755
+#: config/tc-arm.c:1739
msgid "only D and Q registers may be indexed"
msgstr ""
-#: config/tc-arm.c:1757
+#: config/tc-arm.c:1741
msgid "only D registers may be indexed"
msgstr ""
-#: config/tc-arm.c:1763
+#: config/tc-arm.c:1747
msgid "can't change index for operand"
msgstr ""
-#: config/tc-arm.c:1826
+#: config/tc-arm.c:1810
msgid "register operand expected, but got scalar"
msgstr ""
-#: config/tc-arm.c:1877
+#: config/tc-arm.c:1861
msgid "scalar must have an index"
msgstr ""
-#: config/tc-arm.c:1882 config/tc-arm.c:20287 config/tc-arm.c:20370
-#: config/tc-arm.c:21043
+#: config/tc-arm.c:1866 config/tc-arm.c:20025 config/tc-arm.c:20108
+#: config/tc-arm.c:20781
msgid "scalar index out of range"
msgstr ""
-#: config/tc-arm.c:1961
+#: config/tc-arm.c:1945
msgid "r0-r12, lr or APSR expected"
msgstr ""
-#: config/tc-arm.c:1988 config/tc-arm.c:4390
+#: config/tc-arm.c:1972 config/tc-arm.c:4374
msgid "bad range in register list"
msgstr ""
-#: config/tc-arm.c:1996 config/tc-arm.c:2005 config/tc-arm.c:2046
-#: config/tc-arm.c:4374 config/tc-arm.c:4394
+#: config/tc-arm.c:1980 config/tc-arm.c:1989 config/tc-arm.c:2030
+#: config/tc-arm.c:4358 config/tc-arm.c:4378
#, c-format
msgid "Warning: duplicated register (r%d) in register list"
msgstr ""
-#: config/tc-arm.c:2008
+#: config/tc-arm.c:1992
msgid "Warning: register range not in ascending order"
msgstr ""
-#: config/tc-arm.c:2019
+#: config/tc-arm.c:2003
msgid "missing `}'"
msgstr ""
-#: config/tc-arm.c:2035
+#: config/tc-arm.c:2019
msgid "invalid register mask"
msgstr ""
-#: config/tc-arm.c:2112
+#: config/tc-arm.c:2096
msgid "expecting {"
msgstr ""
-#: config/tc-arm.c:2179 config/tc-arm.c:2287
+#: config/tc-arm.c:2163 config/tc-arm.c:2271
msgid "VPR expected last"
msgstr ""
-#: config/tc-arm.c:2185
+#: config/tc-arm.c:2169
msgid "VFP single precision register or VPR expected"
msgstr ""
#. regtype == REG_TYPE_VFD.
-#: config/tc-arm.c:2188
+#: config/tc-arm.c:2172
msgid "VFP/Neon double precision register or VPR expected"
msgstr ""
-#: config/tc-arm.c:2205 config/tc-arm.c:2249
+#: config/tc-arm.c:2189 config/tc-arm.c:2233
msgid "register out of range in list"
msgstr ""
-#: config/tc-arm.c:2227 config/tc-arm.c:4589 config/tc-arm.c:4723
+#: config/tc-arm.c:2211 config/tc-arm.c:4524 config/tc-arm.c:4658
msgid "register list not in ascending order"
msgstr ""
-#: config/tc-arm.c:2258
+#: config/tc-arm.c:2242
msgid "register range not in ascending order"
msgstr ""
-#: config/tc-arm.c:2297
+#: config/tc-arm.c:2281
msgid "non-contiguous register range"
msgstr ""
-#: config/tc-arm.c:2357
+#: config/tc-arm.c:2341
msgid "register stride must be 1"
msgstr ""
-#: config/tc-arm.c:2358
+#: config/tc-arm.c:2342
msgid "register stride must be 1 or 2"
msgstr ""
-#: config/tc-arm.c:2359
+#: config/tc-arm.c:2343
msgid "mismatched element/structure types in list"
msgstr ""
-#: config/tc-arm.c:2429
+#: config/tc-arm.c:2413
msgid "don't use Rn-Rm syntax with non-unit stride"
msgstr ""
-#: config/tc-arm.c:2484
+#: config/tc-arm.c:2468
msgid "error parsing element/structure list"
msgstr ""
-#: config/tc-arm.c:2490
+#: config/tc-arm.c:2474
msgid "expected }"
msgstr ""
-#: config/tc-arm.c:2580
+#: config/tc-arm.c:2564
msgid "attempt to redefine typed alias"
msgstr ""
-#: config/tc-arm.c:2715
+#: config/tc-arm.c:2699
msgid "bad type for register"
msgstr ""
-#: config/tc-arm.c:2726 config/tc-nios2.c:1797
+#: config/tc-arm.c:2710 config/tc-nios2.c:1797
msgid "expression must be constant"
msgstr ""
-#: config/tc-arm.c:2743
+#: config/tc-arm.c:2727
msgid "can't redefine the type of a register alias"
msgstr ""
-#: config/tc-arm.c:2750
+#: config/tc-arm.c:2734
msgid "you must specify a single type only"
msgstr ""
-#: config/tc-arm.c:2763
+#: config/tc-arm.c:2747
msgid "can't redefine the index of a scalar alias"
msgstr ""
-#: config/tc-arm.c:2771
+#: config/tc-arm.c:2755
msgid "scalar index must be constant"
msgstr ""
-#: config/tc-arm.c:2780
+#: config/tc-arm.c:2764
msgid "expecting ]"
msgstr ""
-#: config/tc-arm.c:2832
+#: config/tc-arm.c:2816
msgid "invalid syntax for .dn directive"
msgstr ""
-#: config/tc-arm.c:2838
+#: config/tc-arm.c:2822
msgid "invalid syntax for .qn directive"
msgstr ""
-#: config/tc-arm.c:2868
+#: config/tc-arm.c:2852
#, c-format
msgid "ignoring attempt to use .unreq on fixed register name: '%s'"
msgstr ""
-#: config/tc-arm.c:3130
+#: config/tc-arm.c:3114
#, c-format
msgid "Failed to find real start of function: %s\n"
msgstr ""
-#: config/tc-arm.c:3147
+#: config/tc-arm.c:3131
msgid "selected processor does not support THUMB opcodes"
msgstr ""
-#: config/tc-arm.c:3160
+#: config/tc-arm.c:3144
msgid "selected processor does not support ARM opcodes"
msgstr ""
-#: config/tc-arm.c:3172
+#: config/tc-arm.c:3156
#, c-format
msgid "invalid instruction size selected (%d)"
msgstr ""
-#: config/tc-arm.c:3204
+#: config/tc-arm.c:3188
#, c-format
msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
msgstr ""
-#: config/tc-arm.c:3260
+#: config/tc-arm.c:3244
#, c-format
msgid "expected comma after name \"%s\""
msgstr ""
-#: config/tc-arm.c:3310 config/tc-m32r.c:584
+#: config/tc-arm.c:3294 config/tc-m32r.c:584
#, c-format
msgid "symbol `%s' already defined"
msgstr ""
-#: config/tc-arm.c:3343
+#: config/tc-arm.c:3327
#, c-format
msgid "unrecognized syntax mode \"%s\""
msgstr ""
-#: config/tc-arm.c:3373
+#: config/tc-arm.c:3357
msgid ".ref pseudo-op only available with -mccs flag."
msgstr ""
-#: config/tc-arm.c:3414
+#: config/tc-arm.c:3398
msgid ".asmfunc repeated."
msgstr ""
-#: config/tc-arm.c:3418
+#: config/tc-arm.c:3402
msgid ".asmfunc without function."
msgstr ""
-#: config/tc-arm.c:3424
+#: config/tc-arm.c:3408
msgid ".asmfunc pseudo-op only available with -mccs flag."
msgstr ""
-#: config/tc-arm.c:3435
+#: config/tc-arm.c:3419
msgid ".endasmfunc without a .asmfunc."
msgstr ""
-#: config/tc-arm.c:3439
+#: config/tc-arm.c:3423
msgid ".endasmfunc without function."
msgstr ""
-#: config/tc-arm.c:3450
+#: config/tc-arm.c:3434
msgid ".endasmfunc pseudo-op only available with -mccs flag."
msgstr ""
-#: config/tc-arm.c:3459
+#: config/tc-arm.c:3443
msgid ".def pseudo-op only available with -mccs flag."
msgstr ""
-#: config/tc-arm.c:3617
+#: config/tc-arm.c:3601
msgid "invalid type for literal pool"
msgstr ""
-#: config/tc-arm.c:3697 config/tc-tic54x.c:5379
+#: config/tc-arm.c:3681 config/tc-tic54x.c:5379
#, c-format
msgid "Invalid label '%s'"
msgstr ""
-#: config/tc-arm.c:3874
+#: config/tc-arm.c:3858
msgid "(plt) is only valid on branch targets"
msgstr ""
-#: config/tc-arm.c:3880 config/tc-csky.c:7672 config/tc-s390.c:1204
-#: config/tc-s390.c:1871 config/tc-xtensa.c:1699
+#: config/tc-arm.c:3864 config/tc-csky.c:7672 config/tc-s390.c:1309
+#: config/tc-s390.c:2092 config/tc-xtensa.c:1699
#, c-format
msgid "%s relocations do not fit in %d byte"
msgid_plural "%s relocations do not fit in %d bytes"
msgstr[0] ""
msgstr[1] ""
-#: config/tc-arm.c:3962
+#: config/tc-arm.c:3946
msgid ".inst.n operand too big. Use .inst.w instead"
msgstr ""
-#: config/tc-arm.c:3982
+#: config/tc-arm.c:3966
msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead"
msgstr ""
-#: config/tc-arm.c:4012
+#: config/tc-arm.c:3996
msgid "width suffixes are invalid in ARM mode"
msgstr ""
-#: config/tc-arm.c:4056 dwarf2dbg.c:1463
+#: config/tc-arm.c:4040 dwarf2dbg.c:1463
msgid "expected 0 or 1"
msgstr ""
-#: config/tc-arm.c:4060
+#: config/tc-arm.c:4044
msgid "missing comma"
msgstr ""
-#: config/tc-arm.c:4093
+#: config/tc-arm.c:4077
msgid "duplicate .fnstart directive"
msgstr ""
-#: config/tc-arm.c:4123 config/tc-tic6x.c:410
+#: config/tc-arm.c:4107 config/tc-tic6x.c:410
msgid "duplicate .handlerdata directive"
msgstr ""
-#: config/tc-arm.c:4142
+#: config/tc-arm.c:4126
msgid ".fnend directive without .fnstart"
msgstr ""
-#: config/tc-arm.c:4209 config/tc-tic6x.c:391
+#: config/tc-arm.c:4193 config/tc-tic6x.c:391
msgid "personality routine specified for cantunwind frame"
msgstr ""
-#: config/tc-arm.c:4226 config/tc-tic6x.c:452
+#: config/tc-arm.c:4210 config/tc-tic6x.c:452
msgid "duplicate .personalityindex directive"
msgstr ""
-#: config/tc-arm.c:4233 config/tc-tic6x.c:459
+#: config/tc-arm.c:4217 config/tc-tic6x.c:459
msgid "bad personality routine number"
msgstr ""
-#: config/tc-arm.c:4255 config/tc-tic6x.c:476
+#: config/tc-arm.c:4239 config/tc-tic6x.c:476
msgid "duplicate .personality directive"
msgstr ""
-#: config/tc-arm.c:4281
+#: config/tc-arm.c:4265
#, c-format
msgid "Unknown register no. encountered: %d\n"
msgstr ""
-#: config/tc-arm.c:4377
+#: config/tc-arm.c:4361
msgid "Warning: register list not in ascending order"
msgstr ""
-#: config/tc-arm.c:4384 config/tc-epiphany.c:382 config/tc-m68k.c:5866
+#: config/tc-arm.c:4368 config/tc-epiphany.c:382 config/tc-m68k.c:5866
#: config/tc-m68k.c:5895
msgid "bad register list"
msgstr ""
-#: config/tc-arm.c:4443
-msgid "expected , <constant>"
-msgstr ""
-
-#: config/tc-arm.c:4452
-msgid "number of registers must be in the range [1:4]"
-msgstr ""
-
-#: config/tc-arm.c:4491 config/tc-arm.c:4541
+#: config/tc-arm.c:4426 config/tc-arm.c:4476
msgid "expected register list"
msgstr ""
-#: config/tc-arm.c:4603 config/tc-arm.c:4737
+#: config/tc-arm.c:4538 config/tc-arm.c:4672
msgid "bad register range"
msgstr ""
-#: config/tc-arm.c:4792
+#: config/tc-arm.c:4727
msgid "register expected"
msgstr ""
-#: config/tc-arm.c:4802
-msgid "FPA .unwind_save does not take a register list"
-msgstr ""
-
-#: config/tc-arm.c:4836
+#: config/tc-arm.c:4760
msgid ".unwind_save does not support this kind of register"
msgstr ""
-#: config/tc-arm.c:4875
+#: config/tc-arm.c:4799
msgid "SP and PC not permitted in .unwind_movsp directive"
msgstr ""
-#: config/tc-arm.c:4880
+#: config/tc-arm.c:4804
msgid "unexpected .unwind_movsp directive"
msgstr ""
-#: config/tc-arm.c:4907
+#: config/tc-arm.c:4831
msgid "stack increment must be multiple of 4"
msgstr ""
-#: config/tc-arm.c:4955
+#: config/tc-arm.c:4879
msgid "expected <reg>, <reg>"
msgstr ""
-#: config/tc-arm.c:4973
+#: config/tc-arm.c:4897
msgid "register must be either sp or set by a previousunwind_movsp directive"
msgstr ""
-#: config/tc-arm.c:5012
+#: config/tc-arm.c:4936
msgid "expected <offset>, <opcode>"
msgstr ""
-#: config/tc-arm.c:5024
+#: config/tc-arm.c:4948
msgid "unwind opcode too long"
msgstr ""
-#: config/tc-arm.c:5029
+#: config/tc-arm.c:4953
msgid "invalid unwind opcode"
msgstr ""
-#: config/tc-arm.c:5144 config/tc-arm.c:32553
+#: config/tc-arm.c:5068 config/tc-arm.c:31741
#, c-format
msgid "unrecognised float16 format \"%s\""
msgstr ""
-#: config/tc-arm.c:5155
+#: config/tc-arm.c:5079
msgid "float16 format cannot be set more than once, ignoring."
msgstr ""
-#: config/tc-arm.c:5270 config/tc-arm.c:6353 config/tc-arm.c:11738
-#: config/tc-arm.c:12271 config/tc-arm.c:14391 config/tc-arm.c:16342
-#: config/tc-arm.c:16377 config/tc-arm.c:17305 config/tc-arm.c:19218
-#: config/tc-arm.c:19226 config/tc-arm.c:19233 config/tc-arm.c:20884
-#: config/tc-arm.c:29558 config/tc-arm.c:29622 config/tc-arm.c:29630
-#: config/tc-metag.c:5174 config/tc-z8k.c:1161 config/tc-z8k.c:1171
-msgid "immediate value out of range"
+#: config/tc-arm.c:5092
+msgid "the floating-point format has not been set (or has been disabled)"
msgstr ""
-#: config/tc-arm.c:5440
-msgid "invalid FPA immediate expression"
+#: config/tc-arm.c:5209 config/tc-arm.c:6199 config/tc-arm.c:11467
+#: config/tc-arm.c:12000 config/tc-arm.c:14120 config/tc-arm.c:16071
+#: config/tc-arm.c:16106 config/tc-arm.c:17034 config/tc-arm.c:18947
+#: config/tc-arm.c:18955 config/tc-arm.c:18962 config/tc-arm.c:20622
+#: config/tc-arm.c:28737 config/tc-arm.c:28801 config/tc-arm.c:28809
+#: config/tc-metag.c:5174 config/tc-z8k.c:1161 config/tc-z8k.c:1171
+msgid "immediate value out of range"
msgstr ""
-#: config/tc-arm.c:5626
+#: config/tc-arm.c:5472
msgid "'UXTW' not allowed here"
msgstr ""
-#: config/tc-arm.c:5634
+#: config/tc-arm.c:5480
msgid "'LSL' or 'ASR' required"
msgstr ""
-#: config/tc-arm.c:5642
+#: config/tc-arm.c:5488
msgid "'LSL' required"
msgstr ""
-#: config/tc-arm.c:5650
+#: config/tc-arm.c:5496
msgid "'ASR' required"
msgstr ""
-#: config/tc-arm.c:5657
+#: config/tc-arm.c:5503
msgid "'UXTW' required"
msgstr ""
-#: config/tc-arm.c:5736
+#: config/tc-arm.c:5582
msgid "invalid rotation"
msgstr ""
-#: config/tc-arm.c:5918 config/tc-arm.c:6131
+#: config/tc-arm.c:5764 config/tc-arm.c:5977
msgid "unknown group relocation"
msgstr ""
-#: config/tc-arm.c:5954
+#: config/tc-arm.c:5800
msgid "alignment must be constant"
msgstr ""
-#: config/tc-arm.c:6165
+#: config/tc-arm.c:6011
msgid "this group relocation is not allowed on this instruction"
msgstr ""
-#: config/tc-arm.c:6221
+#: config/tc-arm.c:6067
msgid "'}' expected at end of 'option' field"
msgstr ""
-#: config/tc-arm.c:6226
+#: config/tc-arm.c:6072
msgid "cannot combine index with option"
msgstr ""
-#: config/tc-arm.c:6491
+#: config/tc-arm.c:6337
msgid "unexpected bit specified after APSR"
msgstr ""
-#: config/tc-arm.c:6503
+#: config/tc-arm.c:6349
msgid "selected processor does not support DSP extension"
msgstr ""
-#: config/tc-arm.c:6515
+#: config/tc-arm.c:6361
msgid "bad bitmask specified after APSR"
msgstr ""
-#: config/tc-arm.c:6539
+#: config/tc-arm.c:6385
msgid "writing to APSR without specifying a bitmask is deprecated"
msgstr ""
-#: config/tc-arm.c:6551 config/tc-arm.c:13494 config/tc-arm.c:13539
-#: config/tc-arm.c:13543
+#: config/tc-arm.c:6397 config/tc-arm.c:13223 config/tc-arm.c:13268
+#: config/tc-arm.c:13272
msgid "selected processor does not support requested special purpose register"
msgstr ""
-#: config/tc-arm.c:6556
+#: config/tc-arm.c:6402
msgid "flag for {c}psr instruction expected"
msgstr ""
-#: config/tc-arm.c:6620
+#: config/tc-arm.c:6466
msgid "unrecognized CPS flag"
msgstr ""
-#: config/tc-arm.c:6627
+#: config/tc-arm.c:6473
msgid "missing CPS flags"
msgstr ""
-#: config/tc-arm.c:6650 config/tc-arm.c:6656
+#: config/tc-arm.c:6496 config/tc-arm.c:6502
msgid "valid endian specifiers are be or le"
msgstr ""
-#: config/tc-arm.c:6678
+#: config/tc-arm.c:6524
msgid "missing rotation field after comma"
msgstr ""
-#: config/tc-arm.c:6693
+#: config/tc-arm.c:6539
msgid "rotation can only be 0, 8, 16, or 24"
msgstr ""
-#: config/tc-arm.c:6722
+#: config/tc-arm.c:6568
msgid "condition required"
msgstr ""
-#: config/tc-arm.c:6764 config/tc-arm.c:9901
+#: config/tc-arm.c:6610 config/tc-arm.c:9729
msgid "'[' expected"
msgstr ""
-#: config/tc-arm.c:6777
+#: config/tc-arm.c:6623
msgid "',' expected"
msgstr ""
-#: config/tc-arm.c:6794
+#: config/tc-arm.c:6640
msgid "invalid shift"
msgstr ""
-#: config/tc-arm.c:6874
+#: config/tc-arm.c:6720
msgid "expected ARM or MVE vector register"
msgstr ""
-#: config/tc-arm.c:6923
+#: config/tc-arm.c:6769
msgid "can't use Neon quad register here"
msgstr ""
-#: config/tc-arm.c:6992
+#: config/tc-arm.c:6838
msgid "expected <Rm> or <Dm> or <Qm> operand"
msgstr ""
-#: config/tc-arm.c:7092
+#: config/tc-arm.c:6938
msgid "VFP single, double or MVE vector register expected"
msgstr ""
-#: config/tc-arm.c:7112
+#: config/tc-arm.c:6958
msgid "parse error"
msgstr ""
-#: config/tc-arm.c:7416
+#: config/tc-arm.c:7254
msgid "immediate value 48 or 64 expected"
msgstr ""
#. ISB can only take SY as an option.
-#: config/tc-arm.c:7465
+#: config/tc-arm.c:7303
msgid "invalid barrier type"
msgstr ""
-#: config/tc-arm.c:7641
+#: config/tc-arm.c:7472
msgid "only floating point zero is allowed as immediate value"
msgstr ""
-#: config/tc-arm.c:7736
+#: config/tc-arm.c:7567
msgid "immediate value is out of range"
msgstr ""
-#: config/tc-arm.c:7911
+#: config/tc-arm.c:7728
msgid "iWMMXt data or control register expected"
msgstr ""
-#: config/tc-arm.c:7952
+#: config/tc-arm.c:7769
msgid "Banked registers are not available with this architecture."
msgstr ""
-#: config/tc-arm.c:8200
+#: config/tc-arm.c:8017
msgid "operand must be LR register"
msgstr ""
-#: config/tc-arm.c:8205
+#: config/tc-arm.c:8022
msgid "operand must be SP register"
msgstr ""
-#: config/tc-arm.c:8210
+#: config/tc-arm.c:8027
msgid "operand must be r12"
msgstr ""
-#: config/tc-arm.c:8281 config/tc-score.c:260
+#: config/tc-arm.c:8098 config/tc-score.c:260
msgid "garbage following instruction"
msgstr ""
#. If REG is R13 (the stack pointer), warn that its use is
#. deprecated.
-#: config/tc-arm.c:8331
+#: config/tc-arm.c:8148
msgid "use of r13 is deprecated"
msgstr ""
-#: config/tc-arm.c:8349 config/tc-arm.c:20584
+#: config/tc-arm.c:8166 config/tc-arm.c:20322
msgid ""
"scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:8424
+#: config/tc-arm.c:8241
msgid "D register out of range for selected VFP version"
msgstr ""
-#: config/tc-arm.c:8521 config/tc-arm.c:11427
+#: config/tc-arm.c:8338 config/tc-arm.c:11156
msgid "Instruction does not support =N addresses"
msgstr ""
-#: config/tc-arm.c:8529
+#: config/tc-arm.c:8346
msgid "instruction does not accept preindexed addressing"
msgstr ""
#. unindexed - only for coprocessor
-#: config/tc-arm.c:8545 config/tc-arm.c:11490
+#: config/tc-arm.c:8362 config/tc-arm.c:11219
msgid "instruction does not accept unindexed addressing"
msgstr ""
-#: config/tc-arm.c:8553
+#: config/tc-arm.c:8370
msgid "destination register same as write-back base"
msgstr ""
-#: config/tc-arm.c:8554
+#: config/tc-arm.c:8371
msgid "source register same as write-back base"
msgstr ""
-#: config/tc-arm.c:8604
+#: config/tc-arm.c:8421
msgid "use of PC in this instruction is deprecated"
msgstr ""
-#: config/tc-arm.c:8627
+#: config/tc-arm.c:8444
msgid "instruction does not accept scaled register index"
msgstr ""
-#: config/tc-arm.c:8930
+#: config/tc-arm.c:8747
msgid "invalid pseudo operation"
msgstr ""
-#: config/tc-arm.c:9158
+#. FIXME: The code that was here previously could not
+#. work. Firstly, it tried to convert a floating point
+#. number into an extended precision format, but only
+#. provided a buffer of 5 littlenums, which was too
+#. small. Secondly, it then didn't deal with the value
+#. converted correctly, just reading out the first 4
+#. littlenum fields and assuming that could be used
+#. directly.
+#.
+#. I think the code was intended to handle expressions
+#. such as:
+#.
+#. LDR r0, =1.0
+#. VLDR d0, =55.3
+#.
+#. but the parsers currently don't permit floating-point
+#. literal values to be written this way, so this code
+#. is probably unreachable. To be safe, we simply
+#. return an error here.
+#: config/tc-arm.c:8789
+msgid "constant expression not supported"
+msgstr ""
+
+#: config/tc-arm.c:8993
msgid "invalid co-processor operand"
msgstr ""
-#: config/tc-arm.c:9174
+#: config/tc-arm.c:9009
msgid "instruction does not support unindexed addressing"
msgstr ""
-#: config/tc-arm.c:9189
+#: config/tc-arm.c:9024
msgid "pc may not be used with write-back"
msgstr ""
-#: config/tc-arm.c:9194
+#: config/tc-arm.c:9029
msgid "instruction does not support writeback"
msgstr ""
-#: config/tc-arm.c:9300
+#: config/tc-arm.c:9135
msgid "Rn must not overlap other operands"
msgstr ""
-#: config/tc-arm.c:9305
+#: config/tc-arm.c:9140
msgid "swp{b} use is obsoleted for ARMv8 and later"
msgstr ""
-#: config/tc-arm.c:9308
+#: config/tc-arm.c:9143
msgid "swp{b} use is deprecated for ARMv6 and ARMv7"
msgstr ""
-#: config/tc-arm.c:9427 config/tc-arm.c:9446 config/tc-arm.c:9459
-#: config/tc-arm.c:12108 config/tc-arm.c:12139 config/tc-arm.c:12161
+#: config/tc-arm.c:9255 config/tc-arm.c:9274 config/tc-arm.c:9287
+#: config/tc-arm.c:11837 config/tc-arm.c:11868 config/tc-arm.c:11890
msgid "bit-field extends past end of register"
msgstr ""
-#: config/tc-arm.c:9489
+#: config/tc-arm.c:9317
msgid "the only valid suffixes here are '(plt)' and '(tlscall)'"
msgstr ""
-#: config/tc-arm.c:9542
+#: config/tc-arm.c:9370
msgid "use of r15 in blx in ARM mode is not really useful"
msgstr ""
-#: config/tc-arm.c:9564
+#: config/tc-arm.c:9392
msgid "use of r15 in bx in ARM mode is not really useful"
msgstr ""
-#: config/tc-arm.c:9590
+#: config/tc-arm.c:9418
msgid "use of r15 in bxj is not really useful"
msgstr ""
-#: config/tc-arm.c:9638
+#: config/tc-arm.c:9466
msgid "This coprocessor register access is deprecated in ARMv8"
msgstr ""
-#: config/tc-arm.c:9846 config/tc-arm.c:9855
+#: config/tc-arm.c:9674 config/tc-arm.c:9683
msgid "writeback of base register is UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:9849
+#: config/tc-arm.c:9677
msgid "writeback of base register when in register list is UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:9859
+#: config/tc-arm.c:9687
msgid "if writeback register is in list, it must be the lowest reg in the list"
msgstr ""
-#: config/tc-arm.c:9896
+#: config/tc-arm.c:9724
msgid "first transfer register must be even"
msgstr ""
-#: config/tc-arm.c:9899
+#: config/tc-arm.c:9727
msgid "can only transfer two consecutive registers"
msgstr ""
@@ -4391,1429 +4393,1412 @@ msgstr ""
#. have been called in the first place.
#. If op 2 were present and equal to PC, this function wouldn't
#. have been called in the first place.
-#: config/tc-arm.c:9900 config/tc-arm.c:9970 config/tc-arm.c:10701
-#: config/tc-arm.c:12983
+#: config/tc-arm.c:9728 config/tc-arm.c:9798 config/tc-arm.c:10529
+#: config/tc-arm.c:12712
msgid "r14 not allowed here"
msgstr ""
-#: config/tc-arm.c:9912
+#: config/tc-arm.c:9740
msgid "base register written back, and overlaps second transfer register"
msgstr ""
-#: config/tc-arm.c:9922
+#: config/tc-arm.c:9750
msgid "index register overlaps transfer register"
msgstr ""
-#: config/tc-arm.c:9951 config/tc-arm.c:10668
+#: config/tc-arm.c:9779 config/tc-arm.c:10496
msgid "offset must be zero in ARM encoding"
msgstr ""
-#: config/tc-arm.c:9964 config/tc-arm.c:10695
+#: config/tc-arm.c:9792 config/tc-arm.c:10523
msgid "even register required"
msgstr ""
-#: config/tc-arm.c:9967
+#: config/tc-arm.c:9795
msgid "can only load two consecutive registers"
msgstr ""
-#: config/tc-arm.c:9985
+#: config/tc-arm.c:9813
msgid "ldr to register 15 must be 4-byte aligned"
msgstr ""
-#: config/tc-arm.c:10008 config/tc-arm.c:10040
+#: config/tc-arm.c:9836 config/tc-arm.c:9868
msgid "this instruction requires a post-indexed address"
msgstr ""
-#: config/tc-arm.c:10067
+#: config/tc-arm.c:9895
msgid "Rd and Rm should be different in mla"
msgstr ""
-#: config/tc-arm.c:10094 config/tc-arm.c:13358
+#: config/tc-arm.c:9922 config/tc-arm.c:13087
msgid ":lower16: not allowed in this instruction"
msgstr ""
-#: config/tc-arm.c:10096 config/tc-arm.c:13363
+#: config/tc-arm.c:9924 config/tc-arm.c:13092
msgid ":upper16: not allowed in this instruction"
msgstr ""
-#: config/tc-arm.c:10113
+#: config/tc-arm.c:9941
msgid "operand 1 must be FPSCR"
msgstr ""
-#: config/tc-arm.c:10166 config/tc-arm.c:10175 config/tc-arm.c:10229
-#: config/tc-arm.c:10238
+#: config/tc-arm.c:9994 config/tc-arm.c:10003 config/tc-arm.c:10057
+#: config/tc-arm.c:10066
msgid "selected processor does not support instruction"
msgstr ""
-#: config/tc-arm.c:10178 config/tc-arm.c:10241
+#: config/tc-arm.c:10006 config/tc-arm.c:10069
msgid "accessing MVE system register without MVE is UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:10269 config/tc-arm.c:13477
+#: config/tc-arm.c:10097 config/tc-arm.c:13206
msgid "bad register for mrs"
msgstr ""
-#: config/tc-arm.c:10276 config/tc-arm.c:13501
+#: config/tc-arm.c:10104 config/tc-arm.c:13230
msgid "'APSR', 'CPSR' or 'SPSR' expected"
msgstr ""
-#: config/tc-arm.c:10317
+#: config/tc-arm.c:10145
msgid "Rd and Rm should be different in mul"
msgstr ""
-#: config/tc-arm.c:10336 config/tc-arm.c:10613 config/tc-arm.c:13640
+#: config/tc-arm.c:10164 config/tc-arm.c:10441 config/tc-arm.c:13369
msgid "rdhi and rdlo must be different"
msgstr ""
-#: config/tc-arm.c:10342
+#: config/tc-arm.c:10170
msgid "rdhi, rdlo and rm must all be different"
msgstr ""
-#: config/tc-arm.c:10408
+#: config/tc-arm.c:10236
msgid "'[' expected after PLD mnemonic"
msgstr ""
-#: config/tc-arm.c:10410 config/tc-arm.c:10425
+#: config/tc-arm.c:10238 config/tc-arm.c:10253
msgid "post-indexed expression used in preload instruction"
msgstr ""
-#: config/tc-arm.c:10412 config/tc-arm.c:10427
+#: config/tc-arm.c:10240 config/tc-arm.c:10255
msgid "writeback used in preload instruction"
msgstr ""
-#: config/tc-arm.c:10414 config/tc-arm.c:10429
+#: config/tc-arm.c:10242 config/tc-arm.c:10257
msgid "unindexed addressing used in preload instruction"
msgstr ""
-#: config/tc-arm.c:10423
+#: config/tc-arm.c:10251
msgid "'[' expected after PLI mnemonic"
msgstr ""
-#: config/tc-arm.c:10438 config/tc-arm.c:13809
+#: config/tc-arm.c:10266 config/tc-arm.c:13538
msgid "push/pop do not support {reglist}^"
msgstr ""
-#: config/tc-arm.c:10516 config/tc-arm.c:13986
+#: config/tc-arm.c:10344 config/tc-arm.c:13715
msgid "setend use is deprecated for ARMv8"
msgstr ""
-#: config/tc-arm.c:10537 config/tc-arm.c:14047 config/tc-arm.c:14079
-#: config/tc-arm.c:14122
+#: config/tc-arm.c:10365 config/tc-arm.c:13776 config/tc-arm.c:13808
+#: config/tc-arm.c:13851
msgid "extraneous shift as part of operand to shift insn"
msgstr ""
-#: config/tc-arm.c:10547 config/tc-arm.c:14185
+#: config/tc-arm.c:10375 config/tc-arm.c:13914
msgid "immediate too large (bigger than 0xF)"
msgstr ""
-#: config/tc-arm.c:10571 config/tc-arm.c:10580
+#: config/tc-arm.c:10399 config/tc-arm.c:10408
msgid "selected processor does not support SETPAN instruction"
msgstr ""
-#: config/tc-arm.c:10639
+#: config/tc-arm.c:10467
msgid "SRS base register must be r13"
msgstr ""
-#: config/tc-arm.c:10698
+#: config/tc-arm.c:10526
msgid "can only store two consecutive registers"
msgstr ""
-#: config/tc-arm.c:10820 config/tc-arm.c:10841
+#: config/tc-arm.c:10648 config/tc-arm.c:10669
msgid "only two consecutive VFP SP registers allowed here"
msgstr ""
-#: config/tc-arm.c:10869 config/tc-arm.c:10884
+#: config/tc-arm.c:10697 config/tc-arm.c:10712
msgid "this addressing mode requires base-register writeback"
msgstr ""
#. If srcsize is 16, inst.operands[1].imm must be in the range 0-16.
#. i.e. immbits must be in range 0 - 16.
-#: config/tc-arm.c:11013
+#: config/tc-arm.c:10841
msgid "immediate value out of range, expected range [0, 16]"
msgstr ""
#. If srcsize is 32, inst.operands[1].imm must be in the range 1-32.
#. i.e. immbits must be in range 0 - 31.
-#: config/tc-arm.c:11020
+#: config/tc-arm.c:10848
msgid "immediate value out of range, expected range [1, 32]"
msgstr ""
-#: config/tc-arm.c:11086
-msgid "this instruction does not support indexing"
-msgstr ""
-
-#: config/tc-arm.c:11109
+#: config/tc-arm.c:10889
msgid "only r15 allowed here"
msgstr ""
-#: config/tc-arm.c:11244
+#: config/tc-arm.c:11024
msgid "immediate operand requires iWMMXt2"
msgstr ""
-#: config/tc-arm.c:11388
+#: config/tc-arm.c:11117
msgid "shift by register not allowed in thumb mode"
msgstr ""
-#: config/tc-arm.c:11400 config/tc-arm.c:14231 config/tc-arm.c:28849
+#: config/tc-arm.c:11129 config/tc-arm.c:13960 config/tc-arm.c:28028
msgid "shift expression is too large"
msgstr ""
-#: config/tc-arm.c:11433
+#: config/tc-arm.c:11162
msgid "cannot use register index with this instruction"
msgstr ""
-#: config/tc-arm.c:11435
+#: config/tc-arm.c:11164
msgid "Thumb does not support negative register indexing"
msgstr ""
-#: config/tc-arm.c:11437
+#: config/tc-arm.c:11166
msgid "Thumb does not support register post-indexing"
msgstr ""
-#: config/tc-arm.c:11439
+#: config/tc-arm.c:11168
msgid "Thumb does not support register indexing with writeback"
msgstr ""
-#: config/tc-arm.c:11441
+#: config/tc-arm.c:11170
msgid "Thumb supports only LSL in shifted register indexing"
msgstr ""
-#: config/tc-arm.c:11450 config/tc-arm.c:19952
+#: config/tc-arm.c:11179 config/tc-arm.c:19690
msgid "shift out of range"
msgstr ""
-#: config/tc-arm.c:11459
+#: config/tc-arm.c:11188
msgid "cannot use writeback with this instruction"
msgstr ""
-#: config/tc-arm.c:11480
+#: config/tc-arm.c:11209
msgid "cannot use post-indexing with PC-relative addressing"
msgstr ""
-#: config/tc-arm.c:11481
+#: config/tc-arm.c:11210
msgid "cannot use post-indexing with this instruction"
msgstr ""
-#: config/tc-arm.c:11719
+#: config/tc-arm.c:11448
msgid "cannot honor width suffix"
msgstr ""
-#: config/tc-arm.c:11733
+#: config/tc-arm.c:11462
msgid "only SUBS PC, LR, #const allowed"
msgstr ""
-#: config/tc-arm.c:11816 config/tc-arm.c:11976 config/tc-arm.c:12073
-#: config/tc-arm.c:13438 config/tc-arm.c:13746
+#: config/tc-arm.c:11545 config/tc-arm.c:11705 config/tc-arm.c:11802
+#: config/tc-arm.c:13167 config/tc-arm.c:13475
msgid "shift must be constant"
msgstr ""
-#: config/tc-arm.c:11821
+#: config/tc-arm.c:11550
msgid "shift value over 3 not allowed in thumb mode"
msgstr ""
-#: config/tc-arm.c:11823
+#: config/tc-arm.c:11552
msgid "only LSL shift allowed in thumb mode"
msgstr ""
-#: config/tc-arm.c:11847 config/tc-arm.c:11991 config/tc-arm.c:12088
-#: config/tc-arm.c:13451
+#: config/tc-arm.c:11576 config/tc-arm.c:11720 config/tc-arm.c:11817
+#: config/tc-arm.c:13180
msgid "unshifted register required"
msgstr ""
-#: config/tc-arm.c:11862 config/tc-arm.c:12099 config/tc-arm.c:13601
+#: config/tc-arm.c:11591 config/tc-arm.c:11828 config/tc-arm.c:13330
msgid "dest must overlap one source register"
msgstr ""
-#: config/tc-arm.c:11994 config/tc-csky.c:6026
+#: config/tc-arm.c:11723 config/tc-csky.c:6026
msgid "dest and source1 must be the same register"
msgstr ""
-#: config/tc-arm.c:12234
+#: config/tc-arm.c:11963
msgid ""
"selected architecture does not support wide conditional branch instruction"
msgstr ""
-#: config/tc-arm.c:12267
+#: config/tc-arm.c:11996
msgid "instruction is always unconditional"
msgstr ""
-#: config/tc-arm.c:12442
+#: config/tc-arm.c:12171
msgid "selected processor does not support 'A' form of this instruction"
msgstr ""
-#: config/tc-arm.c:12445
+#: config/tc-arm.c:12174
msgid "Thumb does not support the 2-argument form of this instruction"
msgstr ""
-#: config/tc-arm.c:12570
+#: config/tc-arm.c:12299
msgid "SP not allowed in register list"
msgstr ""
-#: config/tc-arm.c:12574 config/tc-arm.c:12681
+#: config/tc-arm.c:12303 config/tc-arm.c:12410
msgid ""
"having the base register in the register list when using write back is "
"UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:12582
+#: config/tc-arm.c:12311
msgid "LR and PC should not both be in register list"
msgstr ""
-#: config/tc-arm.c:12590
+#: config/tc-arm.c:12319
msgid "PC not allowed in register list"
msgstr ""
-#: config/tc-arm.c:12633
+#: config/tc-arm.c:12362
msgid "Thumb load/store multiple does not support {reglist}^"
msgstr ""
-#: config/tc-arm.c:12658 config/tc-arm.c:12736
+#: config/tc-arm.c:12387 config/tc-arm.c:12465
#, c-format
msgid "value stored for r%d is UNKNOWN"
msgstr ""
-#: config/tc-arm.c:12729
+#: config/tc-arm.c:12458
msgid "Thumb-2 instruction only valid in unified syntax"
msgstr ""
-#: config/tc-arm.c:12733 config/tc-arm.c:12743
+#: config/tc-arm.c:12462 config/tc-arm.c:12472
msgid "this instruction will write back the base register"
msgstr ""
-#: config/tc-arm.c:12746
+#: config/tc-arm.c:12475
msgid "this instruction will not write back the base register"
msgstr ""
-#: config/tc-arm.c:12777
+#: config/tc-arm.c:12506
msgid "r14 not allowed as first register when second register is omitted"
msgstr ""
-#: config/tc-arm.c:12877
+#: config/tc-arm.c:12606
msgid ""
"This instruction may be unpredictable if executed on M-profile cores with "
"interrupts enabled."
msgstr ""
-#: config/tc-arm.c:12906 config/tc-arm.c:12919 config/tc-arm.c:12955
+#: config/tc-arm.c:12635 config/tc-arm.c:12648 config/tc-arm.c:12684
msgid "Thumb does not support this addressing mode"
msgstr ""
-#: config/tc-arm.c:12923
+#: config/tc-arm.c:12652
msgid "byte or halfword not valid for base register"
msgstr ""
-#: config/tc-arm.c:12926
+#: config/tc-arm.c:12655
msgid "r15 based store not allowed"
msgstr ""
-#: config/tc-arm.c:12928
+#: config/tc-arm.c:12657
msgid "invalid base register for register offset"
msgstr ""
-#: config/tc-arm.c:12985
+#: config/tc-arm.c:12714
msgid "r12 not allowed here"
msgstr ""
-#: config/tc-arm.c:12991
+#: config/tc-arm.c:12720
msgid "base register written back, and overlaps one of transfer registers"
msgstr ""
-#: config/tc-arm.c:13119
+#: config/tc-arm.c:12848
#, c-format
msgid ""
"Use of r%u as a source register is deprecated when r%u is the destination "
"register."
msgstr ""
-#: config/tc-arm.c:13314
+#: config/tc-arm.c:13043
msgid "shifts in CMP/MOV instructions are only supported in unified syntax"
msgstr ""
-#: config/tc-arm.c:13342
+#: config/tc-arm.c:13071
msgid "only lo regs allowed with immediate"
msgstr ""
-#: config/tc-arm.c:13519
+#: config/tc-arm.c:13248
msgid "Thumb encoding does not support an immediate here"
msgstr ""
-#: config/tc-arm.c:13606
+#: config/tc-arm.c:13335
msgid "Thumb-2 MUL must not set flags"
msgstr ""
-#: config/tc-arm.c:13671
+#: config/tc-arm.c:13400
msgid "Thumb does not support NOP with hints"
msgstr ""
-#: config/tc-arm.c:13831 config/tc-arm.c:13843
+#: config/tc-arm.c:13560 config/tc-arm.c:13572
msgid "invalid register list to push/pop instruction"
msgstr ""
-#: config/tc-arm.c:14106
+#: config/tc-arm.c:13835
msgid "source1 and dest must be same register"
msgstr ""
-#: config/tc-arm.c:14131
+#: config/tc-arm.c:13860
msgid "ror #imm not supported"
msgstr ""
-#: config/tc-arm.c:14182
+#: config/tc-arm.c:13911
msgid "SMC is not permitted on this architecture"
msgstr ""
-#: config/tc-arm.c:14348
+#: config/tc-arm.c:14077
msgid "Thumb encoding does not support rotation"
msgstr ""
-#: config/tc-arm.c:14368
+#: config/tc-arm.c:14097
msgid "instruction requires register index"
msgstr ""
-#: config/tc-arm.c:14378
+#: config/tc-arm.c:14107
msgid "instruction does not allow shifted index"
msgstr ""
-#: config/tc-arm.c:14534 config/tc-arm.c:29993
+#: config/tc-arm.c:14263 config/tc-arm.c:29172
msgid "out of range label-relative fixup value"
msgstr ""
-#: config/tc-arm.c:14858
+#: config/tc-arm.c:14587
msgid "invalid neon suffix for non neon instruction"
msgstr ""
-#: config/tc-arm.c:15253 config/tc-arm.c:15606 config/tc-arm.c:17091
-#: config/tc-arm.c:17171 config/tc-arm.c:17228 config/tc-arm.c:19109
-#: config/tc-arm.c:21288 config/tc-arm.c:21475
+#: config/tc-arm.c:14982 config/tc-arm.c:15335 config/tc-arm.c:16820
+#: config/tc-arm.c:16900 config/tc-arm.c:16957 config/tc-arm.c:18838
+#: config/tc-arm.c:21026 config/tc-arm.c:21213
msgid "invalid instruction shape"
msgstr ""
-#: config/tc-arm.c:15505
+#: config/tc-arm.c:15234
msgid "types specified in both the mnemonic and operands"
msgstr ""
-#: config/tc-arm.c:15542
+#: config/tc-arm.c:15271
msgid "operand types can't be inferred"
msgstr ""
-#: config/tc-arm.c:15548
+#: config/tc-arm.c:15277
msgid "type specifier has the wrong number of parts"
msgstr ""
-#: config/tc-arm.c:15634 config/tc-arm.c:19370 config/tc-arm.c:19377
+#: config/tc-arm.c:15363 config/tc-arm.c:19099 config/tc-arm.c:19106
msgid "operand size must match register width"
msgstr ""
-#: config/tc-arm.c:15656
+#: config/tc-arm.c:15385
msgid "inconsistent types in Neon instruction"
msgstr ""
-#: config/tc-arm.c:16077
+#: config/tc-arm.c:15806
msgid "Type is not allowed for this instruction"
msgstr ""
-#: config/tc-arm.c:16152
+#: config/tc-arm.c:15881
msgid "MVE vector or ARM register expected"
msgstr ""
-#: config/tc-arm.c:16269
+#: config/tc-arm.c:15998
msgid "immediate must be either 1, 2, 4 or 8"
msgstr ""
-#: config/tc-arm.c:16426
+#: config/tc-arm.c:16155
msgid "immediate operand expected in the range [1,8]"
msgstr ""
-#: config/tc-arm.c:16427
+#: config/tc-arm.c:16156
msgid "immediate operand expected in the range [1,16]"
msgstr ""
-#: config/tc-arm.c:16569
+#: config/tc-arm.c:16298
msgid "expected LR"
msgstr ""
-#: config/tc-arm.c:17068 config/tc-arm.c:17148 config/tc-arm.c:18745
-#: config/tc-arm.c:20569
+#: config/tc-arm.c:16797 config/tc-arm.c:16877 config/tc-arm.c:18474
+#: config/tc-arm.c:20307
msgid "immediate out of range for shift"
msgstr ""
-#: config/tc-arm.c:17362
+#: config/tc-arm.c:17091
msgid "first and second operands shall be the same register"
msgstr ""
-#: config/tc-arm.c:17476 config/tc-arm.c:17538
+#: config/tc-arm.c:17205 config/tc-arm.c:17267
msgid "destination register and offset register may not be the same"
msgstr ""
-#: config/tc-arm.c:17488 config/tc-arm.c:17607
+#: config/tc-arm.c:17217 config/tc-arm.c:17336
msgid "immediate must be a multiple of 4 in the range of +/-[0,508]"
msgstr ""
-#: config/tc-arm.c:17490
+#: config/tc-arm.c:17219
msgid "immediate must be a multiple of 8 in the range of +/-[0,1016]"
msgstr ""
-#: config/tc-arm.c:17511
+#: config/tc-arm.c:17240
msgid "can not shift offsets when accessing less than half-word"
msgstr ""
-#: config/tc-arm.c:17513
+#: config/tc-arm.c:17242
msgid ""
"shift immediate must be 1, 2 or 3 for half-word, word or double-word "
"accesses respectively"
msgstr ""
-#: config/tc-arm.c:17600
+#: config/tc-arm.c:17329
msgid "immediate must be in the range of +/-[0,127]"
msgstr ""
-#: config/tc-arm.c:17603
+#: config/tc-arm.c:17332
msgid "immediate must be a multiple of 2 in the range of +/-[0,254]"
msgstr ""
-#: config/tc-arm.c:17617 config/tc-arm.c:18443
+#: config/tc-arm.c:17346 config/tc-arm.c:18172
msgid "MVE vector register in the range [Q0..Q7] expected"
msgstr ""
-#: config/tc-arm.c:17933 config/tc-arm.c:19791
+#: config/tc-arm.c:17662 config/tc-arm.c:19529
msgid "scalar out of range for multiply instruction"
msgstr ""
-#: config/tc-arm.c:18021
+#: config/tc-arm.c:17750
msgid "index must be in the range 0 to 3"
msgstr ""
-#: config/tc-arm.c:18024
+#: config/tc-arm.c:17753
msgid "indexed register must be less than 8"
msgstr ""
-#: config/tc-arm.c:18225 config/tc-arm.c:21539
+#: config/tc-arm.c:17954 config/tc-arm.c:21277
msgid ""
"Warning: 32-bit element size and same first and third operand makes "
"instruction UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:18584
+#: config/tc-arm.c:18313
msgid "instruction form not available on this architecture."
msgstr ""
-#: config/tc-arm.c:18587
+#: config/tc-arm.c:18316
msgid "this instruction implies use of ARMv8.1 AdvSIMD."
msgstr ""
-#: config/tc-arm.c:18694 config/tc-arm.c:18719
+#: config/tc-arm.c:18423 config/tc-arm.c:18448
msgid "immediate out of range for insert"
msgstr ""
-#: config/tc-arm.c:18866
+#: config/tc-arm.c:18595
msgid "immediate out of range for narrowing operation"
msgstr ""
-#: config/tc-arm.c:19013
+#: config/tc-arm.c:18742
msgid "operands 0 and 1 must be the same register"
msgstr ""
-#: config/tc-arm.c:19119 config/tc-arm.c:21387
+#: config/tc-arm.c:18848 config/tc-arm.c:21125
msgid "invalid rounding mode"
msgstr ""
-#: config/tc-arm.c:19581
+#: config/tc-arm.c:19319
msgid "operand size must be specified for immediate VMOV"
msgstr ""
-#: config/tc-arm.c:19591
+#: config/tc-arm.c:19329
msgid "immediate has bits set outside the operand size"
msgstr ""
-#: config/tc-arm.c:19826
+#: config/tc-arm.c:19564
msgid ""
"vfmal/vfmsl with FP16 type cannot be conditional, the behaviour is "
"UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:19934
+#: config/tc-arm.c:19672
msgid "Instruction form not available on this architecture."
msgstr ""
-#: config/tc-arm.c:19988
+#: config/tc-arm.c:19726
msgid ""
"Warning: 64-bit element size and same destination and source operands makes "
"instruction UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:19993
+#: config/tc-arm.c:19731
msgid "elements must be smaller than reversal region"
msgstr ""
-#: config/tc-arm.c:20085
+#: config/tc-arm.c:19823
msgid "Index one must be [2,3] and index two must be two less than index one."
msgstr ""
-#: config/tc-arm.c:20088
+#: config/tc-arm.c:19826
msgid "Destination registers may not be the same"
msgstr ""
-#: config/tc-arm.c:20286 config/tc-arm.c:20369
+#: config/tc-arm.c:20024 config/tc-arm.c:20107
msgid "bad type for scalar"
msgstr ""
-#: config/tc-arm.c:20425
+#: config/tc-arm.c:20163
msgid ""
"immediate constant is valid both as a bit-pattern and a floating point value "
"(using the fp value)"
msgstr ""
-#: config/tc-arm.c:20477 config/tc-arm.c:20488
+#: config/tc-arm.c:20215 config/tc-arm.c:20226
msgid "VFP registers must be adjacent"
msgstr ""
-#: config/tc-arm.c:20578
+#: config/tc-arm.c:20316
msgid "invalid suffix"
msgstr ""
-#: config/tc-arm.c:20732
+#: config/tc-arm.c:20470
msgid "bad list length for table lookup"
msgstr ""
-#: config/tc-arm.c:20765
+#: config/tc-arm.c:20503
msgid "writeback (!) must be used for VLDMDB and VSTMDB"
msgstr ""
-#: config/tc-arm.c:20768 config/tc-arm.c:20794
+#: config/tc-arm.c:20506 config/tc-arm.c:20532
msgid "register list must contain at least 1 and at most 16 registers"
msgstr ""
-#: config/tc-arm.c:20789
+#: config/tc-arm.c:20527
msgid "register list must contain at least 1 and at most 32 registers"
msgstr ""
-#: config/tc-arm.c:20842 config/tc-arm.c:20875
+#: config/tc-arm.c:20580 config/tc-arm.c:20613
msgid "Use of PC here is UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:20844
+#: config/tc-arm.c:20582
msgid "Use of PC here is deprecated"
msgstr ""
-#: config/tc-arm.c:20878
+#: config/tc-arm.c:20616
msgid "instruction does not accept register index"
msgstr ""
-#: config/tc-arm.c:20881
+#: config/tc-arm.c:20619
msgid "instruction does not accept PC-relative addressing"
msgstr ""
-#: config/tc-arm.c:20903 config/tc-arm.c:20912
+#: config/tc-arm.c:20641 config/tc-arm.c:20650
msgid "Instruction not permitted on this architecture"
msgstr ""
-#: config/tc-arm.c:20961
+#: config/tc-arm.c:20699
msgid "bad alignment"
msgstr ""
-#: config/tc-arm.c:20978
+#: config/tc-arm.c:20716
msgid "bad list type for instruction"
msgstr ""
-#: config/tc-arm.c:21022
+#: config/tc-arm.c:20760
msgid "unsupported alignment for instruction"
msgstr ""
-#: config/tc-arm.c:21041 config/tc-arm.c:21135 config/tc-arm.c:21147
-#: config/tc-arm.c:21157 config/tc-arm.c:21171
+#: config/tc-arm.c:20779 config/tc-arm.c:20873 config/tc-arm.c:20885
+#: config/tc-arm.c:20895 config/tc-arm.c:20909
msgid "bad list length"
msgstr ""
-#: config/tc-arm.c:21046
+#: config/tc-arm.c:20784
msgid "stride of 2 unavailable when element size is 8"
msgstr ""
-#: config/tc-arm.c:21079 config/tc-arm.c:21155
+#: config/tc-arm.c:20817 config/tc-arm.c:20893
msgid "can't use alignment with this instruction"
msgstr ""
-#: config/tc-arm.c:21227
+#: config/tc-arm.c:20965
msgid "post-index must be a register"
msgstr ""
-#: config/tc-arm.c:21229
+#: config/tc-arm.c:20967
msgid "bad register for post-index"
msgstr ""
-#: config/tc-arm.c:21451
+#: config/tc-arm.c:21189
msgid "scalar out of range"
msgstr ""
-#: config/tc-arm.c:21584
+#: config/tc-arm.c:21322
msgid ""
"Dot Product instructions cannot be conditional, the behaviour is "
"UNPREDICTABLE"
msgstr ""
-#: config/tc-arm.c:21659 config/tc-arm.c:21687 config/tc-arm.c:22369
+#: config/tc-arm.c:21397 config/tc-arm.c:21425 config/tc-arm.c:22107
msgid "index must be 0 or 1"
msgstr ""
-#: config/tc-arm.c:21662 config/tc-arm.c:21690 config/tc-arm.c:22372
+#: config/tc-arm.c:21400 config/tc-arm.c:21428 config/tc-arm.c:22110
msgid "indexed register must be less than 16"
msgstr ""
-#: config/tc-arm.c:21728
+#: config/tc-arm.c:21466
msgid "Register must be r0-r14 except r13, or APSR_nzcv."
msgstr ""
-#: config/tc-arm.c:21731
+#: config/tc-arm.c:21469
msgid "Register must be an even register between r0-r10."
msgstr ""
-#: config/tc-arm.c:21756
+#: config/tc-arm.c:21494
msgid "CDE Coprocessor must be in range 0-7"
msgstr ""
-#: config/tc-arm.c:21790
+#: config/tc-arm.c:21528
msgid "cx1d requires consecutive destination registers."
msgstr ""
-#: config/tc-arm.c:21820
+#: config/tc-arm.c:21558
msgid "cx2d requires consecutive destination registers."
msgstr ""
-#: config/tc-arm.c:21859
+#: config/tc-arm.c:21597
msgid "cx3d requires consecutive destination registers."
msgstr ""
-#: config/tc-arm.c:22051
+#: config/tc-arm.c:21789
msgid "'q' register must be in range 0-7"
msgstr ""
-#: config/tc-arm.c:22054
+#: config/tc-arm.c:21792
msgid "'d' register must be in range 0-15"
msgstr ""
-#: config/tc-arm.c:22056
+#: config/tc-arm.c:21794
msgid "'s' register must be in range 0-31"
msgstr ""
-#: config/tc-arm.c:22111
+#: config/tc-arm.c:21849
msgid "vcx instructions with Q registers require MVE"
msgstr ""
-#: config/tc-arm.c:22116
+#: config/tc-arm.c:21854
msgid ""
"vcx instructions with S or D registers require either MVE or Armv8-M "
"floating point extension."
msgstr ""
-#: config/tc-arm.c:22132
+#: config/tc-arm.c:21870
msgid "vcx1 with S or D registers takes immediate within 0-2047"
msgstr ""
-#: config/tc-arm.c:22148
+#: config/tc-arm.c:21886
msgid "vcx2 with S or D registers takes immediate within 0-63"
msgstr ""
-#: config/tc-arm.c:22163
+#: config/tc-arm.c:21901
msgid "vcx2 with S or D registers takes immediate within 0-7"
msgstr ""
-#: config/tc-arm.c:22753 config/tc-arm.c:22874
+#: config/tc-arm.c:22491 config/tc-arm.c:22612
msgid "conditional infixes are deprecated in unified syntax"
msgstr ""
-#: config/tc-arm.c:23085
+#: config/tc-arm.c:22823
msgid "Warning: conditional outside an IT block for Thumb."
msgstr ""
-#: config/tc-arm.c:23413
+#: config/tc-arm.c:23151
msgid "Short branches, Undefined, SVC, LDM/STM"
msgstr ""
-#: config/tc-arm.c:23414
+#: config/tc-arm.c:23152
msgid "Miscellaneous 16-bit instructions"
msgstr ""
-#: config/tc-arm.c:23415
+#: config/tc-arm.c:23153
msgid "ADR"
msgstr ""
-#: config/tc-arm.c:23416
+#: config/tc-arm.c:23154
msgid "Literal loads"
msgstr ""
-#: config/tc-arm.c:23417
+#: config/tc-arm.c:23155
msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc"
msgstr ""
-#: config/tc-arm.c:23418
+#: config/tc-arm.c:23156
msgid "Hi-register ADD, MOV, CMP using pc"
msgstr ""
#. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue'
#. field in asm_opcode. 'tvalue' is used at the stage this check happen.
-#: config/tc-arm.c:23421
+#: config/tc-arm.c:23159
msgid "ADD/SUB sp, sp #imm"
msgstr ""
-#: config/tc-arm.c:23443
+#: config/tc-arm.c:23181
msgid ""
"IT blocks containing 32-bit Thumb instructions are performance deprecated in "
"ARMv8-A and ARMv8-R"
msgstr ""
-#: config/tc-arm.c:23455
+#: config/tc-arm.c:23193
#, c-format
msgid ""
"IT blocks containing 16-bit Thumb instructions of the following class are "
"performance deprecated in ARMv8-A and ARMv8-R: %s"
msgstr ""
-#: config/tc-arm.c:23469
+#: config/tc-arm.c:23207
msgid ""
"IT blocks containing more than one conditional instruction are performance "
"deprecated in ARMv8-A and ARMv8-R"
msgstr ""
-#: config/tc-arm.c:23587
+#: config/tc-arm.c:23325
#, c-format
msgid "bad instruction `%s'"
msgstr ""
-#: config/tc-arm.c:23593
+#: config/tc-arm.c:23331
msgid "s suffix on comparison instruction is deprecated"
msgstr ""
-#: config/tc-arm.c:23613
+#: config/tc-arm.c:23351
msgid "SVC is not permitted on this architecture"
msgstr ""
-#: config/tc-arm.c:23615
+#: config/tc-arm.c:23353
#, c-format
msgid "selected processor does not support `%s' in Thumb mode"
msgstr ""
-#: config/tc-arm.c:23621
+#: config/tc-arm.c:23359
msgid "Thumb does not support conditional execution"
msgstr ""
-#: config/tc-arm.c:23641
+#: config/tc-arm.c:23379
#, c-format
msgid ""
"selected processor does not support 32bit wide variant of instruction `%s'"
msgstr ""
-#: config/tc-arm.c:23644
+#: config/tc-arm.c:23382
#, c-format
msgid "selected processor does not support `%s' in Thumb-2 mode"
msgstr ""
-#: config/tc-arm.c:23669
+#: config/tc-arm.c:23407
#, c-format
msgid "cannot honor width suffix -- `%s'"
msgstr ""
-#: config/tc-arm.c:23711
+#: config/tc-arm.c:23449
#, c-format
msgid "selected processor does not support `%s' in ARM mode"
msgstr ""
-#: config/tc-arm.c:23716
+#: config/tc-arm.c:23454
#, c-format
msgid "width suffixes are invalid in ARM mode -- `%s'"
msgstr ""
-#: config/tc-arm.c:23749
+#: config/tc-arm.c:23487
#, c-format
msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'"
msgstr ""
-#: config/tc-arm.c:23767
+#: config/tc-arm.c:23505
#, c-format
msgid "section '%s' finished with an open IT block."
msgstr ""
-#: config/tc-arm.c:23770
+#: config/tc-arm.c:23508
#, c-format
msgid "section '%s' finished with an open VPT/VPST block."
msgstr ""
-#: config/tc-arm.c:23777
+#: config/tc-arm.c:23515
msgid "file finished with an open IT block."
msgstr ""
-#: config/tc-arm.c:23779
+#: config/tc-arm.c:23517
msgid "file finished with an open VPT/VPST block."
msgstr ""
-#: config/tc-arm.c:27488
+#: config/tc-arm.c:26667
#, c-format
msgid "alignments greater than %d bytes not supported in .text sections."
msgstr ""
-#: config/tc-arm.c:27754 config/tc-ia64.c:3588
+#: config/tc-arm.c:26933 config/tc-ia64.c:3588
#, c-format
msgid "Group section `%s' has no group signature"
msgstr ""
-#: config/tc-arm.c:27800
+#: config/tc-arm.c:26979
msgid "handlerdata in cantunwind frame"
msgstr ""
-#: config/tc-arm.c:27818
+#: config/tc-arm.c:26997
msgid "too many unwind opcodes for personality routine 0"
msgstr ""
-#: config/tc-arm.c:27851
+#: config/tc-arm.c:27030
msgid "attempt to recreate an unwind entry"
msgstr ""
-#: config/tc-arm.c:27862
+#: config/tc-arm.c:27041
msgid "too many unwind opcodes"
msgstr ""
-#: config/tc-arm.c:28166
+#: config/tc-arm.c:27345
#, c-format
msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s"
msgstr ""
-#: config/tc-arm.c:28528 config/tc-arm.c:28596
+#: config/tc-arm.c:27707 config/tc-arm.c:27775
#, c-format
msgid "symbol %s is in a different section"
msgstr ""
-#: config/tc-arm.c:28530 config/tc-arm.c:28598
+#: config/tc-arm.c:27709 config/tc-arm.c:27777
#, c-format
msgid "symbol %s is weak and may be overridden later"
msgstr ""
-#: config/tc-arm.c:28575 config/tc-arm.c:28947
+#: config/tc-arm.c:27754 config/tc-arm.c:28126
#, c-format
msgid "invalid constant (%lx) after fixup"
msgstr ""
-#: config/tc-arm.c:28631
+#: config/tc-arm.c:27810
#, c-format
msgid "unable to compute ADRL instructions for PC offset of 0x%lx"
msgstr ""
-#: config/tc-arm.c:28667 config/tc-arm.c:28697
+#: config/tc-arm.c:27846 config/tc-arm.c:27876
msgid "invalid literal constant: pool needs to be closer"
msgstr ""
-#: config/tc-arm.c:28670 config/tc-arm.c:28719
+#: config/tc-arm.c:27849 config/tc-arm.c:27898
#, c-format
msgid "bad immediate value for offset (%ld)"
msgstr ""
-#: config/tc-arm.c:28700
+#: config/tc-arm.c:27879
#, c-format
msgid "bad immediate value for 8-bit offset (%ld)"
msgstr ""
-#: config/tc-arm.c:28760
+#: config/tc-arm.c:27939
msgid "offset not a multiple of 4"
msgstr ""
-#: config/tc-arm.c:28963
+#: config/tc-arm.c:28142
msgid "invalid smc expression"
msgstr ""
-#: config/tc-arm.c:28973
+#: config/tc-arm.c:28152
msgid "invalid hvc expression"
msgstr ""
-#: config/tc-arm.c:28984 config/tc-arm.c:28993
+#: config/tc-arm.c:28163 config/tc-arm.c:28172
msgid "invalid swi expression"
msgstr ""
-#: config/tc-arm.c:29003
+#: config/tc-arm.c:28182
msgid "invalid expression in load/store multiple"
msgstr ""
-#: config/tc-arm.c:29065
+#: config/tc-arm.c:28244
#, c-format
msgid "blx to '%s' an ARM ISA state function changed to bl"
msgstr ""
-#: config/tc-arm.c:29084
+#: config/tc-arm.c:28263
msgid "misaligned branch destination"
msgstr ""
-#: config/tc-arm.c:29205
+#: config/tc-arm.c:28384
#, c-format
msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl"
msgstr ""
-#: config/tc-arm.c:29254
+#: config/tc-arm.c:28433
msgid "Thumb2 branch out of range"
msgstr ""
-#: config/tc-arm.c:29306 config/tc-arm.c:29339
+#: config/tc-arm.c:28485 config/tc-arm.c:28518
msgid "Relocation supported only in FDPIC mode"
msgstr ""
-#: config/tc-arm.c:29369
+#: config/tc-arm.c:28548
msgid "rel31 relocation overflow"
msgstr ""
-#: config/tc-arm.c:29391 config/tc-arm.c:29397 config/tc-arm.c:29401
-#: config/tc-arm.c:29448
+#: config/tc-arm.c:28570 config/tc-arm.c:28576 config/tc-arm.c:28580
+#: config/tc-arm.c:28627
msgid "co-processor offset out of range"
msgstr ""
-#: config/tc-arm.c:29465
+#: config/tc-arm.c:28644
#, c-format
msgid "invalid offset, target not word aligned (0x%08lX)"
msgstr ""
-#: config/tc-arm.c:29471
+#: config/tc-arm.c:28650
msgid "section does not have enough alignment to ensure safe PC-relative loads"
msgstr ""
-#: config/tc-arm.c:29475 config/tc-arm.c:29484 config/tc-arm.c:29492
-#: config/tc-arm.c:29500 config/tc-arm.c:29508
+#: config/tc-arm.c:28654 config/tc-arm.c:28663 config/tc-arm.c:28671
+#: config/tc-arm.c:28679 config/tc-arm.c:28687
#, c-format
msgid "invalid offset, value too big (0x%08lX)"
msgstr ""
-#: config/tc-arm.c:29549
+#: config/tc-arm.c:28728
msgid "invalid Hi register with immediate"
msgstr ""
-#: config/tc-arm.c:29565
+#: config/tc-arm.c:28744
msgid "invalid immediate for stack address calculation"
msgstr ""
-#: config/tc-arm.c:29584
+#: config/tc-arm.c:28763
msgid "address calculation needs a strongly defined nearby symbol"
msgstr ""
-#: config/tc-arm.c:29600
+#: config/tc-arm.c:28779
msgid "symbol too far away"
msgstr ""
-#: config/tc-arm.c:29612
+#: config/tc-arm.c:28791
#, c-format
msgid "invalid immediate for address calculation (value = 0x%08lX)"
msgstr ""
-#: config/tc-arm.c:29642
+#: config/tc-arm.c:28821
#, c-format
msgid "invalid immediate: %ld is out of range"
msgstr ""
-#: config/tc-arm.c:29654
+#: config/tc-arm.c:28833
#, c-format
msgid "invalid shift value: %ld"
msgstr ""
-#: config/tc-arm.c:29724 config/tc-arm.c:29795
+#: config/tc-arm.c:28903 config/tc-arm.c:28974
#, c-format
msgid "the offset 0x%08lX is not representable"
msgstr ""
-#: config/tc-arm.c:29756
+#: config/tc-arm.c:28935
#, c-format
msgid "Unable to process relocation for thumb opcode: %lx"
msgstr ""
-#: config/tc-arm.c:29835
+#: config/tc-arm.c:29014
#, c-format
msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)"
msgstr ""
-#: config/tc-arm.c:29874
+#: config/tc-arm.c:29053
#, c-format
msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)"
msgstr ""
-#: config/tc-arm.c:29914
+#: config/tc-arm.c:29093
#, c-format
msgid "bad offset 0x%08lX (must be word-aligned)"
msgstr ""
-#: config/tc-arm.c:29919
+#: config/tc-arm.c:29098
#, c-format
msgid "bad offset 0x%08lX (must be an 8-bit number of words)"
msgstr ""
-#: config/tc-arm.c:30140 config/tc-score.c:7314
+#: config/tc-arm.c:29319 config/tc-score.c:7314
#, c-format
msgid "bad relocation fixup type (%d)"
msgstr ""
-#: config/tc-arm.c:30258
+#: config/tc-arm.c:29437
msgid "literal referenced across section boundary"
msgstr ""
-#: config/tc-arm.c:30338
+#: config/tc-arm.c:29517
msgid "internal relocation (type: IMMEDIATE) not fixed up"
msgstr ""
-#: config/tc-arm.c:30343
+#: config/tc-arm.c:29522
msgid "ADRL used for a symbol not defined in the same file"
msgstr ""
-#: config/tc-arm.c:30350
+#: config/tc-arm.c:29529
#, c-format
msgid "%s used for a symbol not defined in the same file"
msgstr ""
-#: config/tc-arm.c:30366
+#: config/tc-arm.c:29545
#, c-format
msgid "undefined local label `%s'"
msgstr ""
-#: config/tc-arm.c:30372
+#: config/tc-arm.c:29551
msgid "internal_relocation (type: OFFSET_IMM) not fixed up"
msgstr ""
-#: config/tc-arm.c:30394 config/tc-cris.c:4000 config/tc-csky.c:1152
+#: config/tc-arm.c:29573 config/tc-cris.c:4000 config/tc-csky.c:1152
#: config/tc-ft32.c:708 config/tc-mcore.c:1932 config/tc-microblaze.c:2062
#: config/tc-mmix.c:2909 config/tc-moxie.c:823 config/tc-ns32k.c:2245
#: config/tc-score.c:7401
msgid "<unknown>"
msgstr ""
-#: config/tc-arm.c:30793
+#: config/tc-arm.c:29972
#, c-format
msgid "%s: unexpected function type: %d"
msgstr ""
-#: config/tc-arm.c:30933
+#: config/tc-arm.c:30112
msgid "use of old and new-style options to set CPU type"
msgstr ""
-#: config/tc-arm.c:30952
+#: config/tc-arm.c:30131
msgid "use of old and new-style options to set FPU type"
msgstr ""
-#: config/tc-arm.c:31031
+#: config/tc-arm.c:30204
msgid "hard-float conflicts with specified fpu"
msgstr ""
-#: config/tc-arm.c:31222
+#: config/tc-arm.c:30387
msgid "generate PIC code"
msgstr ""
-#: config/tc-arm.c:31223
+#: config/tc-arm.c:30388
msgid "assemble Thumb code"
msgstr ""
-#: config/tc-arm.c:31224
+#: config/tc-arm.c:30389
msgid "support ARM/Thumb interworking"
msgstr ""
-#: config/tc-arm.c:31226
+#: config/tc-arm.c:30391
msgid "code uses 32-bit program counter"
msgstr ""
-#: config/tc-arm.c:31227
+#: config/tc-arm.c:30392
msgid "code uses 26-bit program counter"
msgstr ""
-#: config/tc-arm.c:31228
+#: config/tc-arm.c:30393
msgid "floating point args are in fp regs"
msgstr ""
-#: config/tc-arm.c:31230
+#: config/tc-arm.c:30395
msgid "re-entrant code"
msgstr ""
-#: config/tc-arm.c:31231
+#: config/tc-arm.c:30396
msgid "code is ATPCS conformant"
msgstr ""
#. These are recognized by the assembler, but have no affect on code.
-#: config/tc-arm.c:31237
+#: config/tc-arm.c:30402
msgid "use frame pointer"
msgstr ""
-#: config/tc-arm.c:31238
+#: config/tc-arm.c:30403
msgid "use stack size checking"
msgstr ""
-#: config/tc-arm.c:31241
+#: config/tc-arm.c:30406
msgid "do not warn on use of deprecated feature"
msgstr ""
-#: config/tc-arm.c:31244
+#: config/tc-arm.c:30409
msgid ""
"warn about performance deprecated IT instructions in ARMv8-A and ARMv8-R"
msgstr ""
-#: config/tc-arm.c:31248
+#: config/tc-arm.c:30413
msgid "warn about symbols that match instruction names [default]"
msgstr ""
-#: config/tc-arm.c:31249
+#: config/tc-arm.c:30414
msgid "disable warnings about symobls that match instructions"
msgstr ""
#. DON'T add any new processors to this list -- we want the whole list
#. to go away... Add them to the processors table instead.
-#: config/tc-arm.c:31265 config/tc-arm.c:31266
+#: config/tc-arm.c:30430 config/tc-arm.c:30431
msgid "use -mcpu=arm1"
msgstr ""
-#: config/tc-arm.c:31267 config/tc-arm.c:31268
+#: config/tc-arm.c:30432 config/tc-arm.c:30433
msgid "use -mcpu=arm2"
msgstr ""
-#: config/tc-arm.c:31269 config/tc-arm.c:31270
+#: config/tc-arm.c:30434 config/tc-arm.c:30435
msgid "use -mcpu=arm250"
msgstr ""
-#: config/tc-arm.c:31271 config/tc-arm.c:31272
+#: config/tc-arm.c:30436 config/tc-arm.c:30437
msgid "use -mcpu=arm3"
msgstr ""
-#: config/tc-arm.c:31273 config/tc-arm.c:31274
+#: config/tc-arm.c:30438 config/tc-arm.c:30439
msgid "use -mcpu=arm6"
msgstr ""
-#: config/tc-arm.c:31275 config/tc-arm.c:31276
+#: config/tc-arm.c:30440 config/tc-arm.c:30441
msgid "use -mcpu=arm600"
msgstr ""
-#: config/tc-arm.c:31277 config/tc-arm.c:31278
+#: config/tc-arm.c:30442 config/tc-arm.c:30443
msgid "use -mcpu=arm610"
msgstr ""
-#: config/tc-arm.c:31279 config/tc-arm.c:31280
+#: config/tc-arm.c:30444 config/tc-arm.c:30445
msgid "use -mcpu=arm620"
msgstr ""
-#: config/tc-arm.c:31281 config/tc-arm.c:31282
+#: config/tc-arm.c:30446 config/tc-arm.c:30447
msgid "use -mcpu=arm7"
msgstr ""
-#: config/tc-arm.c:31283 config/tc-arm.c:31284
+#: config/tc-arm.c:30448 config/tc-arm.c:30449
msgid "use -mcpu=arm70"
msgstr ""
-#: config/tc-arm.c:31285 config/tc-arm.c:31286
+#: config/tc-arm.c:30450 config/tc-arm.c:30451
msgid "use -mcpu=arm700"
msgstr ""
-#: config/tc-arm.c:31287 config/tc-arm.c:31288
+#: config/tc-arm.c:30452 config/tc-arm.c:30453
msgid "use -mcpu=arm700i"
msgstr ""
-#: config/tc-arm.c:31289 config/tc-arm.c:31290
+#: config/tc-arm.c:30454 config/tc-arm.c:30455
msgid "use -mcpu=arm710"
msgstr ""
-#: config/tc-arm.c:31291 config/tc-arm.c:31292
+#: config/tc-arm.c:30456 config/tc-arm.c:30457
msgid "use -mcpu=arm710c"
msgstr ""
-#: config/tc-arm.c:31293 config/tc-arm.c:31294
+#: config/tc-arm.c:30458 config/tc-arm.c:30459
msgid "use -mcpu=arm720"
msgstr ""
-#: config/tc-arm.c:31295 config/tc-arm.c:31296
+#: config/tc-arm.c:30460 config/tc-arm.c:30461
msgid "use -mcpu=arm7d"
msgstr ""
-#: config/tc-arm.c:31297 config/tc-arm.c:31298
+#: config/tc-arm.c:30462 config/tc-arm.c:30463
msgid "use -mcpu=arm7di"
msgstr ""
-#: config/tc-arm.c:31299 config/tc-arm.c:31300
+#: config/tc-arm.c:30464 config/tc-arm.c:30465
msgid "use -mcpu=arm7m"
msgstr ""
-#: config/tc-arm.c:31301 config/tc-arm.c:31302
+#: config/tc-arm.c:30466 config/tc-arm.c:30467
msgid "use -mcpu=arm7dm"
msgstr ""
-#: config/tc-arm.c:31303 config/tc-arm.c:31304
+#: config/tc-arm.c:30468 config/tc-arm.c:30469
msgid "use -mcpu=arm7dmi"
msgstr ""
-#: config/tc-arm.c:31305 config/tc-arm.c:31306
+#: config/tc-arm.c:30470 config/tc-arm.c:30471
msgid "use -mcpu=arm7100"
msgstr ""
-#: config/tc-arm.c:31307 config/tc-arm.c:31308
+#: config/tc-arm.c:30472 config/tc-arm.c:30473
msgid "use -mcpu=arm7500"
msgstr ""
-#: config/tc-arm.c:31309 config/tc-arm.c:31310
+#: config/tc-arm.c:30474 config/tc-arm.c:30475
msgid "use -mcpu=arm7500fe"
msgstr ""
-#: config/tc-arm.c:31311 config/tc-arm.c:31312 config/tc-arm.c:31313
-#: config/tc-arm.c:31314
+#: config/tc-arm.c:30476 config/tc-arm.c:30477 config/tc-arm.c:30478
+#: config/tc-arm.c:30479
msgid "use -mcpu=arm7tdmi"
msgstr ""
-#: config/tc-arm.c:31315 config/tc-arm.c:31316
+#: config/tc-arm.c:30480 config/tc-arm.c:30481
msgid "use -mcpu=arm710t"
msgstr ""
-#: config/tc-arm.c:31317 config/tc-arm.c:31318
+#: config/tc-arm.c:30482 config/tc-arm.c:30483
msgid "use -mcpu=arm720t"
msgstr ""
-#: config/tc-arm.c:31319 config/tc-arm.c:31320
+#: config/tc-arm.c:30484 config/tc-arm.c:30485
msgid "use -mcpu=arm740t"
msgstr ""
-#: config/tc-arm.c:31321 config/tc-arm.c:31322
+#: config/tc-arm.c:30486 config/tc-arm.c:30487
msgid "use -mcpu=arm8"
msgstr ""
-#: config/tc-arm.c:31323 config/tc-arm.c:31324
+#: config/tc-arm.c:30488 config/tc-arm.c:30489
msgid "use -mcpu=arm810"
msgstr ""
-#: config/tc-arm.c:31325 config/tc-arm.c:31326
+#: config/tc-arm.c:30490 config/tc-arm.c:30491
msgid "use -mcpu=arm9"
msgstr ""
-#: config/tc-arm.c:31327 config/tc-arm.c:31328
+#: config/tc-arm.c:30492 config/tc-arm.c:30493
msgid "use -mcpu=arm9tdmi"
msgstr ""
-#: config/tc-arm.c:31329 config/tc-arm.c:31330
+#: config/tc-arm.c:30494 config/tc-arm.c:30495
msgid "use -mcpu=arm920"
msgstr ""
-#: config/tc-arm.c:31331 config/tc-arm.c:31332
+#: config/tc-arm.c:30496 config/tc-arm.c:30497
msgid "use -mcpu=arm940"
msgstr ""
-#: config/tc-arm.c:31333
+#: config/tc-arm.c:30498
msgid "use -mcpu=strongarm"
msgstr ""
-#: config/tc-arm.c:31335
+#: config/tc-arm.c:30500
msgid "use -mcpu=strongarm110"
msgstr ""
-#: config/tc-arm.c:31337
+#: config/tc-arm.c:30502
msgid "use -mcpu=strongarm1100"
msgstr ""
-#: config/tc-arm.c:31339
+#: config/tc-arm.c:30504
msgid "use -mcpu=strongarm1110"
msgstr ""
-#: config/tc-arm.c:31340
+#: config/tc-arm.c:30505
msgid "use -mcpu=xscale"
msgstr ""
-#: config/tc-arm.c:31341
+#: config/tc-arm.c:30506
msgid "use -mcpu=iwmmxt"
msgstr ""
-#: config/tc-arm.c:31342
+#: config/tc-arm.c:30507
msgid "use -mcpu=all"
msgstr ""
#. Architecture variants -- don't add any more to this list either.
-#: config/tc-arm.c:31345 config/tc-arm.c:31346
+#: config/tc-arm.c:30510 config/tc-arm.c:30511
msgid "use -march=armv2"
msgstr ""
-#: config/tc-arm.c:31347 config/tc-arm.c:31348
+#: config/tc-arm.c:30512 config/tc-arm.c:30513
msgid "use -march=armv2a"
msgstr ""
-#: config/tc-arm.c:31349 config/tc-arm.c:31350
+#: config/tc-arm.c:30514 config/tc-arm.c:30515
msgid "use -march=armv3"
msgstr ""
-#: config/tc-arm.c:31351 config/tc-arm.c:31352
+#: config/tc-arm.c:30516 config/tc-arm.c:30517
msgid "use -march=armv3m"
msgstr ""
-#: config/tc-arm.c:31353 config/tc-arm.c:31354
+#: config/tc-arm.c:30518 config/tc-arm.c:30519
msgid "use -march=armv4"
msgstr ""
-#: config/tc-arm.c:31355 config/tc-arm.c:31356
+#: config/tc-arm.c:30520 config/tc-arm.c:30521
msgid "use -march=armv4t"
msgstr ""
-#: config/tc-arm.c:31357 config/tc-arm.c:31358
+#: config/tc-arm.c:30522 config/tc-arm.c:30523
msgid "use -march=armv5"
msgstr ""
-#: config/tc-arm.c:31359 config/tc-arm.c:31360
+#: config/tc-arm.c:30524 config/tc-arm.c:30525
msgid "use -march=armv5t"
msgstr ""
-#: config/tc-arm.c:31361 config/tc-arm.c:31362
+#: config/tc-arm.c:30526 config/tc-arm.c:30527
msgid "use -march=armv5te"
msgstr ""
-#. Floating point variants -- don't add any more to this list either.
-#: config/tc-arm.c:31365
-msgid "use -mfpu=fpe"
-msgstr ""
-
-#: config/tc-arm.c:31366
-msgid "use -mfpu=fpa10"
+#: config/tc-arm.c:30528
+msgid "use -mfpu=softvfp"
msgstr ""
-#: config/tc-arm.c:31367
-msgid "use -mfpu=fpa11"
-msgstr ""
-
-#: config/tc-arm.c:31369
-msgid "use either -mfpu=softfpa or -mfpu=softvfp"
-msgstr ""
-
-#: config/tc-arm.c:32497
+#: config/tc-arm.c:31685
msgid "extension does not apply to the base architecture"
msgstr ""
-#: config/tc-arm.c:32526
+#: config/tc-arm.c:31714
msgid "architectural extensions must be specified in alphabetical order"
msgstr ""
-#: config/tc-arm.c:32665 config/tc-arm.c:33647
+#: config/tc-arm.c:31853 config/tc-arm.c:32836
#, c-format
msgid "unknown floating point format `%s'\n"
msgstr ""
-#: config/tc-arm.c:32681 config/tc-csky.c:1264
+#: config/tc-arm.c:31869 config/tc-csky.c:1264
#, c-format
msgid "unknown floating point abi `%s'\n"
msgstr ""
-#: config/tc-arm.c:32697
+#: config/tc-arm.c:31885
#, c-format
msgid "unknown EABI `%s'\n"
msgstr ""
-#: config/tc-arm.c:32717
+#: config/tc-arm.c:31905
#, c-format
msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never."
msgstr ""
-#: config/tc-arm.c:32740 config/tc-metag.c:5911
+#: config/tc-arm.c:31928 config/tc-metag.c:5911
msgid "<fpu name>\t assemble for FPU architecture <fpu name>"
msgstr ""
-#: config/tc-arm.c:32742
+#: config/tc-arm.c:31930
msgid "<abi>\t assemble for floating point ABI <abi>"
msgstr ""
-#: config/tc-arm.c:32745
+#: config/tc-arm.c:31933
msgid "<ver>\t\t assemble for eabi version <ver>"
msgstr ""
-#: config/tc-arm.c:32748
+#: config/tc-arm.c:31936
msgid "<mode>\t controls implicit insertion of IT instructions"
msgstr ""
-#: config/tc-arm.c:32750
+#: config/tc-arm.c:31938
msgid "\t\t\t TI CodeComposer Studio syntax compatibility mode"
msgstr ""
-#: config/tc-arm.c:32753
+#: config/tc-arm.c:31941
msgid ""
"[ieee|alternative]\n"
" set the encoding for half precision floating point "
@@ -5821,53 +5806,53 @@ msgid ""
" or Arm alternative format."
msgstr ""
-#: config/tc-arm.c:32864
+#: config/tc-arm.c:32052
#, c-format
msgid " ARM-specific assembler options:\n"
msgstr ""
-#: config/tc-arm.c:32884
+#: config/tc-arm.c:32072
#, c-format
msgid " --fix-v4bx Allow BX in ARMv4 code\n"
msgstr ""
-#: config/tc-arm.c:32888
+#: config/tc-arm.c:32076
#, c-format
msgid " --fdpic generate an FDPIC object file\n"
msgstr ""
-#: config/tc-arm.c:33208
+#: config/tc-arm.c:32397
msgid "no architecture contains all the instructions used\n"
msgstr ""
-#: config/tc-arm.c:33400
+#: config/tc-arm.c:32589
msgid ".cpu: missing cpu name"
msgstr ""
-#: config/tc-arm.c:33448
+#: config/tc-arm.c:32637
msgid ".arch: missing architecture name"
msgstr ""
-#: config/tc-arm.c:33489
+#: config/tc-arm.c:32678
msgid ".object_arch: missing architecture name"
msgstr ""
-#: config/tc-arm.c:33526
+#: config/tc-arm.c:32715
msgid ".arch_extension: missing architecture extension"
msgstr ""
-#: config/tc-arm.c:33583
+#: config/tc-arm.c:32772
#, c-format
msgid ""
"architectural extension `%s' is not allowed for the current base architecture"
msgstr ""
-#: config/tc-arm.c:33606
+#: config/tc-arm.c:32795
#, c-format
msgid "unknown architecture extension `%s'\n"
msgstr ""
-#: config/tc-arm.c:33627
+#: config/tc-arm.c:32816
msgid ".fpu: missing fpu name"
msgstr ""
@@ -5944,7 +5929,7 @@ msgstr ""
msgid "constant out of 8-bit range: %d"
msgstr ""
-#: config/tc-avr.c:966 config/tc-score.c:1194 read.c:3967
+#: config/tc-avr.c:966 config/tc-score.c:1194 read.c:4023
msgid "illegal expression"
msgstr ""
@@ -6053,7 +6038,7 @@ msgstr ""
#. xgettext:c-format.
#: config/tc-avr.c:1865 config/tc-bfin.c:813 config/tc-d10v.c:1461
#: config/tc-d30v.c:1768 config/tc-metag.c:7016 config/tc-mn10200.c:772
-#: config/tc-mn10300.c:2178 config/tc-msp430.c:4645 config/tc-ppc.c:7768
+#: config/tc-mn10300.c:2178 config/tc-msp430.c:4645 config/tc-ppc.c:7770
#: config/tc-spu.c:878 config/tc-spu.c:1091 config/tc-v850.c:3360
#: config/tc-z80.c:3871
#, c-format
@@ -6208,33 +6193,33 @@ msgid ""
" -mxbpf alias for -misa-spec=xbpf\n"
msgstr ""
-#: config/tc-bpf.c:589
+#: config/tc-bpf.c:591
msgid "signed instruction operand out of range, shall fit in 32 bits"
msgstr ""
-#: config/tc-bpf.c:936
+#: config/tc-bpf.c:965
msgid "immediate out of range, shall fit in 32 bits"
msgstr ""
-#: config/tc-bpf.c:946
+#: config/tc-bpf.c:975
msgid "pc-relative offset out of range, shall fit in 32 bits"
msgstr ""
-#: config/tc-bpf.c:956 config/tc-bpf.c:966
+#: config/tc-bpf.c:985 config/tc-bpf.c:995
msgid "pc-relative offset out of range, shall fit in 16 bits"
msgstr ""
-#: config/tc-bpf.c:1349
+#: config/tc-bpf.c:1378
#, c-format
msgid "unexpected register name `%s' in expression"
msgstr ""
-#: config/tc-bpf.c:1668
+#: config/tc-bpf.c:1709
#, c-format
msgid "invalid %%-tag in BPF opcode '%s'\n"
msgstr ""
-#: config/tc-bpf.c:1715
+#: config/tc-bpf.c:1756
#, c-format
msgid "unrecognized instruction `%s'"
msgstr ""
@@ -6270,7 +6255,7 @@ msgstr ""
msgid "internal error: reloc %d (`%s') not supported by object file format"
msgstr ""
-#: config/tc-cr16.c:696 config/tc-i386.c:17001 config/tc-s390.c:2112
+#: config/tc-cr16.c:696 config/tc-i386.c:18173 config/tc-s390.c:2333
msgid "GOT already in symbol table"
msgstr ""
@@ -7058,7 +7043,7 @@ msgstr ""
msgid "more than 65K literal pools"
msgstr ""
-#: config/tc-csky.c:2342 read.c:3678
+#: config/tc-csky.c:2342 read.c:3734
#, c-format
msgid "bad floating literal: %s"
msgstr ""
@@ -7067,8 +7052,8 @@ msgstr ""
msgid "missing ']'"
msgstr ""
-#: config/tc-csky.c:2518 config/tc-mips.c:14347 config/tc-mips.c:14411
-#: config/tc-mips.c:14422 config/tc-score.c:2688 config/tc-score.c:2735
+#: config/tc-csky.c:2518 config/tc-mips.c:14361 config/tc-mips.c:14425
+#: config/tc-mips.c:14436 config/tc-score.c:2688 config/tc-score.c:2735
msgid "unrecognized opcode"
msgstr ""
@@ -7827,7 +7812,7 @@ msgstr ""
#. This seems more sane than saying "too many operands". We'll
#. get here only if the trailing trash starts with a comma.
-#: config/tc-h8300.c:1812 config/tc-mips.c:14363 config/tc-mips.c:14431
+#: config/tc-h8300.c:1812 config/tc-mips.c:14377 config/tc-mips.c:14445
#: config/tc-mmix.c:479 config/tc-mmix.c:491 config/tc-mmix.c:2547
#: config/tc-mmix.c:2571 config/tc-mmix.c:2844
msgid "invalid operands"
@@ -8312,592 +8297,633 @@ msgstr ""
msgid "Broken assembler. No assembly attempted."
msgstr ""
-#: config/tc-i386.c:1372
+#: config/tc-i386.c:1413
#, c-format
msgid "i386_output_nops called to generate nops of at most %d bytes!"
msgstr ""
-#: config/tc-i386.c:1541
+#: config/tc-i386.c:1593
#, c-format
msgid "invalid single nop size: %d (expect within [0, %d])"
msgstr ""
-#: config/tc-i386.c:1590
+#: config/tc-i386.c:1642
msgid "jump over nop padding out of range"
msgstr ""
-#: config/tc-i386.c:2569
+#: config/tc-i386.c:1956
+msgid "same oszc flag used twice"
+msgstr ""
+
+#: config/tc-i386.c:1988 config/tc-i386.c:1999
+msgid "unrecognized pseudo-suffix"
+msgstr ""
+
+#: config/tc-i386.c:2035
+msgid "unrecognized oszc flags or illegal `,' in pseudo-suffix"
+msgstr ""
+
+#: config/tc-i386.c:2052
+msgid "missing `}' or `,' in pseudo-suffix"
+msgstr ""
+
+#: config/tc-i386.c:2717
#, c-format
msgid "0x%<PRIx64> shortened to 0x%<PRIx64>"
msgstr ""
-#: config/tc-i386.c:2666 config/tc-i386.c:9871
+#: config/tc-i386.c:2814 config/tc-i386.c:4421 config/tc-i386.c:4432
+#: config/tc-i386.c:10864
msgid "same type of prefix used twice"
msgstr ""
-#: config/tc-i386.c:2678 config/tc-i386.c:2997
+#: config/tc-i386.c:2826 config/tc-i386.c:3151
#, c-format
msgid "64bit mode not supported on `%s'."
msgstr ""
-#: config/tc-i386.c:2685 config/tc-i386.c:3006
+#: config/tc-i386.c:2833 config/tc-i386.c:3160
#, c-format
msgid "32bit mode not supported on `%s'."
msgstr ""
-#: config/tc-i386.c:2727
+#: config/tc-i386.c:2885
msgid "bad argument to syntax directive."
msgstr ""
-#: config/tc-i386.c:2788
+#: config/tc-i386.c:2942
#, c-format
msgid "bad argument to %s_check directive."
msgstr ""
-#: config/tc-i386.c:2792
+#: config/tc-i386.c:2946
#, c-format
msgid "missing argument for %s_check directive"
msgstr ""
-#: config/tc-i386.c:2822
+#: config/tc-i386.c:2976
#, c-format
msgid "`%s' is not supported on `%s'"
msgstr ""
-#: config/tc-i386.c:2890
+#: config/tc-i386.c:3044
msgid "missing cpu architecture"
msgstr ""
-#: config/tc-i386.c:2928
+#: config/tc-i386.c:3082
msgid ".arch stack is empty"
msgstr ""
-#: config/tc-i386.c:2938
+#: config/tc-i386.c:3092
#, c-format
msgid "this `.arch pop' requires `.code%u%s' to be in effect"
msgstr ""
-#: config/tc-i386.c:3054
+#: config/tc-i386.c:3208
msgid "Unrecognized vector size specifier"
msgstr ""
-#: config/tc-i386.c:3090
+#: config/tc-i386.c:3244
#, c-format
msgid "no such architecture: `%s'"
msgstr ""
-#: config/tc-i386.c:3107
+#: config/tc-i386.c:3261
#, c-format
msgid "no such architecture modifier: `%s'"
msgstr ""
-#: config/tc-i386.c:3121 config/tc-i386.c:3144
+#: config/tc-i386.c:3275 config/tc-i386.c:3298
msgid "Intel MCU is 32bit ELF only"
msgstr ""
-#: config/tc-i386.c:3151 config/tc-i386.c:16897
+#: config/tc-i386.c:3305 config/tc-i386.c:18069
msgid "unknown architecture"
msgstr ""
-#: config/tc-i386.c:3527
+#: config/tc-i386.c:3681
msgid "there are no pc-relative size relocations"
msgstr ""
-#: config/tc-i386.c:3539
+#: config/tc-i386.c:3693
#, c-format
msgid "unknown relocation (%u)"
msgstr ""
-#: config/tc-i386.c:3541
+#: config/tc-i386.c:3695
#, c-format
msgid "%u-byte relocation cannot be applied to %u-byte field"
msgstr ""
-#: config/tc-i386.c:3545
+#: config/tc-i386.c:3699
msgid "non-pc-relative relocation for pc-relative field"
msgstr ""
-#: config/tc-i386.c:3550
+#: config/tc-i386.c:3704
msgid "relocated field and relocation type differ in signedness"
msgstr ""
-#: config/tc-i386.c:3559
+#: config/tc-i386.c:3713
msgid "there are no unsigned pc-relative relocations"
msgstr ""
-#: config/tc-i386.c:3567
+#: config/tc-i386.c:3721
#, c-format
msgid "cannot do %u byte pc-relative relocation"
msgstr ""
-#: config/tc-i386.c:3584
+#: config/tc-i386.c:3738
#, c-format
msgid "cannot do %s %u byte relocation"
msgstr ""
-#: config/tc-i386.c:4026
+#: config/tc-i386.c:4196
#, c-format
msgid "ambiguous broadcast for `%s', using %u-bit form"
msgstr ""
-#: config/tc-i386.c:4292
+#: config/tc-i386.c:4422
+msgid "conflicting use of `data16' prefix"
+msgstr ""
+
+#: config/tc-i386.c:4510
#, c-format
-msgid ""
-"can't encode register '%s%s' in an instruction requiring REX/REX2 prefix"
+msgid "can't encode register '%s%s' in an instruction requiring %s prefix"
msgstr ""
-#: config/tc-i386.c:4376 config/tc-i386.c:6726
+#: config/tc-i386.c:4595 config/tc-i386.c:7541
#, c-format
msgid "invalid instruction `%s' after `%s'"
msgstr ""
-#: config/tc-i386.c:4382
+#: config/tc-i386.c:4601
#, c-format
msgid "missing `lock' with `%s'"
msgstr ""
-#: config/tc-i386.c:4389
+#: config/tc-i386.c:4608
#, c-format
msgid "instruction `%s' after `xacquire' not allowed"
msgstr ""
-#: config/tc-i386.c:4395
+#: config/tc-i386.c:4614
#, c-format
msgid "memory destination needed for instruction `%s' after `xrelease'"
msgstr ""
-#: config/tc-i386.c:5174
+#: config/tc-i386.c:5778
+msgid "`.noopt' arguments ignored"
+msgstr ""
+
+#: config/tc-i386.c:5964
#, c-format
msgid "`%s` changes flags which would affect control flow behavior"
msgstr ""
-#: config/tc-i386.c:5216
+#: config/tc-i386.c:6006
#, c-format
msgid "indirect `%s` with memory operand should be avoided"
msgstr ""
-#: config/tc-i386.c:5226
+#: config/tc-i386.c:6016
#, c-format
msgid "`%s` skips -mlfence-before-indirect-branch on `%s`"
msgstr ""
-#: config/tc-i386.c:5245
+#: config/tc-i386.c:6035
#, c-format
msgid "`%s` skips -mlfence-before-ret on `%s`"
msgstr ""
#. A non-zero addend in jump/JCC target makes control-flow tracking
#. difficult. Skip SCFI for now.
-#: config/tc-i386.c:5765
+#: config/tc-i386.c:6565
#, c-format
msgid "SCFI: `%s' insn with non-zero addend to sym not supported"
msgstr ""
-#: config/tc-i386.c:6012
+#: config/tc-i386.c:6812
#, c-format
msgid "SCFI: unsupported APX op %#x may cause incorrect CFI"
msgstr ""
-#: config/tc-i386.c:6403
+#: config/tc-i386.c:7209
#, c-format
msgid "SCFI: unhandled op %#x may cause incorrect CFI"
msgstr ""
-#: config/tc-i386.c:6406
+#: config/tc-i386.c:7212
#, c-format
msgid "SCFI: unexpected op %#x may cause incorrect CFI"
msgstr ""
-#: config/tc-i386.c:6571
+#: config/tc-i386.c:7382
msgid "operand size mismatch"
msgstr ""
-#: config/tc-i386.c:6574
+#: config/tc-i386.c:7385
msgid "operand type mismatch"
msgstr ""
-#: config/tc-i386.c:6577
+#: config/tc-i386.c:7388
msgid "register type mismatch"
msgstr ""
-#: config/tc-i386.c:6580
+#: config/tc-i386.c:7391
msgid "number of operands mismatch"
msgstr ""
-#: config/tc-i386.c:6583
+#: config/tc-i386.c:7394
msgid "invalid instruction suffix"
msgstr ""
-#: config/tc-i386.c:6586
+#: config/tc-i386.c:7397
msgid "constant doesn't fit in 4 bits"
msgstr ""
-#: config/tc-i386.c:6589
+#: config/tc-i386.c:7400
msgid "unsupported with Intel mnemonic"
msgstr ""
-#: config/tc-i386.c:6592
+#: config/tc-i386.c:7403
msgid "unsupported syntax"
msgstr ""
-#: config/tc-i386.c:6595
+#: config/tc-i386.c:7406
msgid "extended GPR cannot be used as base/index"
msgstr ""
-#: config/tc-i386.c:6598
+#: config/tc-i386.c:7409
+msgid "{nf} unsupported"
+msgstr ""
+
+#: config/tc-i386.c:7412
#, c-format
msgid "unsupported instruction `%s'"
msgstr ""
-#: config/tc-i386.c:6602 config/tc-i386.c:7084
+#: config/tc-i386.c:7416 config/tc-i386.c:7931
#, c-format
msgid "`%s' is not supported on `%s%s'"
msgstr ""
-#: config/tc-i386.c:6611
+#: config/tc-i386.c:7425
#, c-format
msgid "`%s%c' is not supported in 64-bit mode"
msgstr ""
-#: config/tc-i386.c:6615
+#: config/tc-i386.c:7429
#, c-format
msgid "`%s%c' is only supported in 64-bit mode"
msgstr ""
-#: config/tc-i386.c:6622 config/tc-i386.c:7078
+#: config/tc-i386.c:7436 config/tc-i386.c:7925
#, c-format
msgid "`%s' is not supported in 64-bit mode"
msgstr ""
-#: config/tc-i386.c:6625 config/tc-i386.c:7077
+#: config/tc-i386.c:7439 config/tc-i386.c:7924
#, c-format
msgid "`%s' is only supported in 64-bit mode"
msgstr ""
-#: config/tc-i386.c:6630
+#: config/tc-i386.c:7444
msgid "no VEX/XOP encoding"
msgstr ""
-#: config/tc-i386.c:6633
+#: config/tc-i386.c:7447
msgid "no EVEX encoding"
msgstr ""
-#: config/tc-i386.c:6636
+#: config/tc-i386.c:7450
msgid "invalid SIB address"
msgstr ""
-#: config/tc-i386.c:6639
+#: config/tc-i386.c:7453
msgid "invalid VSIB address"
msgstr ""
-#: config/tc-i386.c:6642
+#: config/tc-i386.c:7456
msgid "mask, index, and destination registers must be distinct"
msgstr ""
-#: config/tc-i386.c:6645
+#: config/tc-i386.c:7459
msgid "all tmm registers must be distinct"
msgstr ""
-#: config/tc-i386.c:6648
+#: config/tc-i386.c:7462
msgid "destination and source registers must be distinct"
msgstr ""
-#: config/tc-i386.c:6651
+#: config/tc-i386.c:7465
msgid "two dest registers must be distinct"
msgstr ""
-#: config/tc-i386.c:6654
+#: config/tc-i386.c:7468
msgid "rex2 pseudo prefix cannot be used"
msgstr ""
-#: config/tc-i386.c:6657
+#: config/tc-i386.c:7471
msgid "unsupported vector index register"
msgstr ""
-#: config/tc-i386.c:6660
+#: config/tc-i386.c:7474
msgid "unsupported broadcast"
msgstr ""
-#: config/tc-i386.c:6663
+#: config/tc-i386.c:7477
msgid "broadcast is needed for operand of such type"
msgstr ""
-#: config/tc-i386.c:6666
+#: config/tc-i386.c:7480
msgid "unsupported masking"
msgstr ""
-#: config/tc-i386.c:6669
+#: config/tc-i386.c:7483
msgid "mask not on destination operand"
msgstr ""
-#: config/tc-i386.c:6672
+#: config/tc-i386.c:7486
msgid "default mask isn't allowed"
msgstr ""
-#: config/tc-i386.c:6675
+#: config/tc-i386.c:7489
msgid "unsupported static rounding/sae"
msgstr ""
-#: config/tc-i386.c:6678
+#: config/tc-i386.c:7492
#, c-format
msgid "vector size above %u required for `%s'"
msgstr ""
-#: config/tc-i386.c:6682
+#: config/tc-i386.c:7496
msgid "'rsp' register cannot be used"
msgstr ""
-#: config/tc-i386.c:6685
+#: config/tc-i386.c:7499
msgid "internal error"
msgstr ""
-#: config/tc-i386.c:6688
+#: config/tc-i386.c:7502
#, c-format
msgid "%s for `%s'"
msgstr ""
-#: config/tc-i386.c:6716
+#: config/tc-i386.c:7531
#, c-format
msgid "SSE instruction `%s' is used"
msgstr ""
-#: config/tc-i386.c:6740
+#: config/tc-i386.c:7555
msgid "expecting lockable instruction after `lock'"
msgstr ""
-#: config/tc-i386.c:6756
+#: config/tc-i386.c:7571
#, c-format
msgid "data size prefix invalid with `%s'"
msgstr ""
-#: config/tc-i386.c:6769
+#: config/tc-i386.c:7583
#, c-format
msgid "TLS relocation cannot be used with `%s'"
msgstr ""
-#: config/tc-i386.c:6782
+#: config/tc-i386.c:7596
msgid "expecting valid branch instruction after `bnd'"
msgstr ""
-#: config/tc-i386.c:6786
+#: config/tc-i386.c:7600
msgid "expecting indirect branch instruction after `notrack'"
msgstr ""
-#: config/tc-i386.c:6791
+#: config/tc-i386.c:7605
msgid "32-bit address isn't allowed in 64-bit MPX instructions."
msgstr ""
-#: config/tc-i386.c:6795
+#: config/tc-i386.c:7609
msgid "16-bit address isn't allowed in MPX instructions"
msgstr ""
-#: config/tc-i386.c:6805
+#: config/tc-i386.c:7619
msgid "replacing `rep'/`repe' prefix by `bnd'"
msgstr ""
-#: config/tc-i386.c:6825
+#: config/tc-i386.c:7639
#, c-format
msgid "input/output port address isn't allowed with `%s'"
msgstr ""
-#: config/tc-i386.c:6847
+#: config/tc-i386.c:7672
#, c-format
msgid "'%s' only supports RIP-relative address"
msgstr ""
#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:6896
+#: config/tc-i386.c:7721
#, c-format
msgid "translating to `%sp'"
msgstr ""
-#: config/tc-i386.c:6903
+#: config/tc-i386.c:7728
#, c-format
msgid "instruction `%s' isn't supported outside of protected mode."
msgstr ""
-#: config/tc-i386.c:6911
+#: config/tc-i386.c:7741
#, c-format
msgid "REX prefix invalid with `%s'"
msgstr ""
-#: config/tc-i386.c:6918
+#: config/tc-i386.c:7748
#, c-format
msgid "{rex2} prefix invalid with `%s'"
msgstr ""
-#: config/tc-i386.c:7027 config/tc-i386.c:7301
+#: config/tc-i386.c:7872 config/tc-i386.c:8159
#, c-format
msgid "no such instruction: `%s'"
msgstr ""
-#: config/tc-i386.c:7052 config/tc-i386.c:7334
+#: config/tc-i386.c:7899 config/tc-i386.c:8201
#, c-format
msgid "invalid character %s in mnemonic"
msgstr ""
-#: config/tc-i386.c:7059
+#: config/tc-i386.c:7906
msgid "expecting prefix; got nothing"
msgstr ""
-#: config/tc-i386.c:7061
+#: config/tc-i386.c:7908
msgid "expecting mnemonic; got nothing"
msgstr ""
-#: config/tc-i386.c:7098
+#: config/tc-i386.c:7945
#, c-format
msgid "redundant %s prefix"
msgstr ""
-#: config/tc-i386.c:7199
+#: config/tc-i386.c:8010
+msgid "{nf} cannot be combined with {vex}/{vex3}"
+msgstr ""
+
+#: config/tc-i386.c:8057
#, c-format
msgid "ignoring `.s' suffix due to earlier `{%s}'"
msgstr ""
-#: config/tc-i386.c:7209
+#: config/tc-i386.c:8067
msgid "ignoring `.d8' suffix due to earlier `{disp<N>}'"
msgstr ""
-#: config/tc-i386.c:7219
+#: config/tc-i386.c:8077
msgid "ignoring `.d32' suffix due to earlier `{disp<N>}'"
msgstr ""
-#: config/tc-i386.c:7284
+#: config/tc-i386.c:8142
#, c-format
msgid "found `%sd'; assuming `%sl' was meant"
msgstr ""
-#: config/tc-i386.c:7383
+#: config/tc-i386.c:8250
#, c-format
msgid "invalid character %s before operand %d"
msgstr ""
-#: config/tc-i386.c:7395
+#: config/tc-i386.c:8262
#, c-format
msgid "unbalanced double quotes in operand %d."
msgstr ""
-#: config/tc-i386.c:7402
+#: config/tc-i386.c:8269
#, c-format
msgid "unbalanced parenthesis in operand %d."
msgstr ""
-#: config/tc-i386.c:7415
+#: config/tc-i386.c:8282
#, c-format
msgid "invalid character %s in operand %d"
msgstr ""
-#: config/tc-i386.c:7435
+#: config/tc-i386.c:8302
#, c-format
msgid "spurious operands; (%d operands/instruction max)"
msgstr ""
-#: config/tc-i386.c:7445 config/tc-i386.c:12869
+#: config/tc-i386.c:8312 config/tc-i386.c:13927
#, c-format
msgid "too many memory references for `%s'"
msgstr ""
-#: config/tc-i386.c:7466 config/tc-i386.c:12863
+#: config/tc-i386.c:8333 config/tc-i386.c:13921
msgid "expecting operand after ','; got nothing"
msgstr ""
-#: config/tc-i386.c:7471
+#: config/tc-i386.c:8338
msgid "expecting operand before ','; got nothing"
msgstr ""
-#: config/tc-i386.c:7747
+#: config/tc-i386.c:8614
#, c-format
msgid "0x%<PRIx64> out of range of signed 32bit displacement"
msgstr ""
-#: config/tc-i386.c:7951
+#: config/tc-i386.c:8818
msgid "mask, index, and destination registers should be distinct"
msgstr ""
-#: config/tc-i386.c:7968
+#: config/tc-i386.c:8835
msgid "index and destination registers should be distinct"
msgstr ""
-#: config/tc-i386.c:9024
+#: config/tc-i386.c:9957
#, c-format
msgid "indirect %s without `*'"
msgstr ""
#. Warn them that a data or address size prefix doesn't
#. affect assembly of the next line of code.
-#: config/tc-i386.c:9031
+#: config/tc-i386.c:9964
#, c-format
msgid "stand-alone `%s' prefix"
msgstr ""
-#: config/tc-i386.c:9100
+#: config/tc-i386.c:9971
+#, c-format
+msgid "mnemonic suffix used with `%s'"
+msgstr ""
+
+#: config/tc-i386.c:9976
+msgid ""
+"NOTE: Such forms are deprecated and will be rejected by a future version of "
+"the assembler"
+msgstr ""
+
+#: config/tc-i386.c:10058
#, c-format
msgid "`%s' operand %u must use `%ses' segment"
msgstr ""
-#: config/tc-i386.c:9230
+#: config/tc-i386.c:10188
msgid "generating 16-bit `iret' for .code16gcc directive"
msgstr ""
-#: config/tc-i386.c:9234
+#: config/tc-i386.c:10192
#, c-format
msgid "generating 32-bit `%s', unlike earlier gas versions"
msgstr ""
-#: config/tc-i386.c:9365
+#: config/tc-i386.c:10356
#, c-format
msgid "ambiguous operand size for `%s'"
msgstr ""
-#: config/tc-i386.c:9370
+#: config/tc-i386.c:10361
#, c-format
msgid ""
"no instruction mnemonic suffix given and no register operands; can't size `%"
"s'"
msgstr ""
-#: config/tc-i386.c:9375
+#: config/tc-i386.c:10366
#, c-format
msgid "%s; using default for `%s'"
msgstr ""
-#: config/tc-i386.c:9377
+#: config/tc-i386.c:10368
msgid "ambiguous operand size"
msgstr ""
-#: config/tc-i386.c:9378
+#: config/tc-i386.c:10369
msgid "no instruction mnemonic suffix given and no register operands"
msgstr ""
-#: config/tc-i386.c:9524
+#: config/tc-i386.c:10518
#, c-format
msgid "16-bit addressing unavailable for `%s'"
msgstr ""
-#: config/tc-i386.c:9592
+#: config/tc-i386.c:10586
#, c-format
msgid "invalid register operand size for `%s'"
msgstr ""
#. Any other register is bad.
-#: config/tc-i386.c:9629 config/tc-i386.c:9654 config/tc-i386.c:9695
-#: config/tc-i386.c:9734
+#: config/tc-i386.c:10625 config/tc-i386.c:10649 config/tc-i386.c:10689
+#: config/tc-i386.c:10726
#, c-format
msgid "`%s%s' not allowed with `%s%c'"
msgstr ""
-#. Prohibit these changes in the 64bit mode, since the
-#. lowering is more complicated.
-#: config/tc-i386.c:9669 config/tc-i386.c:9711 config/tc-i386.c:9748
+#: config/tc-i386.c:10662 config/tc-i386.c:10701 config/tc-i386.c:10738
#, c-format
msgid "incorrect register `%s%s' used with `%c' suffix"
msgstr ""
-#: config/tc-i386.c:9835
+#: config/tc-i386.c:10828
msgid "no instruction mnemonic suffix given; can't determine immediate size"
msgstr ""
-#: config/tc-i386.c:10038
+#: config/tc-i386.c:11032
#, c-format
msgid ""
"source register `%s%s' implicitly denotes `%s%.3s%u' to `%s%.3s%u' source "
@@ -8905,110 +8931,118 @@ msgid ""
msgstr ""
#. Reversed arguments on faddp or fmulp.
-#: config/tc-i386.c:10080
+#: config/tc-i386.c:11078
#, c-format
msgid "translating to `%s %s%s,%s%s'"
msgstr ""
#. Extraneous `l' suffix on fp insn.
-#: config/tc-i386.c:10087
+#: config/tc-i386.c:11085
#, c-format
msgid "translating to `%s %s%s'"
msgstr ""
-#: config/tc-i386.c:10100
+#: config/tc-i386.c:11098
#, c-format
msgid "you can't `%s %s%s'"
msgstr ""
-#: config/tc-i386.c:10157
+#: config/tc-i386.c:11155
#, c-format
msgid "segment override on `%s' is ineffectual"
msgstr ""
-#: config/tc-i386.c:10620 config/tc-loongarch.c:1039 config/tc-riscv.c:1742
+#: config/tc-i386.c:11613 config/tc-loongarch.c:1204 config/tc-riscv.c:1931
msgid "relaxable branches not supported in absolute section"
msgstr ""
-#: config/tc-i386.c:10655 config/tc-i386.c:10801 config/tc-i386.c:10883
+#: config/tc-i386.c:11648 config/tc-i386.c:11794 config/tc-i386.c:11876
#, c-format
msgid "skipping prefixes on `%s'"
msgstr ""
-#: config/tc-i386.c:10909
+#: config/tc-i386.c:11902
msgid "16-bit jump out of range"
msgstr ""
-#: config/tc-i386.c:11201 config/tc-i386.c:11232 config/tc-i386.c:11321
+#: config/tc-i386.c:11929 config/tc-i386.c:12664
+msgid "pseudo prefix without instruction"
+msgstr ""
+
+#: config/tc-i386.c:11941
+msgid "pseudo prefix ahead of label; ignoring"
+msgstr ""
+
+#: config/tc-i386.c:12258 config/tc-i386.c:12289 config/tc-i386.c:12378
#, c-format
msgid "`%s` skips -malign-branch-boundary on `%s`"
msgstr ""
-#: config/tc-i386.c:11489
+#: config/tc-i386.c:12546
msgid "use .code16 to ensure correct addressing mode"
msgstr ""
-#: config/tc-i386.c:11517
+#: config/tc-i386.c:12574
#, c-format
msgid "Cannot convert `%s' in 16-bit mode"
msgstr ""
-#: config/tc-i386.c:11519
+#: config/tc-i386.c:12576
#, c-format
msgid "Cannot convert `%s' with `-momit-lock-prefix=yes' in effect"
msgstr ""
-#: config/tc-i386.c:11607
-msgid "pseudo prefix without instruction"
-msgstr ""
-
-#: config/tc-i386.c:11760
+#: config/tc-i386.c:12819 config/tc-i386.c:12822
#, c-format
msgid "instruction length of %u bytes exceeds the limit of 15"
msgstr ""
-#: config/tc-i386.c:12375
+#: config/tc-i386.c:13469
#, c-format
msgid "@%s reloc is not supported with %d-bit output format"
msgstr ""
-#: config/tc-i386.c:12429
+#: config/tc-i386.c:13523
#, c-format
msgid "missing or invalid expression `%s'"
msgstr ""
-#: config/tc-i386.c:12438
+#: config/tc-i386.c:13532
#, c-format
msgid "invalid PLT expression `%s'"
msgstr ""
-#: config/tc-i386.c:12536
+#: config/tc-i386.c:13631
msgid "pseudo-prefix conflicts with encoding specifier"
msgstr ""
-#: config/tc-i386.c:12560
+#: config/tc-i386.c:13655
msgid "illegal prefix used with VEX/XOP/EVEX"
msgstr ""
-#: config/tc-i386.c:12841
+#: config/tc-i386.c:13966
#, c-format
msgid "opcode residual (%#<PRIx64>) too wide"
msgstr ""
-#: config/tc-i386.c:12890 config/tc-i386.c:12933
+#: config/tc-i386.c:13982
+msgid "eGPR use conflicts with encoding specifier"
+msgstr ""
+
+#: config/tc-i386.c:14003 config/tc-i386.c:14046
msgid "too many register/memory operands"
msgstr ""
-#: config/tc-i386.c:12901 config/tc-i386.c:12908
+#: config/tc-i386.c:14014 config/tc-i386.c:14021
msgid "too few register/memory operands"
msgstr ""
-#: config/tc-i386.c:12921
+#: config/tc-i386.c:14034
#, c-format
msgid "constant doesn't fit in %d bits"
msgstr ""
-#: config/tc-i386.c:12984
+#: config/tc-i386.c:14097
msgid "VSIB unavailable with legacy encoding"
msgstr ""
@@ -9016,372 +9050,372 @@ msgstr ""
#. an 8-bit immediate like for 4-register-operand insns, but that
#. would require ugly fiddling with process_operands() and/or
#. build_modrm_byte().
-#: config/tc-i386.c:12995
+#: config/tc-i386.c:14108
msgid "too many register operands with VSIB"
msgstr ""
-#: config/tc-i386.c:13014
+#: config/tc-i386.c:14127
#, c-format
msgid "can't encode register '%s%s' with VEX/XOP/EVEX"
msgstr ""
-#: config/tc-i386.c:13219
+#: config/tc-i386.c:14332
msgid "conflicting .insn operands"
msgstr ""
-#: config/tc-i386.c:13252 read.c:4210
+#: config/tc-i386.c:14365 read.c:4266
msgid "SCFI: hand-crafting instructions not supported"
msgstr ""
-#: config/tc-i386.c:13318
+#: config/tc-i386.c:14434
#, c-format
msgid "duplicated `{%s}'"
msgstr ""
-#: config/tc-i386.c:13382
+#: config/tc-i386.c:14507
#, c-format
msgid "Unsupported broadcast: `%s'"
msgstr ""
-#: config/tc-i386.c:13450
+#: config/tc-i386.c:14582
#, c-format
msgid "`%s%s' can't be used for write mask"
msgstr ""
-#: config/tc-i386.c:13470
+#: config/tc-i386.c:14602
#, c-format
msgid "invalid write mask `%s'"
msgstr ""
-#: config/tc-i386.c:13491
+#: config/tc-i386.c:14623
#, c-format
msgid "duplicated `%s'"
msgstr ""
-#: config/tc-i386.c:13501
+#: config/tc-i386.c:14633
#, c-format
msgid "invalid zeroing-masking `%s'"
msgstr ""
-#: config/tc-i386.c:13517
+#: config/tc-i386.c:14651
#, c-format
msgid "missing `}' in `%s'"
msgstr ""
#. We don't know this one.
-#: config/tc-i386.c:13531
+#: config/tc-i386.c:14663
#, c-format
msgid "unknown vector operation: `%s'"
msgstr ""
-#: config/tc-i386.c:13537
+#: config/tc-i386.c:14669
msgid "zeroing-masking only allowed with write mask"
msgstr ""
-#: config/tc-i386.c:13557
+#: config/tc-i386.c:14689
#, c-format
msgid "at most %d immediate operands are allowed"
msgstr ""
-#: config/tc-i386.c:13596 config/tc-i386.c:13856
+#: config/tc-i386.c:14728 config/tc-i386.c:14988
#, c-format
msgid "junk `%s' after expression"
msgstr ""
-#: config/tc-i386.c:13609
+#: config/tc-i386.c:14741
#, c-format
msgid "illegal immediate register operand %s"
msgstr ""
-#: config/tc-i386.c:13623
+#: config/tc-i386.c:14755
#, c-format
msgid "missing or invalid immediate expression `%s'"
msgstr ""
-#: config/tc-i386.c:13647 config/tc-i386.c:13936
+#: config/tc-i386.c:14779 config/tc-i386.c:15068
#, c-format
msgid "unimplemented segment %s in operand"
msgstr ""
-#: config/tc-i386.c:13696
+#: config/tc-i386.c:14828
#, c-format
msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
msgstr ""
-#: config/tc-i386.c:13705
+#: config/tc-i386.c:14837
#, c-format
msgid "scale factor of %d without an index register"
msgstr ""
-#: config/tc-i386.c:13727
+#: config/tc-i386.c:14859
#, c-format
msgid "at most %d displacement operands are allowed"
msgstr ""
-#: config/tc-i386.c:13911
+#: config/tc-i386.c:15043
#, c-format
msgid "missing or invalid displacement expression `%s'"
msgstr ""
-#: config/tc-i386.c:14087
+#: config/tc-i386.c:15219
#, c-format
msgid "`%s' is not valid here (expected `%c%s%s%c')"
msgstr ""
-#: config/tc-i386.c:14099
+#: config/tc-i386.c:15231
#, c-format
msgid "`%s' is not a valid %s expression"
msgstr ""
-#: config/tc-i386.c:14113
+#: config/tc-i386.c:15245
#, c-format
msgid "invalid `%s' prefix"
msgstr ""
-#: config/tc-i386.c:14143
+#: config/tc-i386.c:15275
#, c-format
msgid "`%s' cannot be used here"
msgstr ""
-#: config/tc-i386.c:14150
+#: config/tc-i386.c:15282
msgid "register scaling is being ignored here"
msgstr ""
-#: config/tc-i386.c:14191
+#: config/tc-i386.c:15330
#, c-format
msgid "Missing '}': '%s'"
msgstr ""
-#: config/tc-i386.c:14197
+#: config/tc-i386.c:15336
#, c-format
msgid "Junk after '}': '%s'"
msgstr ""
-#: config/tc-i386.c:14272
+#: config/tc-i386.c:15411
#, c-format
msgid "bad memory operand `%s'"
msgstr ""
-#: config/tc-i386.c:14288
+#: config/tc-i386.c:15427
#, c-format
msgid "junk `%s' after register"
msgstr ""
-#: config/tc-i386.c:14295
+#: config/tc-i386.c:15434
#, c-format
msgid "`%s%s' cannot be used here"
msgstr ""
-#: config/tc-i386.c:14318
+#: config/tc-i386.c:15457
#, c-format
msgid "`%s': misplaced `{%s}'"
msgstr ""
-#: config/tc-i386.c:14325 config/tc-i386.c:14499 config/tc-i386.c:14543
+#: config/tc-i386.c:15464 config/tc-i386.c:15638 config/tc-i386.c:15682
#, c-format
msgid "bad register name `%s'"
msgstr ""
-#: config/tc-i386.c:14333
+#: config/tc-i386.c:15472
msgid "immediate operand illegal with absolute jump"
msgstr ""
-#: config/tc-i386.c:14340
+#: config/tc-i386.c:15479
#, c-format
msgid "`%s': RC/SAE operand must follow immediate operands"
msgstr ""
-#: config/tc-i386.c:14353
+#: config/tc-i386.c:15492
#, c-format
msgid "`%s': misplaced `%s'"
msgstr ""
-#: config/tc-i386.c:14404
+#: config/tc-i386.c:15543
msgid "unbalanced figure braces"
msgstr ""
-#: config/tc-i386.c:14488
+#: config/tc-i386.c:15627
#, c-format
msgid "expecting `,' or `)' after index register in `%s'"
msgstr ""
-#: config/tc-i386.c:14516
+#: config/tc-i386.c:15655
#, c-format
msgid "expecting `)' after scale factor in `%s'"
msgstr ""
-#: config/tc-i386.c:14524
+#: config/tc-i386.c:15663
#, c-format
msgid "expecting index register or scale factor after `,'; got '%c'"
msgstr ""
-#: config/tc-i386.c:14532
+#: config/tc-i386.c:15671
#, c-format
msgid "expecting `,' or `)' after base register in `%s'"
msgstr ""
#. It's not a memory operand; argh!
-#: config/tc-i386.c:14582
+#: config/tc-i386.c:15721
#, c-format
msgid "invalid char %s beginning operand %d `%s'"
msgstr ""
-#: config/tc-i386.c:15243
+#: config/tc-i386.c:16382
#, c-format
msgid "%s:%u: add %d%s at 0x%llx to align %s within %d-byte boundary\n"
msgstr ""
-#: config/tc-i386.c:15246
+#: config/tc-i386.c:16385
#, c-format
msgid ""
"%s:%u: add additional %d%s at 0x%llx to align %s within %d-byte boundary\n"
msgstr ""
-#: config/tc-i386.c:15252
+#: config/tc-i386.c:16391
#, c-format
msgid ""
"%s:%u: add %d%s-byte nop at 0x%llx to align %s within %d-byte boundary\n"
msgstr ""
-#: config/tc-i386.c:15319
+#: config/tc-i386.c:16458
msgid "long jump required"
msgstr ""
-#: config/tc-i386.c:15374
+#: config/tc-i386.c:16513
msgid "jump target out of range"
msgstr ""
-#: config/tc-i386.c:15828
+#: config/tc-i386.c:16999
#, c-format
msgid "register '%s%s' cannot be used here"
msgstr ""
-#: config/tc-i386.c:16082
+#: config/tc-i386.c:17253
#, c-format
msgid "invalid -mx86-used-note= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16105
+#: config/tc-i386.c:17276
msgid "no compiled in support for x86_64"
msgstr ""
-#: config/tc-i386.c:16125
+#: config/tc-i386.c:17296
msgid "no compiled in support for 32bit x86_64"
msgstr ""
-#: config/tc-i386.c:16129
+#: config/tc-i386.c:17300
msgid "32bit x86_64 is only supported for ELF"
msgstr ""
-#: config/tc-i386.c:16146
+#: config/tc-i386.c:17317
msgid "no compiled in support for ix86"
msgstr ""
-#: config/tc-i386.c:16179 config/tc-i386.c:16265
+#: config/tc-i386.c:17350 config/tc-i386.c:17436
#, c-format
msgid "invalid -march= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16235
+#: config/tc-i386.c:17406
msgid "Unrecognized vector size specifier ignored"
msgstr ""
-#: config/tc-i386.c:16275 config/tc-i386.c:16287
+#: config/tc-i386.c:17446 config/tc-i386.c:17458
#, c-format
msgid "invalid -mtune= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16296
+#: config/tc-i386.c:17467
#, c-format
msgid "invalid -mmnemonic= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16305
+#: config/tc-i386.c:17476
#, c-format
msgid "invalid -msyntax= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16332
+#: config/tc-i386.c:17504
#, c-format
msgid "invalid -msse-check= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16343
+#: config/tc-i386.c:17515
#, c-format
msgid "invalid -moperand-check= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16352
+#: config/tc-i386.c:17524
#, c-format
msgid "invalid -mavxscalar= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16361
+#: config/tc-i386.c:17533
#, c-format
msgid "invalid -mvexwig= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16376
+#: config/tc-i386.c:17548
#, c-format
msgid "invalid -mevexlig= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16389
+#: config/tc-i386.c:17561
#, c-format
msgid "invalid -mevexrcig= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16398
+#: config/tc-i386.c:17570
#, c-format
msgid "invalid -mevexwig= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16413
+#: config/tc-i386.c:17585
#, c-format
msgid "invalid -momit-lock-prefix= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16422
+#: config/tc-i386.c:17594
#, c-format
msgid "invalid -mfence-as-lock-add= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16431
+#: config/tc-i386.c:17603
#, c-format
msgid "invalid -mlfence-after-load= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16448
+#: config/tc-i386.c:17620
#, c-format
msgid "invalid -mlfence-before-indirect-branch= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16462
+#: config/tc-i386.c:17634
#, c-format
msgid "invalid -mlfence-before-ret= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16472
+#: config/tc-i386.c:17644
#, c-format
msgid "invalid -mrelax-relocations= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16501
+#: config/tc-i386.c:17673
#, c-format
msgid "invalid -malign-branch-boundary= value: %s"
msgstr ""
-#: config/tc-i386.c:16515
+#: config/tc-i386.c:17687
#, c-format
msgid "invalid -malign-branch-prefix-size= value: %s"
msgstr ""
-#: config/tc-i386.c:16542
+#: config/tc-i386.c:17714
#, c-format
msgid "invalid -malign-branch= option: `%s'"
msgstr ""
-#: config/tc-i386.c:16709
+#: config/tc-i386.c:17881
#, c-format
msgid ""
" -Qy, -Qn ignored\n"
@@ -9389,7 +9423,7 @@ msgid ""
" -k ignored\n"
msgstr ""
-#: config/tc-i386.c:16714
+#: config/tc-i386.c:17886
#, c-format
msgid ""
" -n do not optimize code alignment\n"
@@ -9397,32 +9431,32 @@ msgid ""
" -q quieten some warnings\n"
msgstr ""
-#: config/tc-i386.c:16719
+#: config/tc-i386.c:17891
#, c-format
msgid " -s ignored\n"
msgstr ""
-#: config/tc-i386.c:16724
+#: config/tc-i386.c:17896
#, c-format
msgid " --32/--64/--x32 generate 32bit/64bit/x32 object\n"
msgstr ""
-#: config/tc-i386.c:16727
+#: config/tc-i386.c:17899
#, c-format
msgid " --32/--64 generate 32bit/64bit object\n"
msgstr ""
-#: config/tc-i386.c:16732
+#: config/tc-i386.c:17904
#, c-format
msgid " --divide do not treat `/' as a comment character\n"
msgstr ""
-#: config/tc-i386.c:16735
+#: config/tc-i386.c:17907
#, c-format
msgid " --divide ignored\n"
msgstr ""
-#: config/tc-i386.c:16738
+#: config/tc-i386.c:17910
#, c-format
msgid ""
" -march=CPU[,+EXTENSION...]\n"
@@ -9430,24 +9464,24 @@ msgid ""
"of:\n"
msgstr ""
-#: config/tc-i386.c:16742
+#: config/tc-i386.c:17914
#, c-format
msgid ""
" EXTENSION is combination of (possibly \"no\"-"
"prefixed):\n"
msgstr ""
-#: config/tc-i386.c:16745
+#: config/tc-i386.c:17917
#, c-format
msgid " -mtune=CPU optimize for CPU, CPU is one of:\n"
msgstr ""
-#: config/tc-i386.c:16748
+#: config/tc-i386.c:17920
#, c-format
msgid " -msse2avx encode SSE instructions with VEX prefix\n"
msgstr ""
-#: config/tc-i386.c:16750
+#: config/tc-i386.c:17922
#, c-format
msgid ""
" -muse-unaligned-vector-move\n"
@@ -9455,21 +9489,21 @@ msgid ""
"move\n"
msgstr ""
-#: config/tc-i386.c:16753
+#: config/tc-i386.c:17925
#, c-format
msgid ""
-" -msse-check=[none|error|warning] (default: warning)\n"
+" -msse-check=[none|error|warning] (default: none)\n"
" check SSE instructions\n"
msgstr ""
-#: config/tc-i386.c:16756
+#: config/tc-i386.c:17928
#, c-format
msgid ""
" -moperand-check=[none|error|warning] (default: warning)\n"
" check operand combinations for validity\n"
msgstr ""
-#: config/tc-i386.c:16759
+#: config/tc-i386.c:17931
#, c-format
msgid ""
" -mavxscalar=[128|256] (default: 128)\n"
@@ -9478,7 +9512,7 @@ msgid ""
" length\n"
msgstr ""
-#: config/tc-i386.c:16763
+#: config/tc-i386.c:17935
#, c-format
msgid ""
" -mvexwig=[0|1] (default: 0)\n"
@@ -9486,7 +9520,7 @@ msgid ""
" for VEX.W bit ignored instructions\n"
msgstr ""
-#: config/tc-i386.c:16767
+#: config/tc-i386.c:17939
#, c-format
msgid ""
" -mevexlig=[128|256|512] (default: 128)\n"
@@ -9495,7 +9529,7 @@ msgid ""
" length\n"
msgstr ""
-#: config/tc-i386.c:16771
+#: config/tc-i386.c:17943
#, c-format
msgid ""
" -mevexwig=[0|1] (default: 0)\n"
@@ -9504,7 +9538,7 @@ msgid ""
" for EVEX.W bit ignored instructions\n"
msgstr ""
-#: config/tc-i386.c:16775
+#: config/tc-i386.c:17947
#, c-format
msgid ""
" -mevexrcig=[rne|rd|ru|rz] (default: rne)\n"
@@ -9513,77 +9547,77 @@ msgid ""
" for SAE-only ignored instructions\n"
msgstr ""
-#: config/tc-i386.c:16779
+#: config/tc-i386.c:17951
#, c-format
msgid " -mmnemonic=[att|intel] "
msgstr ""
-#: config/tc-i386.c:16782
+#: config/tc-i386.c:17954
#, c-format
msgid "(default: att)\n"
msgstr ""
-#: config/tc-i386.c:16784
+#: config/tc-i386.c:17956
#, c-format
msgid "(default: intel)\n"
msgstr ""
-#: config/tc-i386.c:16785
+#: config/tc-i386.c:17957
#, c-format
msgid " use AT&T/Intel mnemonic (AT&T syntax only)\n"
msgstr ""
-#: config/tc-i386.c:16787
+#: config/tc-i386.c:17959
#, c-format
msgid ""
" -msyntax=[att|intel] (default: att)\n"
" use AT&T/Intel syntax\n"
msgstr ""
-#: config/tc-i386.c:16790
+#: config/tc-i386.c:17962
#, c-format
msgid " -mindex-reg support pseudo index registers\n"
msgstr ""
-#: config/tc-i386.c:16792
+#: config/tc-i386.c:17964
#, c-format
msgid " -mnaked-reg don't require `%%' prefix for registers\n"
msgstr ""
-#: config/tc-i386.c:16794
+#: config/tc-i386.c:17966
#, c-format
msgid " -madd-bnd-prefix add BND prefix for all valid branches\n"
msgstr ""
-#: config/tc-i386.c:16797
+#: config/tc-i386.c:17969
#, c-format
msgid " -mshared disable branch optimization for shared code\n"
msgstr ""
-#: config/tc-i386.c:16799
+#: config/tc-i386.c:17971
#, c-format
msgid " -mx86-used-note=[no|yes] "
msgstr ""
-#: config/tc-i386.c:16805
+#: config/tc-i386.c:17977
#, c-format
msgid ""
" generate x86 used ISA and feature properties\n"
msgstr ""
-#: config/tc-i386.c:16809
+#: config/tc-i386.c:17981
#, c-format
msgid " -mbig-obj generate big object files\n"
msgstr ""
-#: config/tc-i386.c:16812
+#: config/tc-i386.c:17984
#, c-format
msgid ""
" -momit-lock-prefix=[no|yes] (default: no)\n"
" strip all lock prefixes\n"
msgstr ""
-#: config/tc-i386.c:16815
+#: config/tc-i386.c:17987
#, c-format
msgid ""
" -mfence-as-lock-add=[no|yes] (default: no)\n"
@@ -9591,24 +9625,24 @@ msgid ""
" lock addl $0x0, (%%{re}sp)\n"
msgstr ""
-#: config/tc-i386.c:16819
+#: config/tc-i386.c:17991
#, c-format
msgid " -mrelax-relocations=[no|yes] "
msgstr ""
-#: config/tc-i386.c:16825
+#: config/tc-i386.c:17997
#, c-format
msgid " generate relax relocations\n"
msgstr ""
-#: config/tc-i386.c:16827
+#: config/tc-i386.c:17999
#, c-format
msgid ""
" -malign-branch-boundary=NUM (default: 0)\n"
" align branches within NUM byte boundary\n"
msgstr ""
-#: config/tc-i386.c:16830
+#: config/tc-i386.c:18002
#, c-format
msgid ""
" -malign-branch=TYPE[+TYPE...] (default: jcc+fused+jmp)\n"
@@ -9618,28 +9652,28 @@ msgid ""
" specify types of branches to align\n"
msgstr ""
-#: config/tc-i386.c:16835
+#: config/tc-i386.c:18007
#, c-format
msgid ""
" -malign-branch-prefix-size=NUM (default: 5)\n"
" align branches with NUM prefixes per instruction\n"
msgstr ""
-#: config/tc-i386.c:16838
+#: config/tc-i386.c:18010
#, c-format
msgid ""
" -mbranches-within-32B-boundaries\n"
" align branches within 32 byte boundary\n"
msgstr ""
-#: config/tc-i386.c:16841
+#: config/tc-i386.c:18013
#, c-format
msgid ""
" -mlfence-after-load=[no|yes] (default: no)\n"
" generate lfence after load\n"
msgstr ""
-#: config/tc-i386.c:16844
+#: config/tc-i386.c:18016
#, c-format
msgid ""
" -mlfence-before-indirect-branch=[none|all|register|memory] (default: "
@@ -9647,74 +9681,74 @@ msgid ""
" generate lfence before indirect near branch\n"
msgstr ""
-#: config/tc-i386.c:16847
+#: config/tc-i386.c:18019
#, c-format
msgid ""
" -mlfence-before-ret=[none|or|not|shl|yes] (default: none)\n"
" generate lfence before ret\n"
msgstr ""
-#: config/tc-i386.c:16850
+#: config/tc-i386.c:18022
#, c-format
msgid " -mamd64 accept only AMD64 ISA [default]\n"
msgstr ""
-#: config/tc-i386.c:16852
+#: config/tc-i386.c:18024
#, c-format
msgid " -mintel64 accept only Intel64 ISA\n"
msgstr ""
-#: config/tc-i386.c:16893
+#: config/tc-i386.c:18065
#, c-format
msgid "Intel MCU doesn't support `%s' architecture"
msgstr ""
-#: config/tc-i386.c:16901
+#: config/tc-i386.c:18073
msgid "SCFI is not supported for this ABI"
msgstr ""
-#: config/tc-i386.c:16964
+#: config/tc-i386.c:18136
msgid "Intel MCU is 32bit only"
msgstr ""
-#: config/tc-i386.c:17082
+#: config/tc-i386.c:18254
#, c-format
msgid "invalid %s relocation against register"
msgstr ""
-#: config/tc-i386.c:17204
+#: config/tc-i386.c:18387
msgid "symbol size computation overflow"
msgstr ""
-#: config/tc-i386.c:17282 config/tc-sparc.c:3855
+#: config/tc-i386.c:18466 config/tc-sparc.c:3855
#, c-format
msgid "can not do %d byte pc-relative relocation"
msgstr ""
-#: config/tc-i386.c:17300
+#: config/tc-i386.c:18484
#, c-format
msgid "can not do %d byte relocation"
msgstr ""
-#: config/tc-i386.c:17368
+#: config/tc-i386.c:18552
#, c-format
msgid "cannot represent relocation type %s in x32 mode"
msgstr ""
-#: config/tc-i386.c:17408 config/tc-s390.c:2607
+#: config/tc-i386.c:18593 config/tc-s390.c:2828
#, c-format
msgid "cannot represent relocation type %s"
msgstr ""
-#: config/tc-i386.c:17558
+#: config/tc-i386.c:18728
msgid "bad .section directive: want a,l,w,x,M,S,G,T in string"
msgstr ""
-#: config/tc-i386.c:17561
+#: config/tc-i386.c:18731
msgid "bad .section directive: want a,w,x,M,S,G,T in string"
msgstr ""
-#: config/tc-i386.c:17571
+#: config/tc-i386.c:18741
msgid ".largecomm supported only in 64bit mode, producing .comm"
msgstr ""
@@ -10529,7 +10563,7 @@ msgstr ""
msgid "Can't add stop bit to mark end of instruction group"
msgstr ""
-#: config/tc-ia64.c:11748 read.c:2636 read.c:3240 read.c:3809 stabs.c:461
+#: config/tc-ia64.c:11748 read.c:2638 read.c:3296 read.c:3865 stabs.c:461
#, c-format
msgid "expected comma after \"%s\""
msgstr ""
@@ -10597,7 +10631,7 @@ msgstr ""
msgid "Unmatched high relocation"
msgstr ""
-#: config/tc-iq2000.c:820 config/tc-mips.c:19777 config/tc-score.c:5784
+#: config/tc-iq2000.c:820 config/tc-mips.c:19793 config/tc-score.c:5784
msgid ".end not in text section"
msgstr ""
@@ -10609,7 +10643,7 @@ msgstr ""
msgid ".end symbol does not match .ent symbol."
msgstr ""
-#: config/tc-iq2000.c:836 config/tc-mips.c:19797 config/tc-score.c:5800
+#: config/tc-iq2000.c:836 config/tc-mips.c:19813 config/tc-score.c:5800
msgid ".end directive missing or unknown symbol"
msgstr ""
@@ -10617,7 +10651,7 @@ msgstr ""
msgid "Expected simple number."
msgstr ""
-#: config/tc-iq2000.c:883 config/tc-mips.c:19702 config/tc-score.c:5650
+#: config/tc-iq2000.c:883 config/tc-mips.c:19718 config/tc-score.c:5650
#, c-format
msgid " *input_line_pointer == '%c' 0x%02x\n"
msgstr ""
@@ -10646,12 +10680,12 @@ msgstr ""
msgid "signed37 PCREL value out of range"
msgstr ""
-#: config/tc-loongarch.c:404
+#: config/tc-loongarch.c:480
#, c-format
msgid "insn name: %s\tformat: %s\tsyntax error"
msgstr ""
-#: config/tc-loongarch.c:407
+#: config/tc-loongarch.c:483
#, c-format
msgid ""
"insn name: %s\n"
@@ -10659,7 +10693,7 @@ msgid ""
"we want macro but macro is NULL"
msgstr ""
-#: config/tc-loongarch.c:412
+#: config/tc-loongarch.c:488
#, c-format
msgid ""
"insn name: %s\n"
@@ -10667,24 +10701,33 @@ msgid ""
"macro: %s\tsyntax error"
msgstr ""
-#: config/tc-loongarch.c:455
+#: config/tc-loongarch.c:529
#, c-format
msgid "Unsupported use of %s"
msgstr ""
-#: config/tc-loongarch.c:527
+#: config/tc-loongarch.c:586 config/tc-riscv.c:4868
+msgid ".option pop with no .option push"
+msgstr ""
+
+#: config/tc-loongarch.c:596 config/tc-riscv.c:4881
+#, c-format
+msgid "unrecognized .option directive: %s"
+msgstr ""
+
+#: config/tc-loongarch.c:659
msgid "internal error: we have no internal label yet"
msgstr ""
-#: config/tc-loongarch.c:632
+#: config/tc-loongarch.c:764
msgid "This label shouldn't be with addend."
msgstr ""
-#: config/tc-loongarch.c:678
+#: config/tc-loongarch.c:810
msgid "expr too huge"
msgstr ""
-#: config/tc-loongarch.c:705
+#: config/tc-loongarch.c:837
#, c-format
msgid ""
"not support reloc bit-field\n"
@@ -10692,22 +10735,22 @@ msgid ""
"args: %s"
msgstr ""
-#: config/tc-loongarch.c:758 config/tc-loongarch.c:783
+#: config/tc-loongarch.c:908 config/tc-loongarch.c:933
#, c-format
msgid "register alias %s is deprecated, use %s instead"
msgstr ""
-#: config/tc-loongarch.c:816
+#: config/tc-loongarch.c:966
msgid "unknown escape"
msgstr ""
-#: config/tc-loongarch.c:843
+#: config/tc-loongarch.c:993
#, c-format
msgid "require imm low %d bit is 0."
msgstr ""
#. How to do after we detect overflow.
-#: config/tc-loongarch.c:855
+#: config/tc-loongarch.c:1005
#, c-format
msgid ""
"Immediate overflow.\n"
@@ -10715,66 +10758,67 @@ msgid ""
"arg: %s"
msgstr ""
-#: config/tc-loongarch.c:944
-msgid "AMO insns require rd != base && rd != rt when rd isn't $r0"
+#: config/tc-loongarch.c:1094
+msgid ""
+"automic memory operations insns require rd != rj && rd != rk when rd isn't r0"
msgstr ""
-#: config/tc-loongarch.c:956
+#: config/tc-loongarch.c:1106
msgid "bstr(ins|pick).[wd] require msbd >= lsbd"
msgstr ""
-#: config/tc-loongarch.c:961
-msgid "csrxchg require rj != $r0 && rj != $r1"
+#: config/tc-loongarch.c:1112
+msgid "g?csrxchg require rj != r0 && rj != r1"
msgstr ""
-#: config/tc-loongarch.c:1053
+#: config/tc-loongarch.c:1218
#, c-format
msgid "no HOWTO loong relocation number %d"
msgstr ""
-#: config/tc-loongarch.c:1063
+#: config/tc-loongarch.c:1228
msgid "Internal error: not support relax now"
msgstr ""
-#: config/tc-loongarch.c:1107
+#: config/tc-loongarch.c:1290
#, c-format
msgid "li overflow: hi32:0x%x lo32:0x%x"
msgstr ""
-#: config/tc-loongarch.c:1112
+#: config/tc-loongarch.c:1295
msgid "we can't li.d on 32bit-arch"
msgstr ""
-#: config/tc-loongarch.c:1211
+#: config/tc-loongarch.c:1394
#, c-format
msgid "no match insn: %s\t%s"
msgstr ""
-#: config/tc-loongarch.c:1324 config/tc-loongarch.c:1331
+#: config/tc-loongarch.c:1518 config/tc-loongarch.c:1525
msgid "Relocation against a constant"
msgstr ""
-#: config/tc-loongarch.c:1539 config/tc-riscv.c:4362
+#: config/tc-loongarch.c:1733 config/tc-riscv.c:4595
#, c-format
msgid "internal: bad CFA value #%d"
msgstr ""
-#: config/tc-loongarch.c:1551
+#: config/tc-loongarch.c:1745
msgid "Relocation against a constant."
msgstr ""
-#: config/tc-loongarch.c:1609 config/tc-riscv.c:4843
+#: config/tc-loongarch.c:1825 config/tc-riscv.c:5092
#, c-format
msgid "cannot represent %s relocation in object file"
msgstr ""
-#: config/tc-loongarch.c:1678
+#: config/tc-loongarch.c:1894
#, c-format
msgid "LARCH options:\n"
msgstr ""
#. FIXME
-#: config/tc-loongarch.c:1680
+#: config/tc-loongarch.c:1896
#, c-format
msgid ""
" -mthin-add-sub\t Convert a pair of R_LARCH_ADD32/64 and R_LARCH_SUB32/64 "
@@ -10782,6 +10826,13 @@ msgid ""
"\t\t\t R_LARCH_32/64_PCREL as much as possible\n"
"\t\t\t The option does not affect the generation of R_LARCH_32_PCREL\n"
"\t\t\t relocations in .eh_frame\n"
+" -mignore-start-align\t Ignore .align if it is at the start of a section. "
+"This option\n"
+"\t\t\t can't be used when partial linking (ld -r).\n"
+msgstr ""
+
+#: config/tc-loongarch.c:1949
+msgid "internal error: cannot get align symbol"
msgstr ""
#: config/tc-m32c.c:139
@@ -11014,8 +11065,8 @@ msgstr ""
msgid ".SCOMMon length (%ld.) <0! Ignored."
msgstr ""
-#: config/tc-m32r.c:1514 config/tc-microblaze.c:197 config/tc-ppc.c:2419
-#: config/tc-ppc.c:4358 config/tc-ppc.c:4413
+#: config/tc-m32r.c:1514 config/tc-microblaze.c:197 config/tc-ppc.c:2421
+#: config/tc-ppc.c:4360 config/tc-ppc.c:4415
msgid "ignoring bad alignment"
msgstr ""
@@ -11854,14 +11905,14 @@ msgstr ""
msgid "Not a defined coldfire architecture"
msgstr ""
-#: config/tc-m68k.c:7886 read.c:4703
+#: config/tc-m68k.c:7886 read.c:4759
#, c-format
msgid "%s relocations do not fit in %u byte"
msgid_plural "%s relocations do not fit in %u bytes"
msgstr[0] ""
msgstr[1] ""
-#: config/tc-m68k.c:7928 config/tc-ppc.c:2592
+#: config/tc-m68k.c:7928 config/tc-ppc.c:2594
msgid "unknown .gnu_attribute value"
msgstr ""
@@ -12736,718 +12787,719 @@ msgstr ""
msgid "assemble for a little endian cpu"
msgstr ""
-#: config/tc-mips.c:2178
+#: config/tc-mips.c:2184
#, c-format
msgid "the %d-bit %s architecture does not support the `%s' extension"
msgstr ""
-#: config/tc-mips.c:2181
+#: config/tc-mips.c:2187
#, c-format
msgid "the `%s' extension requires %s%d revision %d or greater"
msgstr ""
-#: config/tc-mips.c:2190
+#: config/tc-mips.c:2196
#, c-format
msgid "the `%s' extension was removed in %s%d revision %d"
msgstr ""
-#: config/tc-mips.c:2199
+#: config/tc-mips.c:2205
#, c-format
msgid "the `%s' extension requires 64-bit FPRs"
msgstr ""
-#: config/tc-mips.c:3051 config/tc-mips.c:16631
+#: config/tc-mips.c:3057 config/tc-mips.c:16647
#, c-format
msgid "unrecognized register name `%s'"
msgstr ""
-#: config/tc-mips.c:3278
+#: config/tc-mips.c:3284
msgid "invalid register range"
msgstr ""
-#: config/tc-mips.c:3306
+#: config/tc-mips.c:3312
msgid "vector element must be constant"
msgstr ""
-#: config/tc-mips.c:3316
+#: config/tc-mips.c:3322
msgid "missing `]'"
msgstr ""
-#: config/tc-mips.c:3539
+#: config/tc-mips.c:3545
#, c-format
msgid "internal: bad mips opcode (mask error): %s %s"
msgstr ""
-#: config/tc-mips.c:3566
+#: config/tc-mips.c:3572
#, c-format
msgid "internal: unknown operand type: %s %s"
msgstr ""
-#: config/tc-mips.c:3599
+#: config/tc-mips.c:3605
#, c-format
msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s"
msgstr ""
-#: config/tc-mips.c:3607
+#: config/tc-mips.c:3613
#, c-format
msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s"
msgstr ""
-#: config/tc-mips.c:3614
+#: config/tc-mips.c:3620
#, c-format
msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s"
msgstr ""
-#: config/tc-mips.c:3649
+#: config/tc-mips.c:3655
#, c-format
msgid "internal error: bad microMIPS opcode (incorrect length: %u): %s %s"
msgstr ""
-#: config/tc-mips.c:3657
+#: config/tc-mips.c:3663
#, c-format
msgid "internal error: bad microMIPS opcode (opcode/length mismatch): %s %s"
msgstr ""
-#: config/tc-mips.c:3682
+#: config/tc-mips.c:3688
msgid "-G may not be used in position-independent code"
msgstr ""
-#: config/tc-mips.c:3688
+#: config/tc-mips.c:3694
msgid "-G may not be used with abicalls"
msgstr ""
-#: config/tc-mips.c:3793
+#: config/tc-mips.c:3799
msgid "broken assembler, no assembly attempted"
msgstr ""
-#: config/tc-mips.c:3941
+#: config/tc-mips.c:3947
#, c-format
msgid ".gnu_attribute %d,%d is incompatible with `%s'"
msgstr ""
-#: config/tc-mips.c:3948
+#: config/tc-mips.c:3954
#, c-format
msgid ".gnu_attribute %d,%d requires `%s'"
msgstr ""
-#: config/tc-mips.c:4009
+#: config/tc-mips.c:4015
#, c-format
msgid ".gnu_attribute %d,%d is no longer supported"
msgstr ""
-#: config/tc-mips.c:4018
+#: config/tc-mips.c:4024
#, c-format
msgid ".gnu_attribute %d,%d is not a recognized floating-point ABI"
msgstr ""
-#: config/tc-mips.c:4031
+#: config/tc-mips.c:4037
msgid "`gp=64' used with a 32-bit processor"
msgstr ""
-#: config/tc-mips.c:4034
+#: config/tc-mips.c:4040
msgid "`gp=32' used with a 64-bit ABI"
msgstr ""
-#: config/tc-mips.c:4037
+#: config/tc-mips.c:4043
msgid "`gp=64' used with a 32-bit ABI"
msgstr ""
-#: config/tc-mips.c:4044
+#: config/tc-mips.c:4050
msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions"
msgstr ""
-#: config/tc-mips.c:4046
+#: config/tc-mips.c:4052
msgid "`fp=xx' cannot be used with `singlefloat'"
msgstr ""
-#: config/tc-mips.c:4050
+#: config/tc-mips.c:4056
msgid "`fp=64' used with a 32-bit fpu"
msgstr ""
-#: config/tc-mips.c:4054
+#: config/tc-mips.c:4060
msgid "`fp=64' used with a 32-bit ABI"
msgstr ""
-#: config/tc-mips.c:4059
+#: config/tc-mips.c:4065
msgid "`fp=32' used with a 64-bit ABI"
msgstr ""
-#: config/tc-mips.c:4061
+#: config/tc-mips.c:4067
msgid "`fp=32' used with a MIPS R6 cpu"
msgstr ""
-#: config/tc-mips.c:4064
+#: config/tc-mips.c:4070
msgid "Unknown size of floating point registers"
msgstr ""
-#: config/tc-mips.c:4069
+#: config/tc-mips.c:4075
msgid "`nooddspreg` cannot be used with a 64-bit ABI"
msgstr ""
-#: config/tc-mips.c:4072 config/tc-mips.c:4076
+#: config/tc-mips.c:4078 config/tc-mips.c:4082
#, c-format
msgid "`%s' cannot be used with `%s'"
msgstr ""
-#: config/tc-mips.c:4081
+#: config/tc-mips.c:4087
#, c-format
msgid "branch relaxation is not supported in `%s'"
msgstr ""
-#: config/tc-mips.c:4157
-msgid "trap exception not supported at ISA 1"
-msgstr ""
-
-#: config/tc-mips.c:4170 config/tc-mips.c:17514
+#: config/tc-mips.c:4173 config/tc-mips.c:17530
#, c-format
msgid "`%s' does not support legacy NaN"
msgstr ""
-#: config/tc-mips.c:4217
+#: config/tc-mips.c:4220
#, c-format
msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
msgstr ""
-#: config/tc-mips.c:4921
+#: config/tc-mips.c:4924
#, c-format
msgid "operand %d out of range"
msgstr ""
-#: config/tc-mips.c:4929
+#: config/tc-mips.c:4932
#, c-format
msgid "operand %d must be constant"
msgstr ""
-#: config/tc-mips.c:4973 read.c:4488 read.c:5258 write.c:255 write.c:1038
+#: config/tc-mips.c:4976 read.c:4544 read.c:5314 write.c:255 write.c:1049
msgid "register value used as expression"
msgstr ""
-#: config/tc-mips.c:4986
+#: config/tc-mips.c:4989
#, c-format
msgid "operand %d must be an immediate expression"
msgstr ""
-#: config/tc-mips.c:5108 config/tc-mips.c:5110
+#: config/tc-mips.c:5111 config/tc-mips.c:5113
#, c-format
msgid "float register should be even, was %d"
msgstr ""
-#: config/tc-mips.c:5123
+#: config/tc-mips.c:5126
#, c-format
msgid "condition code register should be even for %s, was %d"
msgstr ""
-#: config/tc-mips.c:5128
+#: config/tc-mips.c:5131
#, c-format
msgid "condition code register should be 0 or 4 for %s, was %d"
msgstr ""
-#: config/tc-mips.c:5449
+#: config/tc-mips.c:5452
msgid "invalid performance register"
msgstr ""
-#: config/tc-mips.c:5545 config/tc-mips.c:6016
+#: config/tc-mips.c:5548 config/tc-mips.c:6019
msgid "the source register must not be $0"
msgstr ""
-#: config/tc-mips.c:5821
+#: config/tc-mips.c:5824
msgid "missing frame size"
msgstr ""
-#: config/tc-mips.c:5826
+#: config/tc-mips.c:5829
msgid "frame size specified twice"
msgstr ""
-#: config/tc-mips.c:5831
+#: config/tc-mips.c:5834
msgid "invalid frame size"
msgstr ""
-#: config/tc-mips.c:5871
+#: config/tc-mips.c:5874
#, c-format
msgid "operand %d must be an immediate"
msgstr ""
-#: config/tc-mips.c:5886
+#: config/tc-mips.c:5889
msgid "invalid element selector"
msgstr ""
-#: config/tc-mips.c:5899
+#: config/tc-mips.c:5902
#, c-format
msgid "operand %d must be scalar"
msgstr ""
-#: config/tc-mips.c:6079
+#: config/tc-mips.c:6082
msgid "floating-point expression required"
msgstr ""
-#: config/tc-mips.c:6179
+#: config/tc-mips.c:6182
#, c-format
msgid "cannot use `%s' in this section"
msgstr ""
-#: config/tc-mips.c:6326
+#: config/tc-mips.c:6329
msgid "used $at without \".set noat\""
msgstr ""
-#: config/tc-mips.c:6328
+#: config/tc-mips.c:6331
#, c-format
msgid "used $%u with \".set at=$%u\""
msgstr ""
-#: config/tc-mips.c:7507
+#: config/tc-mips.c:7510
#, c-format
msgid "wrong size instruction in a %u-bit branch delay slot"
msgstr ""
-#: config/tc-mips.c:7527 config/tc-mips.c:7537 config/tc-mips.c:15931
+#: config/tc-mips.c:7530 config/tc-mips.c:7540 config/tc-mips.c:15947
#, c-format
msgid "jump to misaligned address (0x%lx)"
msgstr ""
-#: config/tc-mips.c:7552 config/tc-mips.c:7572 config/tc-mips.c:7589
-#: config/tc-mips.c:9139 config/tc-mips.c:15785 config/tc-mips.c:15792
-#: config/tc-mips.c:16185 config/tc-mips.c:19032
+#: config/tc-mips.c:7555 config/tc-mips.c:7575 config/tc-mips.c:7592
+#: config/tc-mips.c:9142 config/tc-mips.c:15801 config/tc-mips.c:15808
+#: config/tc-mips.c:16201 config/tc-mips.c:19048
#, c-format
msgid "branch to misaligned address (0x%lx)"
msgstr ""
-#: config/tc-mips.c:7558 config/tc-mips.c:7576 config/tc-mips.c:7593
-#: config/tc-mips.c:9142
+#: config/tc-mips.c:7561 config/tc-mips.c:7579 config/tc-mips.c:7596
+#: config/tc-mips.c:9145
#, c-format
msgid "branch address range overflow (0x%lx)"
msgstr ""
-#: config/tc-mips.c:7838
+#: config/tc-mips.c:7841
msgid "extended instruction in delay slot"
msgstr ""
-#: config/tc-mips.c:8302
+#: config/tc-mips.c:8305
msgid "source and destination must be different"
msgstr ""
-#: config/tc-mips.c:8305
+#: config/tc-mips.c:8308
msgid "a destination register must be supplied"
msgstr ""
-#: config/tc-mips.c:8310
+#: config/tc-mips.c:8313
msgid "the source register must not be $31"
msgstr ""
-#: config/tc-mips.c:8558 config/tc-mips.c:14525 config/tc-mips.c:19179
+#: config/tc-mips.c:8561 config/tc-mips.c:14539 config/tc-mips.c:19195
msgid "invalid unextended operand value"
msgstr ""
-#: config/tc-mips.c:8676
+#: config/tc-mips.c:8679
#, c-format
msgid "opcode not supported on this processor: %s (%s)"
msgstr ""
-#: config/tc-mips.c:8755
+#: config/tc-mips.c:8758
msgid "opcode not supported in the `insn32' mode"
msgstr ""
-#: config/tc-mips.c:8758
+#: config/tc-mips.c:8761
#, c-format
msgid "unrecognized %d-bit version of microMIPS opcode"
msgstr ""
-#: config/tc-mips.c:8814
+#: config/tc-mips.c:8817
msgid "unrecognized unextended version of MIPS16 opcode"
msgstr ""
-#: config/tc-mips.c:8817
+#: config/tc-mips.c:8820
msgid "unrecognized extended version of MIPS16 opcode"
msgstr ""
-#: config/tc-mips.c:8867 config/tc-mips.c:19050
+#: config/tc-mips.c:8870 config/tc-mips.c:19066
msgid ""
"macro instruction expanded into multiple instructions in a branch delay slot"
msgstr ""
-#: config/tc-mips.c:8870 config/tc-mips.c:19058
+#: config/tc-mips.c:8873 config/tc-mips.c:19074
msgid "macro instruction expanded into multiple instructions"
msgstr ""
-#: config/tc-mips.c:8874
+#: config/tc-mips.c:8877
msgid ""
"macro instruction expanded into a wrong size instruction in a 16-bit branch "
"delay slot"
msgstr ""
-#: config/tc-mips.c:8876
+#: config/tc-mips.c:8879
msgid ""
"macro instruction expanded into a wrong size instruction in a 32-bit branch "
"delay slot"
msgstr ""
-#: config/tc-mips.c:9339
+#: config/tc-mips.c:9342
msgid "operand overflow"
msgstr ""
-#: config/tc-mips.c:9358 config/tc-mips.c:9943 config/tc-mips.c:14006
+#: config/tc-mips.c:9361 config/tc-mips.c:9946 config/tc-mips.c:14020
msgid "macro used $at after \".set noat\""
msgstr ""
-#: config/tc-mips.c:9503 config/tc-mips.c:12318 config/tc-mips.c:12999
+#: config/tc-mips.c:9506 config/tc-mips.c:12332 config/tc-mips.c:13013
#, c-format
msgid "number (0x%<PRIx64>) larger than 32 bits"
msgstr ""
-#: config/tc-mips.c:9524
+#: config/tc-mips.c:9527
msgid "number larger than 64 bits"
msgstr ""
-#: config/tc-mips.c:9821 config/tc-mips.c:9849 config/tc-mips.c:9887
-#: config/tc-mips.c:9932 config/tc-mips.c:12562 config/tc-mips.c:12601
-#: config/tc-mips.c:12640 config/tc-mips.c:13096 config/tc-mips.c:13148
+#: config/tc-mips.c:9824 config/tc-mips.c:9852 config/tc-mips.c:9890
+#: config/tc-mips.c:9935 config/tc-mips.c:12576 config/tc-mips.c:12615
+#: config/tc-mips.c:12654 config/tc-mips.c:13110 config/tc-mips.c:13162
msgid "PIC code offset overflow (max 16 signed bits)"
msgstr ""
-#: config/tc-mips.c:10465
+#: config/tc-mips.c:10478
#, c-format
msgid "BALIGN immediate not 0, 1, 2 or 3 (%lu)"
msgstr ""
#. Result is always true.
-#: config/tc-mips.c:10561
+#: config/tc-mips.c:10574
#, c-format
msgid "branch %s is always true"
msgstr ""
-#: config/tc-mips.c:10789 config/tc-mips.c:10899
+#: config/tc-mips.c:10802 config/tc-mips.c:10913
msgid "divide by zero"
msgstr ""
-#: config/tc-mips.c:10989
+#: config/tc-mips.c:11003
msgid "dla used to load 32-bit register; recommend using la instead"
msgstr ""
-#: config/tc-mips.c:10993
+#: config/tc-mips.c:11007
msgid "la used to load 64-bit address; recommend using dla instead"
msgstr ""
-#: config/tc-mips.c:11102 config/tc-riscv.c:2132
+#: config/tc-mips.c:11116 config/tc-riscv.c:2321
msgid "offset too large"
msgstr ""
-#: config/tc-mips.c:11276 config/tc-mips.c:11554
+#: config/tc-mips.c:11290 config/tc-mips.c:11568
msgid "PIC code offset overflow (max 32 signed bits)"
msgstr ""
-#: config/tc-mips.c:11624 config/tc-mips.c:11700
+#: config/tc-mips.c:11638 config/tc-mips.c:11714
#, c-format
msgid "opcode not supported in the `insn32' mode `%s'"
msgstr ""
-#: config/tc-mips.c:11652
+#: config/tc-mips.c:11666
msgid "MIPS PIC call to register other than $25"
msgstr ""
-#: config/tc-mips.c:11668 config/tc-mips.c:11679 config/tc-mips.c:11812
-#: config/tc-mips.c:11823
+#: config/tc-mips.c:11682 config/tc-mips.c:11693 config/tc-mips.c:11826
+#: config/tc-mips.c:11837
msgid "no .cprestore pseudo-op used in PIC code"
msgstr ""
-#: config/tc-mips.c:11673 config/tc-mips.c:11817
+#: config/tc-mips.c:11687 config/tc-mips.c:11831
msgid "no .frame pseudo-op used in PIC code"
msgstr ""
-#: config/tc-mips.c:11838
+#: config/tc-mips.c:11852
msgid "non-PIC jump used in PIC library"
msgstr ""
-#: config/tc-mips.c:12819
+#: config/tc-mips.c:12833
#, c-format
msgid "Unable to generate `%s' compliant code without mthc1"
msgstr ""
-#: config/tc-mips.c:13560
+#: config/tc-mips.c:13574
#, c-format
msgid "instruction %s: result is always false"
msgstr ""
-#: config/tc-mips.c:13713
+#: config/tc-mips.c:13727
#, c-format
msgid "instruction %s: result is always true"
msgstr ""
#. FIXME: Check if this is one of the itbl macros, since they
#. are added dynamically.
-#: config/tc-mips.c:14002
+#: config/tc-mips.c:14016
#, c-format
msgid "macro %s not implemented yet"
msgstr ""
-#: config/tc-mips.c:14535
+#: config/tc-mips.c:14549
msgid "extended operand requested but not required"
msgstr ""
-#: config/tc-mips.c:14544
+#: config/tc-mips.c:14558
msgid "operand value out of range for instruction"
msgstr ""
-#: config/tc-mips.c:14643
+#: config/tc-mips.c:14657
#, c-format
msgid "relocation %s isn't supported by the current ABI"
msgstr ""
-#: config/tc-mips.c:14700
+#: config/tc-mips.c:14714
msgid "unclosed '('"
msgstr ""
-#: config/tc-mips.c:14762
+#: config/tc-mips.c:14776
#, c-format
msgid "a different %s was already specified, is now %s"
msgstr ""
-#: config/tc-mips.c:14929
+#: config/tc-mips.c:14943
msgid "-mmicromips cannot be used with -mips16"
msgstr ""
-#: config/tc-mips.c:14944
+#: config/tc-mips.c:14958
msgid "-mips16 cannot be used with -micromips"
msgstr ""
-#: config/tc-mips.c:15113 config/tc-mips.c:15171
+#: config/tc-mips.c:15127 config/tc-mips.c:15185
msgid "no compiled in support for 64 bit object file format"
msgstr ""
-#: config/tc-mips.c:15178
+#: config/tc-mips.c:15192
#, c-format
msgid "invalid abi -mabi=%s"
msgstr ""
-#: config/tc-mips.c:15218
+#: config/tc-mips.c:15232
#, c-format
msgid "invalid NaN setting -mnan=%s"
msgstr ""
-#: config/tc-mips.c:15252
+#: config/tc-mips.c:15266
msgid "-G not supported in this configuration"
msgstr ""
-#: config/tc-mips.c:15278
+#: config/tc-mips.c:15292
#, c-format
msgid "-%s conflicts with the other architecture options, which imply -%s"
msgstr ""
-#: config/tc-mips.c:15294
+#: config/tc-mips.c:15305
+#, c-format
+msgid "gas doesn't understand your configure target %s"
+msgstr ""
+
+#: config/tc-mips.c:15310
#, c-format
msgid "-march=%s is not compatible with the selected ABI"
msgstr ""
-#: config/tc-mips.c:15789 config/tc-mips.c:16179 config/tc-mips.c:19029
+#: config/tc-mips.c:15805 config/tc-mips.c:16195 config/tc-mips.c:19045
msgid "branch to a symbol in another ISA mode"
msgstr ""
-#: config/tc-mips.c:15796 config/tc-mips.c:15936 config/tc-mips.c:16189
+#: config/tc-mips.c:15812 config/tc-mips.c:15952 config/tc-mips.c:16205
#, c-format
msgid "cannot encode misaligned addend in the relocatable field (0x%lx)"
msgstr ""
-#: config/tc-mips.c:15833
+#: config/tc-mips.c:15849
msgid "PC-relative reference to a different section"
msgstr ""
-#: config/tc-mips.c:15905 config/tc-riscv.c:4266
+#: config/tc-mips.c:15921 config/tc-riscv.c:4499
msgid "TLS relocation against a constant"
msgstr ""
-#: config/tc-mips.c:15925
+#: config/tc-mips.c:15941
msgid "jump to a symbol in another ISA mode"
msgstr ""
-#: config/tc-mips.c:15928
+#: config/tc-mips.c:15944
msgid "JALX to a symbol in the same ISA mode"
msgstr ""
-#: config/tc-mips.c:16011
+#: config/tc-mips.c:16027
msgid "unsupported constant in relocation"
msgstr ""
-#: config/tc-mips.c:16084
+#: config/tc-mips.c:16100
#, c-format
msgid "PC-relative access using misaligned symbol (%lx)"
msgstr ""
-#: config/tc-mips.c:16088
+#: config/tc-mips.c:16104
#, c-format
msgid "PC-relative access using misaligned offset (%lx)"
msgstr ""
-#: config/tc-mips.c:16101 config/tc-mips.c:16120
+#: config/tc-mips.c:16117 config/tc-mips.c:16136
msgid "PC-relative access out of range"
msgstr ""
-#: config/tc-mips.c:16107
+#: config/tc-mips.c:16123
#, c-format
msgid "PC-relative access to misaligned address (%lx)"
msgstr ""
-#: config/tc-mips.c:16276
+#: config/tc-mips.c:16292
#, c-format
msgid "alignment too large, %d assumed"
msgstr ""
-#: config/tc-mips.c:16279
+#: config/tc-mips.c:16295
msgid "alignment negative, 0 assumed"
msgstr ""
-#: config/tc-mips.c:16511
+#: config/tc-mips.c:16527
#, c-format
msgid "%s: no such section"
msgstr ""
-#: config/tc-mips.c:16567
+#: config/tc-mips.c:16583
#, c-format
msgid ".option pic%d not supported"
msgstr ""
-#: config/tc-mips.c:16569
+#: config/tc-mips.c:16585
#, c-format
msgid ".option pic%d not supported in VxWorks PIC mode"
msgstr ""
-#: config/tc-mips.c:16581 config/tc-mips.c:16921
+#: config/tc-mips.c:16597 config/tc-mips.c:16937
msgid "-G may not be used with SVR4 PIC code"
msgstr ""
-#: config/tc-mips.c:16587
+#: config/tc-mips.c:16603
#, c-format
msgid "unrecognized option \"%s\""
msgstr ""
-#: config/tc-mips.c:16693
+#: config/tc-mips.c:16709
#, c-format
msgid "unknown architecture %s"
msgstr ""
-#: config/tc-mips.c:16708 config/tc-mips.c:16872
+#: config/tc-mips.c:16724 config/tc-mips.c:16888
#, c-format
msgid "unknown ISA level %s"
msgstr ""
-#: config/tc-mips.c:16718
+#: config/tc-mips.c:16734
#, c-format
msgid "unknown ISA or architecture %s"
msgstr ""
-#: config/tc-mips.c:16777
+#: config/tc-mips.c:16793
msgid "`noreorder' must be set before `nomacro'"
msgstr ""
-#: config/tc-mips.c:16807
+#: config/tc-mips.c:16823
msgid ".set pop with no .set push"
msgstr ""
-#: config/tc-mips.c:16826
+#: config/tc-mips.c:16842
#, c-format
msgid "tried to set unrecognized symbol: %s\n"
msgstr ""
-#: config/tc-mips.c:16899
+#: config/tc-mips.c:16915
#, c-format
msgid ".module used with unrecognized symbol: %s\n"
msgstr ""
-#: config/tc-mips.c:16905
+#: config/tc-mips.c:16921
msgid ".module is not permitted after generating code"
msgstr ""
-#: config/tc-mips.c:16965 config/tc-mips.c:17044 config/tc-mips.c:17148
-#: config/tc-mips.c:17178 config/tc-mips.c:17227
+#: config/tc-mips.c:16981 config/tc-mips.c:17060 config/tc-mips.c:17164
+#: config/tc-mips.c:17194 config/tc-mips.c:17243
#, c-format
msgid "%s not supported in MIPS16 mode"
msgstr ""
-#: config/tc-mips.c:16972
+#: config/tc-mips.c:16988
msgid ".cpload not in noreorder section"
msgstr ""
-#: config/tc-mips.c:17053 config/tc-mips.c:17072
+#: config/tc-mips.c:17069 config/tc-mips.c:17088
msgid "missing argument separator ',' for .cpsetup"
msgstr ""
-#: config/tc-mips.c:17270 config/tc-riscv.c:4652
+#: config/tc-mips.c:17286 config/tc-riscv.c:4901
#, c-format
msgid "unsupported use of %s"
msgstr ""
-#: config/tc-mips.c:17361
+#: config/tc-mips.c:17377
msgid "unsupported use of .gpword"
msgstr ""
-#: config/tc-mips.c:17399
+#: config/tc-mips.c:17415
msgid "unsupported use of .gpdword"
msgstr ""
-#: config/tc-mips.c:17431
+#: config/tc-mips.c:17447
msgid "unsupported use of .ehword"
msgstr ""
-#: config/tc-mips.c:17518
+#: config/tc-mips.c:17534
msgid "bad .nan directive"
msgstr ""
-#: config/tc-mips.c:17567
+#: config/tc-mips.c:17583
#, c-format
msgid "ignoring attempt to redefine symbol %s"
msgstr ""
-#: config/tc-mips.c:17582 ecoff.c:3358
+#: config/tc-mips.c:17598 ecoff.c:3358
msgid "bad .weakext directive"
msgstr ""
-#: config/tc-mips.c:18554 config/tc-mips.c:18831
+#: config/tc-mips.c:18570 config/tc-mips.c:18847
msgid "relaxed out-of-range branch into a jump"
msgstr ""
-#: config/tc-mips.c:19054
+#: config/tc-mips.c:19070
msgid "extended instruction in a branch delay slot"
msgstr ""
-#: config/tc-mips.c:19168 config/tc-xtensa.c:1691 config/tc-xtensa.c:1969
+#: config/tc-mips.c:19184 config/tc-xtensa.c:1691 config/tc-xtensa.c:1969
msgid "unsupported relocation"
msgstr ""
-#: config/tc-mips.c:19676 config/tc-score.c:5624
+#: config/tc-mips.c:19692 config/tc-score.c:5624
msgid "expected simple number"
msgstr ""
-#: config/tc-mips.c:19704 config/tc-score.c:5651
+#: config/tc-mips.c:19720 config/tc-score.c:5651
msgid "invalid number"
msgstr ""
-#: config/tc-mips.c:19781 ecoff.c:2987
+#: config/tc-mips.c:19797 ecoff.c:2987
msgid ".end directive without a preceding .ent directive"
msgstr ""
-#: config/tc-mips.c:19790
+#: config/tc-mips.c:19806
msgid ".end symbol does not match .ent symbol"
msgstr ""
-#: config/tc-mips.c:19867
+#: config/tc-mips.c:19883
msgid ".ent or .aent not in text section"
msgstr ""
-#: config/tc-mips.c:19870 config/tc-score.c:5683
+#: config/tc-mips.c:19886 config/tc-score.c:5683
msgid "missing .end"
msgstr ""
-#: config/tc-mips.c:19953
+#: config/tc-mips.c:19969
msgid ".mask/.fmask outside of .ent"
msgstr ""
-#: config/tc-mips.c:19960
+#: config/tc-mips.c:19976
msgid "bad .mask/.fmask directive"
msgstr ""
-#: config/tc-mips.c:20264
+#: config/tc-mips.c:20280
#, c-format
msgid "bad value (%s) for %s"
msgstr ""
-#: config/tc-mips.c:20328
+#: config/tc-mips.c:20344
#, c-format
msgid ""
"MIPS options:\n"
@@ -13458,7 +13510,7 @@ msgid ""
"\t\t\timplicitly with the gp register [default 8]\n"
msgstr ""
-#: config/tc-mips.c:20335
+#: config/tc-mips.c:20351
#, c-format
msgid ""
"-mips1\t\t\tgenerate MIPS ISA I instructions\n"
@@ -13479,7 +13531,7 @@ msgid ""
"-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n"
msgstr ""
-#: config/tc-mips.c:20360
+#: config/tc-mips.c:20376
#, c-format
msgid ""
"-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n"
@@ -13487,105 +13539,105 @@ msgid ""
"\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
msgstr ""
-#: config/tc-mips.c:20373
+#: config/tc-mips.c:20389
#, c-format
msgid ""
"-mips16\t\t\tgenerate mips16 instructions\n"
"-no-mips16\t\tdo not generate mips16 instructions\n"
msgstr ""
-#: config/tc-mips.c:20376
+#: config/tc-mips.c:20392
#, c-format
msgid ""
"-mmips16e2\t\tgenerate MIPS16e2 instructions\n"
"-mno-mips16e2\t\tdo not generate MIPS16e2 instructions\n"
msgstr ""
-#: config/tc-mips.c:20379
+#: config/tc-mips.c:20395
#, c-format
msgid ""
"-mmicromips\t\tgenerate microMIPS instructions\n"
"-mno-micromips\t\tdo not generate microMIPS instructions\n"
msgstr ""
-#: config/tc-mips.c:20382
+#: config/tc-mips.c:20398
#, c-format
msgid ""
"-msmartmips\t\tgenerate smartmips instructions\n"
"-mno-smartmips\t\tdo not generate smartmips instructions\n"
msgstr ""
-#: config/tc-mips.c:20385
+#: config/tc-mips.c:20401
#, c-format
msgid ""
"-mdsp\t\t\tgenerate DSP instructions\n"
"-mno-dsp\t\tdo not generate DSP instructions\n"
msgstr ""
-#: config/tc-mips.c:20388
+#: config/tc-mips.c:20404
#, c-format
msgid ""
"-mdspr2\t\t\tgenerate DSP R2 instructions\n"
"-mno-dspr2\t\tdo not generate DSP R2 instructions\n"
msgstr ""
-#: config/tc-mips.c:20391
+#: config/tc-mips.c:20407
#, c-format
msgid ""
"-mdspr3\t\t\tgenerate DSP R3 instructions\n"
"-mno-dspr3\t\tdo not generate DSP R3 instructions\n"
msgstr ""
-#: config/tc-mips.c:20394
+#: config/tc-mips.c:20410
#, c-format
msgid ""
"-mmt\t\t\tgenerate MT instructions\n"
"-mno-mt\t\t\tdo not generate MT instructions\n"
msgstr ""
-#: config/tc-mips.c:20397
+#: config/tc-mips.c:20413
#, c-format
msgid ""
"-mmcu\t\t\tgenerate MCU instructions\n"
"-mno-mcu\t\tdo not generate MCU instructions\n"
msgstr ""
-#: config/tc-mips.c:20400
+#: config/tc-mips.c:20416
#, c-format
msgid ""
"-mmsa\t\t\tgenerate MSA instructions\n"
"-mno-msa\t\tdo not generate MSA instructions\n"
msgstr ""
-#: config/tc-mips.c:20403
+#: config/tc-mips.c:20419
#, c-format
msgid ""
"-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n"
"-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n"
msgstr ""
-#: config/tc-mips.c:20406
+#: config/tc-mips.c:20422
#, c-format
msgid ""
"-mvirt\t\t\tgenerate Virtualization instructions\n"
"-mno-virt\t\tdo not generate Virtualization instructions\n"
msgstr ""
-#: config/tc-mips.c:20409
+#: config/tc-mips.c:20425
#, c-format
msgid ""
"-mcrc\t\t\tgenerate CRC instructions\n"
"-mno-crc\t\tdo not generate CRC instructions\n"
msgstr ""
-#: config/tc-mips.c:20412
+#: config/tc-mips.c:20428
#, c-format
msgid ""
"-mginv\t\t\tgenerate Global INValidate (GINV) instructions\n"
"-mno-ginv\t\tdo not generate Global INValidate instructions\n"
msgstr ""
-#: config/tc-mips.c:20415
+#: config/tc-mips.c:20431
#, c-format
msgid ""
"-mloongson-mmi\t\tgenerate Loongson MultiMedia extensions Instructions (MMI) "
@@ -13594,7 +13646,7 @@ msgid ""
"Instructions\n"
msgstr ""
-#: config/tc-mips.c:20418
+#: config/tc-mips.c:20434
#, c-format
msgid ""
"-mloongson-cam\t\tgenerate Loongson Content Address Memory (CAM) "
@@ -13603,35 +13655,35 @@ msgid ""
"Instructions\n"
msgstr ""
-#: config/tc-mips.c:20421
+#: config/tc-mips.c:20437
#, c-format
msgid ""
"-mloongson-ext\t\tgenerate Loongson EXTensions (EXT) instructions\n"
"-mno-loongson-ext\tdo not generate Loongson EXTensions Instructions\n"
msgstr ""
-#: config/tc-mips.c:20424
+#: config/tc-mips.c:20440
#, c-format
msgid ""
"-mloongson-ext2\t\tgenerate Loongson EXTensions R2 (EXT2) instructions\n"
"-mno-loongson-ext2\tdo not generate Loongson EXTensions R2 Instructions\n"
msgstr ""
-#: config/tc-mips.c:20427
+#: config/tc-mips.c:20443
#, c-format
msgid ""
"-minsn32\t\tonly generate 32-bit microMIPS instructions\n"
"-mno-insn32\t\tgenerate all microMIPS instructions\n"
msgstr ""
-#: config/tc-mips.c:20431
+#: config/tc-mips.c:20447
#, c-format
msgid ""
"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata, default\n"
"-mno-fix-loongson3-llsc\tdisable work around Loongson3 LL/SC errata\n"
msgstr ""
-#: config/tc-mips.c:20435
+#: config/tc-mips.c:20451
#, c-format
msgid ""
"-mfix-loongson3-llsc\twork around Loongson3 LL/SC errata\n"
@@ -13639,7 +13691,7 @@ msgid ""
"default\n"
msgstr ""
-#: config/tc-mips.c:20439
+#: config/tc-mips.c:20455
#, c-format
msgid ""
"-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n"
@@ -13661,7 +13713,7 @@ msgid ""
"--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
msgstr ""
-#: config/tc-mips.c:20457
+#: config/tc-mips.c:20473
#, c-format
msgid ""
"-mhard-float\t\tallow floating-point instructions\n"
@@ -13676,7 +13728,7 @@ msgid ""
"-mnan=ENCODING\t\tselect an IEEE 754 NaN encoding convention, either of:\n"
msgstr ""
-#: config/tc-mips.c:20475
+#: config/tc-mips.c:20491
#, c-format
msgid ""
"-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
@@ -13690,26 +13742,26 @@ msgid ""
"-mabi=ABI\t\tcreate ABI conformant object file for:\n"
msgstr ""
-#: config/tc-mips.c:20496
+#: config/tc-mips.c:20512
#, c-format
msgid "-32\t\t\tcreate o32 ABI object file%s\n"
msgstr ""
-#: config/tc-mips.c:20498 config/tc-mips.c:20501 config/tc-mips.c:20504
+#: config/tc-mips.c:20514 config/tc-mips.c:20517 config/tc-mips.c:20520
msgid " (default)"
msgstr ""
-#: config/tc-mips.c:20499
+#: config/tc-mips.c:20515
#, c-format
msgid "-n32\t\t\tcreate n32 ABI object file%s\n"
msgstr ""
-#: config/tc-mips.c:20502
+#: config/tc-mips.c:20518
#, c-format
msgid "-64\t\t\tcreate 64 ABI object file%s\n"
msgstr ""
-#: config/tc-mips.c:20584
+#: config/tc-mips.c:20600
msgid "missing .end at end of assembly"
msgstr ""
@@ -13967,15 +14019,15 @@ msgid ""
"none yet\n"
msgstr ""
-#: config/tc-mn10200.c:889 config/tc-mn10300.c:1253 config/tc-s390.c:1700
+#: config/tc-mn10200.c:889 config/tc-mn10300.c:1253 config/tc-s390.c:1921
#: config/tc-v850.c:2320
#, c-format
msgid "Unrecognized opcode: `%s'"
msgstr ""
#. xgettext:c-format.
-#: config/tc-mn10200.c:1133 config/tc-mn10300.c:1822 config/tc-ppc.c:4008
-#: config/tc-s390.c:1609 config/tc-v850.c:3036
+#: config/tc-mn10200.c:1133 config/tc-mn10300.c:1822 config/tc-ppc.c:4010
+#: config/tc-s390.c:1830 config/tc-v850.c:3036
#, c-format
msgid "junk at end of line: `%s'"
msgstr ""
@@ -15433,7 +15485,7 @@ msgstr ""
msgid "pcrel too far"
msgstr ""
-#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3495
+#: config/tc-ppc.c:964 config/tc-ppc.c:972 config/tc-ppc.c:3497
msgid "invalid register expression"
msgstr ""
@@ -15450,7 +15502,7 @@ msgstr ""
msgid "%s unsupported"
msgstr ""
-#: config/tc-ppc.c:1268 config/tc-s390.c:433 config/tc-s390.c:440
+#: config/tc-ppc.c:1268 config/tc-s390.c:491 config/tc-s390.c:498
#, c-format
msgid "invalid switch -m%s"
msgstr ""
@@ -15606,509 +15658,514 @@ msgstr ""
#: config/tc-ppc.c:1394
#, c-format
-msgid "-mlibresoc generate code for Libre-SOC architecture\n"
+msgid "-mpower11, -mpwr11 generate code for Power11 architecture\n"
msgstr ""
#: config/tc-ppc.c:1396
#, c-format
-msgid "-mfuture generate code for 'future' architecture\n"
+msgid "-mlibresoc generate code for Libre-SOC architecture\n"
msgstr ""
#: config/tc-ppc.c:1398
#, c-format
+msgid "-mfuture generate code for 'future' architecture\n"
+msgstr ""
+
+#: config/tc-ppc.c:1400
+#, c-format
msgid ""
"-mcell generate code for Cell Broadband Engine "
"architecture\n"
msgstr ""
-#: config/tc-ppc.c:1400
+#: config/tc-ppc.c:1402
#, c-format
msgid ""
"-mcom generate code for Power/PowerPC common instructions\n"
msgstr ""
-#: config/tc-ppc.c:1402
+#: config/tc-ppc.c:1404
#, c-format
msgid ""
"-many generate code for any architecture (PWR/PWRX/PPC)\n"
msgstr ""
-#: config/tc-ppc.c:1404
+#: config/tc-ppc.c:1406
#, c-format
msgid "-maltivec generate code for AltiVec\n"
msgstr ""
-#: config/tc-ppc.c:1406
+#: config/tc-ppc.c:1408
#, c-format
msgid ""
"-mvsx generate code for Vector-Scalar (VSX) instructions\n"
msgstr ""
-#: config/tc-ppc.c:1408
+#: config/tc-ppc.c:1410
#, c-format
msgid "-me300 generate code for PowerPC e300 family\n"
msgstr ""
-#: config/tc-ppc.c:1410
+#: config/tc-ppc.c:1412
#, c-format
msgid "-me500, -me500x2 generate code for Motorola e500 core complex\n"
msgstr ""
-#: config/tc-ppc.c:1412
+#: config/tc-ppc.c:1414
#, c-format
msgid ""
"-me500mc, generate code for Freescale e500mc core complex\n"
msgstr ""
-#: config/tc-ppc.c:1414
+#: config/tc-ppc.c:1416
#, c-format
msgid ""
"-me500mc64, generate code for Freescale e500mc64 core complex\n"
msgstr ""
-#: config/tc-ppc.c:1416
+#: config/tc-ppc.c:1418
#, c-format
msgid ""
"-me5500, generate code for Freescale e5500 core complex\n"
msgstr ""
-#: config/tc-ppc.c:1418
+#: config/tc-ppc.c:1420
#, c-format
msgid ""
"-me6500, generate code for Freescale e6500 core complex\n"
msgstr ""
-#: config/tc-ppc.c:1420
+#: config/tc-ppc.c:1422
#, c-format
msgid "-mspe generate code for Motorola SPE instructions\n"
msgstr ""
-#: config/tc-ppc.c:1422
+#: config/tc-ppc.c:1424
#, c-format
msgid "-mspe2 generate code for Freescale SPE2 instructions\n"
msgstr ""
-#: config/tc-ppc.c:1424
+#: config/tc-ppc.c:1426
#, c-format
msgid "-mvle generate code for Freescale VLE instructions\n"
msgstr ""
-#: config/tc-ppc.c:1426
+#: config/tc-ppc.c:1428
#, c-format
msgid ""
"-mtitan generate code for AppliedMicro Titan core complex\n"
msgstr ""
-#: config/tc-ppc.c:1428
+#: config/tc-ppc.c:1430
#, c-format
msgid "-mregnames Allow symbolic names for registers\n"
msgstr ""
-#: config/tc-ppc.c:1430
+#: config/tc-ppc.c:1432
#, c-format
msgid "-mno-regnames Do not allow symbolic names for registers\n"
msgstr ""
-#: config/tc-ppc.c:1433
+#: config/tc-ppc.c:1435
#, c-format
msgid "-mrelocatable support for GCC's -mrelocatble option\n"
msgstr ""
-#: config/tc-ppc.c:1435
+#: config/tc-ppc.c:1437
#, c-format
msgid "-mrelocatable-lib support for GCC's -mrelocatble-lib option\n"
msgstr ""
-#: config/tc-ppc.c:1437
+#: config/tc-ppc.c:1439
#, c-format
msgid "-memb set PPC_EMB bit in ELF flags\n"
msgstr ""
-#: config/tc-ppc.c:1439
+#: config/tc-ppc.c:1441
#, c-format
msgid ""
"-mlittle, -mlittle-endian, -le\n"
" generate code for a little endian machine\n"
msgstr ""
-#: config/tc-ppc.c:1442
+#: config/tc-ppc.c:1444
#, c-format
msgid ""
"-mbig, -mbig-endian, -be\n"
" generate code for a big endian machine\n"
msgstr ""
-#: config/tc-ppc.c:1445
+#: config/tc-ppc.c:1447
#, c-format
msgid "-msolaris generate code for Solaris\n"
msgstr ""
-#: config/tc-ppc.c:1447
+#: config/tc-ppc.c:1449
#, c-format
msgid "-mno-solaris do not generate code for Solaris\n"
msgstr ""
-#: config/tc-ppc.c:1449
+#: config/tc-ppc.c:1451
#, c-format
msgid "-K PIC set EF_PPC_RELOCATABLE_LIB in ELF flags\n"
msgstr ""
-#: config/tc-ppc.c:1451
+#: config/tc-ppc.c:1453
#, c-format
msgid "-V print assembler version number\n"
msgstr ""
-#: config/tc-ppc.c:1453
+#: config/tc-ppc.c:1455
#, c-format
msgid "-Qy, -Qn ignored\n"
msgstr ""
-#: config/tc-ppc.c:1456
+#: config/tc-ppc.c:1458
#, c-format
msgid ""
"-nops=count when aligning, more than COUNT nops uses a branch\n"
msgstr ""
-#: config/tc-ppc.c:1458
+#: config/tc-ppc.c:1460
#, c-format
msgid "-ppc476-workaround warn if emitting data to code sections\n"
msgstr ""
-#: config/tc-ppc.c:1488
+#: config/tc-ppc.c:1490
#, c-format
msgid "unknown default cpu = %s, os = %s"
msgstr ""
-#: config/tc-ppc.c:1574
+#: config/tc-ppc.c:1576
#, c-format
msgid "mask trims opcode bits for %s"
msgstr ""
-#: config/tc-ppc.c:1584
+#: config/tc-ppc.c:1586
#, c-format
msgid "operand index error for %s"
msgstr ""
-#: config/tc-ppc.c:1610
+#: config/tc-ppc.c:1612
#, c-format
msgid "operand %d overlap in %s"
msgstr ""
-#: config/tc-ppc.c:1619
+#: config/tc-ppc.c:1621
#, c-format
msgid "non-optional operand %d follows optional operand in %s"
msgstr ""
-#: config/tc-ppc.c:1685
+#: config/tc-ppc.c:1687
#, c-format
msgid "powerpc_operands[%d].bitm invalid"
msgstr ""
-#: config/tc-ppc.c:1692
+#: config/tc-ppc.c:1694
#, c-format
msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]"
msgstr ""
-#: config/tc-ppc.c:1720 config/tc-ppc.c:1773 config/tc-ppc.c:1815
-#: config/tc-ppc.c:1863
+#: config/tc-ppc.c:1722 config/tc-ppc.c:1775 config/tc-ppc.c:1817
+#: config/tc-ppc.c:1865
#, c-format
msgid "major opcode is not sorted for %s"
msgstr ""
-#: config/tc-ppc.c:1726
+#: config/tc-ppc.c:1728
#, c-format
msgid "%s is enabled by vle flag"
msgstr ""
-#: config/tc-ppc.c:1733
+#: config/tc-ppc.c:1735
#, c-format
msgid "%s not disabled by vle flag"
msgstr ""
-#: config/tc-ppc.c:1839
+#: config/tc-ppc.c:1841
#, c-format
msgid "opcode is not sorted for %s"
msgstr ""
-#: config/tc-ppc.c:2257
+#: config/tc-ppc.c:2259
#, c-format
msgid "symbol+offset@%s means symbol@%s+offset"
msgstr ""
-#: config/tc-ppc.c:2277
+#: config/tc-ppc.c:2279
#, c-format
msgid "symbol+offset@%s not supported"
msgstr ""
-#: config/tc-ppc.c:2356 config/tc-ppc.c:4226 config/tc-ppc.c:7691
+#: config/tc-ppc.c:2358 config/tc-ppc.c:4228 config/tc-ppc.c:7693
msgid "data in executable section"
msgstr ""
-#: config/tc-ppc.c:2397
+#: config/tc-ppc.c:2399
msgid "expected comma after symbol-name: rest of line ignored."
msgstr ""
-#: config/tc-ppc.c:2430
+#: config/tc-ppc.c:2432
#, c-format
msgid "ignoring attempt to re-define symbol `%s'."
msgstr ""
-#: config/tc-ppc.c:2438
+#: config/tc-ppc.c:2440
#, c-format
msgid "length of .lcomm \"%s\" is already %ld. Not changed to %ld."
msgstr ""
-#: config/tc-ppc.c:2456
+#: config/tc-ppc.c:2458
msgid "common alignment not a power of 2"
msgstr ""
-#: config/tc-ppc.c:2498
+#: config/tc-ppc.c:2500
#, c-format
msgid "expected comma after name `%s' in .localentry directive"
msgstr ""
-#: config/tc-ppc.c:2508
+#: config/tc-ppc.c:2510
msgid "missing expression in .localentry directive"
msgstr ""
-#: config/tc-ppc.c:2529
+#: config/tc-ppc.c:2531
#, c-format
msgid ".localentry expression for `%s' is not a valid power of 2"
msgstr ""
-#: config/tc-ppc.c:2546
+#: config/tc-ppc.c:2548
#, c-format
msgid ".localentry expression for `%s' does not evaluate to a constant"
msgstr ""
-#: config/tc-ppc.c:2561
+#: config/tc-ppc.c:2563
msgid "missing expression in .abiversion directive"
msgstr ""
-#: config/tc-ppc.c:2570
+#: config/tc-ppc.c:2572
msgid ".abiversion expression does not evaluate to a constant"
msgstr ""
-#: config/tc-ppc.c:2650
+#: config/tc-ppc.c:2652
msgid "relocation cannot be done when using -mrelocatable"
msgstr ""
-#: config/tc-ppc.c:2696
+#: config/tc-ppc.c:2698
msgid "TOC section size exceeds 64k"
msgstr ""
-#: config/tc-ppc.c:3256
+#: config/tc-ppc.c:3258
#, c-format
msgid "%s howto doesn't match size/pcrel in gas"
msgstr ""
-#: config/tc-ppc.c:3335
+#: config/tc-ppc.c:3337
#, c-format
msgid "unrecognized opcode: `%s'"
msgstr ""
#. lmw, stmw, lswi, lswx, stswi, stswx
-#: config/tc-ppc.c:3346
+#: config/tc-ppc.c:3348
#, c-format
msgid "`%s' invalid when little-endian"
msgstr ""
-#: config/tc-ppc.c:3695
+#: config/tc-ppc.c:3697
#, c-format
msgid "@tls may not be used with \"%s\" operands"
msgstr ""
-#: config/tc-ppc.c:3698
+#: config/tc-ppc.c:3700
msgid "@tls may only be used in last operand"
msgstr ""
-#: config/tc-ppc.c:3736 config/tc-ppc.c:3746 config/tc-ppc.c:3756
-#: config/tc-ppc.c:3771
+#: config/tc-ppc.c:3738 config/tc-ppc.c:3748 config/tc-ppc.c:3758
+#: config/tc-ppc.c:3773
#, c-format
msgid "%s unsupported on this instruction"
msgstr ""
-#: config/tc-ppc.c:3818
+#: config/tc-ppc.c:3820
#, c-format
msgid "assuming %s on symbol"
msgstr ""
-#: config/tc-ppc.c:3941
+#: config/tc-ppc.c:3943
msgid "unsupported relocation for DS offset field"
msgstr ""
-#: config/tc-ppc.c:3994
+#: config/tc-ppc.c:3996
#, c-format
msgid "syntax error; found `%c', expected `%c'"
msgstr ""
-#: config/tc-ppc.c:3999
+#: config/tc-ppc.c:4001
#, c-format
msgid "syntax error; end of line, expected `%c'"
msgstr ""
-#: config/tc-ppc.c:4064 config/tc-ppc.c:6865
+#: config/tc-ppc.c:4066 config/tc-ppc.c:6867
#, c-format
msgid "instruction address is not a multiple of %d"
msgstr ""
-#: config/tc-ppc.c:4183
+#: config/tc-ppc.c:4185
msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string"
msgstr ""
-#: config/tc-ppc.c:4333
+#: config/tc-ppc.c:4335
msgid "missing size"
msgstr ""
-#: config/tc-ppc.c:4342
+#: config/tc-ppc.c:4344
msgid "negative size"
msgstr ""
-#: config/tc-ppc.c:4369
+#: config/tc-ppc.c:4371
msgid "Unknown visibility field in .comm"
msgstr ""
-#: config/tc-ppc.c:4387
+#: config/tc-ppc.c:4389
msgid "missing real symbol name"
msgstr ""
-#: config/tc-ppc.c:4426
+#: config/tc-ppc.c:4428
msgid "attempt to redefine symbol"
msgstr ""
-#: config/tc-ppc.c:4735
+#: config/tc-ppc.c:4737
#, c-format
msgid "no known dwarf XCOFF section for flag 0x%08x\n"
msgstr ""
-#: config/tc-ppc.c:4748
+#: config/tc-ppc.c:4750
#, c-format
msgid "label %s was not defined in this dwarf section"
msgstr ""
-#: config/tc-ppc.c:4862
+#: config/tc-ppc.c:4864
msgid "the XCOFF file format does not support arbitrary sections"
msgstr ""
-#: config/tc-ppc.c:4900
+#: config/tc-ppc.c:4902
msgid "Unknown visibility field in .extern"
msgstr ""
-#: config/tc-ppc.c:4937
+#: config/tc-ppc.c:4939
msgid "Unknown visibility field in .globl"
msgstr ""
-#: config/tc-ppc.c:4974
+#: config/tc-ppc.c:4976
msgid "Unknown visibility field in .weak"
msgstr ""
-#: config/tc-ppc.c:5025
+#: config/tc-ppc.c:5027
msgid ".ref outside .csect"
msgstr ""
-#: config/tc-ppc.c:5046 config/tc-ppc.c:5306
+#: config/tc-ppc.c:5048 config/tc-ppc.c:5308
msgid "missing symbol name"
msgstr ""
-#: config/tc-ppc.c:5076
+#: config/tc-ppc.c:5078
msgid "missing rename string"
msgstr ""
-#: config/tc-ppc.c:5106 config/tc-ppc.c:5708
+#: config/tc-ppc.c:5108 config/tc-ppc.c:5710
msgid "missing value"
msgstr ""
-#: config/tc-ppc.c:5124
+#: config/tc-ppc.c:5126
msgid "illegal .stabx expression; zero assumed"
msgstr ""
-#: config/tc-ppc.c:5156
+#: config/tc-ppc.c:5158
msgid "missing class"
msgstr ""
-#: config/tc-ppc.c:5165
+#: config/tc-ppc.c:5167
msgid "missing type"
msgstr ""
-#: config/tc-ppc.c:5192
+#: config/tc-ppc.c:5194
msgid ".stabx of storage class stsym must be within .bs/.es"
msgstr ""
-#: config/tc-ppc.c:5496
+#: config/tc-ppc.c:5498
msgid "nested .bs blocks"
msgstr ""
-#: config/tc-ppc.c:5527
+#: config/tc-ppc.c:5529
msgid ".es without preceding .bs"
msgstr ""
-#: config/tc-ppc.c:5700
+#: config/tc-ppc.c:5702
msgid "non-constant byte count"
msgstr ""
-#: config/tc-ppc.c:5775
+#: config/tc-ppc.c:5777
msgid ".tc not in .toc section"
msgstr ""
-#: config/tc-ppc.c:5793
+#: config/tc-ppc.c:5795
msgid ".tc with no label"
msgstr ""
-#: config/tc-ppc.c:5821
+#: config/tc-ppc.c:5823
#, c-format
msgid ".tc with storage class %d not yet supported"
msgstr ""
-#: config/tc-ppc.c:5890 config/tc-s390.c:1959
+#: config/tc-ppc.c:5892 config/tc-s390.c:2180
msgid ".machine stack overflow"
msgstr ""
-#: config/tc-ppc.c:5897 config/tc-s390.c:1970
+#: config/tc-ppc.c:5899 config/tc-s390.c:2191
msgid ".machine stack underflow"
msgstr ""
-#: config/tc-ppc.c:5939 config/tc-s390.c:1982
+#: config/tc-ppc.c:5941 config/tc-s390.c:2203
#, c-format
msgid "invalid machine `%s'"
msgstr ""
-#: config/tc-ppc.c:5983
+#: config/tc-ppc.c:5985
msgid "bad symbol suffix"
msgstr ""
-#: config/tc-ppc.c:6082
+#: config/tc-ppc.c:6084
msgid "unrecognized symbol suffix"
msgstr ""
-#: config/tc-ppc.c:6170
+#: config/tc-ppc.c:6172
msgid ".ef with no preceding .function"
msgstr ""
-#: config/tc-ppc.c:6309
+#: config/tc-ppc.c:6311
#, c-format
msgid "warning: symbol %s has no csect"
msgstr ""
-#: config/tc-ppc.c:6641
+#: config/tc-ppc.c:6643
msgid "symbol in .toc does not match any .tc"
msgstr ""
-#: config/tc-ppc.c:7393
+#: config/tc-ppc.c:7395
#, c-format
msgid "%s unsupported as instruction fixup"
msgstr ""
-#: config/tc-ppc.c:7492
+#: config/tc-ppc.c:7494
#, c-format
msgid "unsupported relocation against %s"
msgstr ""
-#: config/tc-ppc.c:7654
+#: config/tc-ppc.c:7656
#, c-format
msgid "R_TLSML relocation doesn't target a TOC entry named \"_$TLSML\": %s"
msgstr ""
-#: config/tc-ppc.c:7674
+#: config/tc-ppc.c:7676
#, c-format
msgid "Gas failure, reloc value %d\n"
msgstr ""
@@ -16210,311 +16267,306 @@ msgstr ""
msgid "Label \"%s\" matches a CPU register name"
msgstr ""
-#: config/tc-riscv.c:221
+#: config/tc-riscv.c:228
#, c-format
msgid ""
"unknown default privileged spec `%s' set by -mpriv-spec or --with-priv-spec"
msgstr ""
#. Still can not find the privileged spec class.
-#: config/tc-riscv.c:243
+#: config/tc-riscv.c:250
#, c-format
msgid ""
"unknown default privileged spec `%d.%d.%d' set by privileged elf attributes"
msgstr ""
-#: config/tc-riscv.c:329
+#: config/tc-riscv.c:336
msgid ""
"the architecture string of -march and elf architecture attributes cannot be "
"empty"
msgstr ""
-#: config/tc-riscv.c:895 config/tc-riscv.c:956 config/tc-riscv.c:1578
+#: config/tc-riscv.c:902 config/tc-riscv.c:963 config/tc-riscv.c:1759
#, c-format
msgid "internal: duplicate %s"
msgstr ""
-#: config/tc-riscv.c:1115
+#: config/tc-riscv.c:1138
#, c-format
msgid "internal: bad RISC-V CSR class (0x%x)"
msgstr ""
-#: config/tc-riscv.c:1121
+#: config/tc-riscv.c:1144
#, c-format
msgid "invalid CSR `%s', needs rv32i extension"
msgstr ""
-#: config/tc-riscv.c:1123
+#: config/tc-riscv.c:1146
#, c-format
msgid "invalid CSR `%s', needs `h' extension"
msgstr ""
-#: config/tc-riscv.c:1127
+#: config/tc-riscv.c:1150
#, c-format
msgid "invalid CSR `%s', needs `%s' extension"
msgstr ""
-#: config/tc-riscv.c:1150
+#: config/tc-riscv.c:1173
#, c-format
msgid "invalid CSR `%s' for the privileged spec `%s'"
msgstr ""
-#: config/tc-riscv.c:1284
+#: config/tc-riscv.c:1423
+msgid "cannot find `}' for cm.push/cm.pop"
+msgstr ""
+
+#: config/tc-riscv.c:1459
#, c-format
msgid "internal: bad RISC-V opcode (mask error): %s %s"
msgstr ""
-#: config/tc-riscv.c:1538
+#: config/tc-riscv.c:1719
#, c-format
msgid "internal: bad RISC-V opcode (unknown operand type `%s'): %s %s"
msgstr ""
-#: config/tc-riscv.c:1547
+#: config/tc-riscv.c:1728
#, c-format
msgid "internal: bad RISC-V opcode (bits %#llx undefined or invalid): %s %s"
msgstr ""
-#: config/tc-riscv.c:1589
+#: config/tc-riscv.c:1770
msgid "internal: broken assembler. No assembly attempted"
msgstr ""
-#: config/tc-riscv.c:1756
+#: config/tc-riscv.c:1945
#, c-format
msgid "internal: unsupported RISC-V relocation number %d"
msgstr ""
-#: config/tc-riscv.c:1872
+#: config/tc-riscv.c:2061
#, c-format
msgid "internal: invalid macro argument `%s'"
msgstr ""
-#: config/tc-riscv.c:1897
+#: config/tc-riscv.c:2086
msgid "internal: vasprintf failed"
msgstr ""
-#: config/tc-riscv.c:1927 config/tc-riscv.c:2005
+#: config/tc-riscv.c:2116 config/tc-riscv.c:2194
msgid "unsupported large constant"
msgstr ""
-#: config/tc-riscv.c:1929
+#: config/tc-riscv.c:2118
#, c-format
msgid "unknown CSR `%s'"
msgstr ""
-#: config/tc-riscv.c:1932
+#: config/tc-riscv.c:2121
#, c-format
msgid "instruction %s requires absolute expression"
msgstr ""
-#: config/tc-riscv.c:2100
+#: config/tc-riscv.c:2289
msgid "must provide temp if destination overlaps mask"
msgstr ""
-#: config/tc-riscv.c:2193
+#: config/tc-riscv.c:2382
#, c-format
msgid "internal: macro %s not implemented"
msgstr ""
-#: config/tc-riscv.c:2391 config/tc-riscv.c:2451
+#: config/tc-riscv.c:2584 config/tc-riscv.c:2644
msgid "multiple vsew constants"
msgstr ""
-#: config/tc-riscv.c:2399
+#: config/tc-riscv.c:2592
msgid "multiple vlmul constants"
msgstr ""
-#: config/tc-riscv.c:2407
+#: config/tc-riscv.c:2600
msgid "multiple vta constants"
msgstr ""
-#: config/tc-riscv.c:2415
+#: config/tc-riscv.c:2608
msgid "multiple vma constants"
msgstr ""
-#: config/tc-riscv.c:2461
+#: config/tc-riscv.c:2654
msgid "multiple vlen constants"
msgstr ""
-#: config/tc-riscv.c:2470
+#: config/tc-riscv.c:2663
msgid "multiple vediv constants"
msgstr ""
#. Reset error message of the previous round.
-#: config/tc-riscv.c:2639
+#: config/tc-riscv.c:2832
msgid "illegal operands"
msgstr ""
-#: config/tc-riscv.c:2690
+#: config/tc-riscv.c:2883
#, c-format
msgid "read-only CSR is written `%s'"
msgstr ""
-#: config/tc-riscv.c:2700
+#: config/tc-riscv.c:2893
msgid "illegal opcode for zve32x"
msgstr ""
-#: config/tc-riscv.c:2952
+#: config/tc-riscv.c:3145
msgid "bad value for compressed funct6 field, value must be 0...63"
msgstr ""
-#: config/tc-riscv.c:2967
+#: config/tc-riscv.c:3160
msgid "bad value for compressed funct4 field, value must be 0...15"
msgstr ""
-#: config/tc-riscv.c:2982
+#: config/tc-riscv.c:3175
msgid "bad value for compressed funct3 field, value must be 0...7"
msgstr ""
-#: config/tc-riscv.c:2997
+#: config/tc-riscv.c:3190
msgid "bad value for compressed funct2 field, value must be 0...3"
msgstr ""
-#: config/tc-riscv.c:3090
+#: config/tc-riscv.c:3283
msgid "bad value for vsetivli immediate field, value must be 0..1023"
msgstr ""
-#: config/tc-riscv.c:3102
+#: config/tc-riscv.c:3295
msgid "bad value for vsetvli immediate field, value must be 0..2047"
msgstr ""
-#: config/tc-riscv.c:3115
+#: config/tc-riscv.c:3308
msgid "bad value for vector immediate field, value must be -16...15"
msgstr ""
-#: config/tc-riscv.c:3127
+#: config/tc-riscv.c:3320
msgid "bad value for vector immediate field, value must be 0...31"
msgstr ""
-#: config/tc-riscv.c:3139
+#: config/tc-riscv.c:3332
msgid "bad value for vector immediate field, value must be -15...16"
msgstr ""
-#: config/tc-riscv.c:3151
+#: config/tc-riscv.c:3344
msgid "bad value for vector immediate field, value must be 0...63"
msgstr ""
-#: config/tc-riscv.c:3212 config/tc-riscv.c:3223
+#: config/tc-riscv.c:3407 config/tc-riscv.c:3418
#, c-format
msgid "improper shift amount (%<PRIu64>)"
msgstr ""
-#: config/tc-riscv.c:3234
+#: config/tc-riscv.c:3429
#, c-format
msgid "improper CSRxI immediate (%<PRIu64>)"
msgstr ""
-#: config/tc-riscv.c:3251
+#: config/tc-riscv.c:3446
#, c-format
msgid "improper CSR address (%<PRIu64>)"
msgstr ""
-#: config/tc-riscv.c:3431
+#: config/tc-riscv.c:3626
msgid "lui expression not in range 0..1048575"
msgstr ""
-#: config/tc-riscv.c:3464
+#: config/tc-riscv.c:3659
msgid ""
"bad value for opcode field, value must be 0...127 and lower 2 bits must be "
"0x3"
msgstr ""
-#: config/tc-riscv.c:3480
+#: config/tc-riscv.c:3675
msgid "bad value for opcode field, value must be 0...2"
msgstr ""
-#: config/tc-riscv.c:3503
+#: config/tc-riscv.c:3698
msgid "bad value for funct7 field, value must be 0...127"
msgstr ""
-#: config/tc-riscv.c:3518
+#: config/tc-riscv.c:3713
msgid "bad value for funct3 field, value must be 0...7"
msgstr ""
-#: config/tc-riscv.c:3533
+#: config/tc-riscv.c:3728
msgid "bad value for funct2 field, value must be 0...3"
msgstr ""
-#: config/tc-riscv.c:3551
+#: config/tc-riscv.c:3746
#, c-format
msgid "Improper bs immediate (%lu)"
msgstr ""
-#: config/tc-riscv.c:3562
+#: config/tc-riscv.c:3757
#, c-format
msgid "Improper rnum immediate (%lu)"
msgstr ""
-#: config/tc-riscv.c:3594
+#: config/tc-riscv.c:3789
#, c-format
msgid "improper prefetch offset (%ld)"
msgstr ""
-#: config/tc-riscv.c:3622
+#: config/tc-riscv.c:3817
msgid ""
"bad fli constant operand, supported constants must be in decimal or "
"hexadecimal floating-point literal form"
msgstr ""
-#: config/tc-riscv.c:3698
+#: config/tc-riscv.c:3914
msgid "bad value for th.vsetvli immediate field, value must be 0..2047"
msgstr ""
-#: config/tc-riscv.c:3709
+#: config/tc-riscv.c:3925
#, c-format
msgid "unexpected literal (%s)"
msgstr ""
-#: config/tc-riscv.c:3731
+#: config/tc-riscv.c:3947
#, c-format
msgid "improper immediate value (%<PRIu64>)"
msgstr ""
-#: config/tc-riscv.c:3737
+#: config/tc-riscv.c:3953
#, c-format
msgid "improper immediate value (%<PRIi64>)"
msgstr ""
-#: config/tc-riscv.c:3789
+#: config/tc-riscv.c:4015
#, c-format
msgid "bad value for <bit-%s-%s> field, value must be 0...%d"
msgstr ""
-#: config/tc-riscv.c:3835
+#: config/tc-riscv.c:4061
#, c-format
msgid "internal: unknown argument type `%s'"
msgstr ""
-#: config/tc-riscv.c:3887
+#: config/tc-riscv.c:4113
msgid "values must be constant"
msgstr ""
-#: config/tc-riscv.c:3894
+#: config/tc-riscv.c:4120
msgid "unrecognized values"
msgstr ""
-#: config/tc-riscv.c:3902 config/tc-riscv.c:3913 config/tc-riscv.c:3929
+#: config/tc-riscv.c:4128 config/tc-riscv.c:4139 config/tc-riscv.c:4155
msgid "value conflicts with instruction length"
msgstr ""
-#: config/tc-riscv.c:4447
+#: config/tc-riscv.c:4692
msgid "too many pcrel_hi"
msgstr ""
-#: config/tc-riscv.c:4489
+#: config/tc-riscv.c:4738
#, c-format
msgid "internal: bad relocation #%d"
msgstr ""
-#: config/tc-riscv.c:4619
-msgid ".option pop with no .option push"
-msgstr ""
-
-#: config/tc-riscv.c:4632
-#, c-format
-msgid "unrecognized .option directive: %s"
-msgstr ""
-
-#: config/tc-riscv.c:4984
+#: config/tc-riscv.c:5233
#, c-format
msgid ""
"RISC-V options:\n"
@@ -16524,8 +16576,8 @@ msgid ""
" -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.9.1, 1.10, "
-"1.11, 1.12)\n"
+" -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, "
+"1.12)\n"
" -mabi=ABI set the RISC-V ABI\n"
" -mrelax enable relax (default)\n"
" -mno-relax disable relax\n"
@@ -16539,33 +16591,33 @@ msgid ""
" -mlittle-endian assemble for little-endian\n"
msgstr ""
-#: config/tc-riscv.c:5029
+#: config/tc-riscv.c:5278
#, c-format
msgid "unknown register `%s'"
msgstr ""
-#: config/tc-riscv.c:5052
+#: config/tc-riscv.c:5301
msgid "non-constant .sleb128 is not supported"
msgstr ""
-#: config/tc-riscv.c:5054
+#: config/tc-riscv.c:5303
msgid ".uleb128 only supports constant or subtract expressions"
msgstr ""
-#: config/tc-riscv.c:5156
+#: config/tc-riscv.c:5405
#, c-format
msgid "internal: bad RISC-V privileged spec (%s)"
msgstr ""
-#: config/tc-riscv.c:5309
+#: config/tc-riscv.c:5558
msgid "architecture elf attributes must set before any instructions"
msgstr ""
-#: config/tc-riscv.c:5327
+#: config/tc-riscv.c:5576
msgid "privileged elf attributes must set before any instructions"
msgstr ""
-#: config/tc-riscv.c:5349
+#: config/tc-riscv.c:5598
msgid "missing symbol name for .variant_cc directive"
msgstr ""
@@ -16929,165 +16981,286 @@ msgstr ""
msgid "First invalid token: \"%s\""
msgstr ""
-#: config/tc-s390.c:235 config/tc-sparc.c:310
+#: config/tc-s390.c:280 config/tc-sparc.c:310
msgid "Invalid default architecture, broken assembler."
msgstr ""
-#: config/tc-s390.c:374
+#: config/tc-s390.c:424
#, c-format
msgid "no such machine extension `%s'"
msgstr ""
-#: config/tc-s390.c:385
+#: config/tc-s390.c:435
#, c-format
msgid "junk at end of machine string, first unrecognized character is `%c'"
msgstr ""
-#: config/tc-s390.c:452 config/tc-sparc.c:489
+#: config/tc-s390.c:510 config/tc-sparc.c:489
#, c-format
msgid "invalid architecture -A%s"
msgstr ""
-#: config/tc-s390.c:475
+#: config/tc-s390.c:533
+#, c-format
+msgid ""
+"S390 options:\n"
+" -m31 generate 31-bit file format (31/32 bit word size)\n"
+" -m64 generate 64-bit file format (64 bit word size)\n"
+" -mesa assemble for Enterprise System Architecture/390\n"
+" -mzarch assemble for z/Architecture\n"
+" -march=<processor> assemble for processor <processor>\n"
+" -mregnames allow symbolic names for registers\n"
+" -mno-regnames do not allow symbolic names for registers\n"
+" -mwarn-areg-zero warn about base/index register zero\n"
+" -mwarn-regtype-mismatch=strict\n"
+" warn about register name type mismatches\n"
+" -mwarn-regtype-mismatch=relaxed\n"
+" warn about register name type mismatches,\n"
+" but allow FPR and VR to be used interchangeably\n"
+" -mno-warn-regtype-mismatch\n"
+" do not warn about register name type mismatches\n"
+msgstr ""
+
+#: config/tc-s390.c:551
#, c-format
msgid ""
-" S390 options:\n"
-" -mregnames Allow symbolic names for registers\n"
-" -mwarn-areg-zero Warn about zero base/index registers\n"
-" -mno-regnames Do not allow symbolic names for registers\n"
-" -m31 Set file format to 31 bit format\n"
-" -m64 Set file format to 64 bit format\n"
+" -V print assembler version number\n"
+" -Qy, -Qn ignored\n"
msgstr ""
-#: config/tc-s390.c:482
+#: config/tc-s390.c:554
#, c-format
msgid ""
-" -V print assembler version number\n"
-" -Qy, -Qn ignored\n"
+"Deprecated S390 options:\n"
+" -Aesa assemble for processor IBM S/390 G5 (g5/arch3)\n"
+" -Aesame assemble for processor IBM zSeries 900 (z900/"
+"arch5)\n"
msgstr ""
-#: config/tc-s390.c:560
-msgid "The 64 bit file format is used without esame instructions."
+#: config/tc-s390.c:633
+msgid "The 64-bit file format is used without z/Architecture instructions."
msgstr ""
-#: config/tc-s390.c:618
+#. xgettext:c-format.
+#: config/tc-s390.c:679
#, c-format
-msgid "operand out of range (%<PRId64> not between %<PRId64> and %<PRId64>)"
+msgid ""
+"operand %d: operand out of range (%<PRId64> is not between %<PRId64> and %"
+"<PRId64>)"
msgstr ""
-#: config/tc-s390.c:847
+#. xgettext:c-format.
+#: config/tc-s390.c:691
+#, c-format
+msgid "operand out of range (%<PRId64> is not between %<PRId64> and %<PRId64>)"
+msgstr ""
+
+#: config/tc-s390.c:952
#, c-format
msgid "identifier+constant@%s means identifier@%s+constant"
msgstr ""
-#: config/tc-s390.c:928
+#: config/tc-s390.c:1033
msgid "Can't handle O_big in s390_exp_compare"
msgstr ""
-#: config/tc-s390.c:1010
+#: config/tc-s390.c:1115
msgid "Invalid suffix for literal pool entry"
msgstr ""
-#: config/tc-s390.c:1067
+#: config/tc-s390.c:1172
msgid "Big number is too big"
msgstr ""
-#: config/tc-s390.c:1216
+#: config/tc-s390.c:1321
msgid "relocation not applicable"
msgstr ""
-#: config/tc-s390.c:1349
-msgid "invalid length field specified"
+#: config/tc-s390.c:1336
+msgid "base register"
+msgstr ""
+
+#: config/tc-s390.c:1338
+msgid "displacement"
msgstr ""
-#: config/tc-s390.c:1353
-msgid "index register specified but zero"
+#: config/tc-s390.c:1342
+msgid "vector index register"
msgstr ""
-#: config/tc-s390.c:1357
-msgid "base register specified but zero"
+#: config/tc-s390.c:1344
+msgid "index register"
+msgstr ""
+
+#: config/tc-s390.c:1347
+msgid "length"
+msgstr ""
+
+#: config/tc-s390.c:1349 config/tc-s390.c:1524
+msgid "access register"
+msgstr ""
+
+#: config/tc-s390.c:1351 config/tc-s390.c:1527
+msgid "control register"
+msgstr ""
+
+#: config/tc-s390.c:1353 config/tc-s390.c:1532
+msgid "floating-point register"
+msgstr ""
+
+#: config/tc-s390.c:1355
+msgid "general-purpose register"
+msgstr ""
+
+#: config/tc-s390.c:1357 config/tc-s390.c:1540
+msgid "vector register"
msgstr ""
#: config/tc-s390.c:1361
-msgid "odd numbered general purpose register specified as register pair"
+msgid "signed number"
+msgstr ""
+
+#: config/tc-s390.c:1363
+msgid "unsigned number"
+msgstr ""
+
+#: config/tc-s390.c:1464
+#, c-format
+msgid "operand %d: illegal operand"
+msgstr ""
+
+#: config/tc-s390.c:1469
+#, c-format
+msgid "operand %d: missing %s operand"
+msgstr ""
+
+#: config/tc-s390.c:1481 config/tc-s390.c:1645
+#, c-format
+msgid "operand %d: too many fixups"
msgstr ""
-#: config/tc-s390.c:1369
+#: config/tc-s390.c:1491
+#, c-format
+msgid "operand %d: invalid length field specified"
+msgstr ""
+
+#: config/tc-s390.c:1496
+#, c-format
+msgid "operand %d: index register specified but zero"
+msgstr ""
+
+#: config/tc-s390.c:1501
+#, c-format
+msgid "operand %d: base register specified but zero"
+msgstr ""
+
+#: config/tc-s390.c:1506
+#, c-format
msgid ""
-"invalid floating point register pair. Valid fp register pair operands are "
-"0, 1, 4, 5, 8, 9, 12 or 13."
+"operand %d: odd numbered general purpose register specified as register pair"
msgstr ""
-#: config/tc-s390.c:1458
-msgid "invalid operand suffix"
+#: config/tc-s390.c:1514
+#, c-format
+msgid ""
+"operand %d: invalid floating-point register (FPR) pair (valid FPR pair "
+"operands are 0, 1, 4, 5, 8, 9, 12 or 13)"
msgstr ""
-#: config/tc-s390.c:1481
-msgid "syntax error; missing '(' after displacement"
+#: config/tc-s390.c:1535
+msgid "general register"
msgstr ""
-#: config/tc-s390.c:1498 config/tc-s390.c:1544 config/tc-s390.c:1576
-msgid "syntax error; expected ','"
+#: config/tc-s390.c:1545
+#, c-format
+msgid "operand %d: expected %s name as base register"
msgstr ""
-#: config/tc-s390.c:1530
-msgid "syntax error; missing ')' after base register"
+#: config/tc-s390.c:1548
+#, c-format
+msgid "operand %d: expected %s name as index register"
msgstr ""
-#: config/tc-s390.c:1561
-msgid "syntax error; ')' not allowed here"
+#: config/tc-s390.c:1551
+#, c-format
+msgid "operand %d: expected %s name"
+msgstr ""
+
+#: config/tc-s390.c:1641
+#, c-format
+msgid "operand %d: invalid operand suffix"
+msgstr ""
+
+#: config/tc-s390.c:1665
+#, c-format
+msgid "operand %d: syntax error; missing '(' after displacement"
msgstr ""
-#: config/tc-s390.c:1705
+#: config/tc-s390.c:1686 config/tc-s390.c:1745 config/tc-s390.c:1790
+#, c-format
+msgid "operand %d: syntax error; expected ','"
+msgstr ""
+
+#: config/tc-s390.c:1725
+#, c-format
+msgid "operand %d: syntax error; missing ')' after base register"
+msgstr ""
+
+#: config/tc-s390.c:1769
+#, c-format
+msgid "operand %d: syntax error; '%c' not allowed here"
+msgstr ""
+
+#: config/tc-s390.c:1926
#, c-format
msgid "Opcode %s not available in this mode"
msgstr ""
-#: config/tc-s390.c:1750 config/tc-s390.c:1773 config/tc-s390.c:1786
+#: config/tc-s390.c:1971 config/tc-s390.c:1994 config/tc-s390.c:2007
msgid "Invalid .insn format\n"
msgstr ""
-#: config/tc-s390.c:1758
+#: config/tc-s390.c:1979
#, c-format
msgid "Unrecognized opcode format: `%s'"
msgstr ""
-#: config/tc-s390.c:1789
+#: config/tc-s390.c:2010
msgid "second operand of .insn not a constant\n"
msgstr ""
-#: config/tc-s390.c:1792
+#: config/tc-s390.c:2013
msgid "missing comma after insn constant\n"
msgstr ""
-#: config/tc-s390.c:2031
+#: config/tc-s390.c:2252
msgid ".machinemode stack overflow"
msgstr ""
-#: config/tc-s390.c:2038
+#: config/tc-s390.c:2259
msgid ".machinemode stack underflow"
msgstr ""
-#: config/tc-s390.c:2055
+#: config/tc-s390.c:2276
#, c-format
msgid "invalid machine mode `%s'"
msgstr ""
-#: config/tc-s390.c:2377
+#: config/tc-s390.c:2598
msgid "unsupported relocation type"
msgstr ""
-#: config/tc-s390.c:2432
+#: config/tc-s390.c:2653
#, c-format
msgid "cannot emit PC relative %s relocation%s%s"
msgstr ""
-#: config/tc-s390.c:2571
+#: config/tc-s390.c:2792
#, c-format
msgid "Gas failure, reloc type %s\n"
msgstr ""
-#: config/tc-s390.c:2573
+#: config/tc-s390.c:2794
#, c-format
msgid "Gas failure, reloc type #%i\n"
msgstr ""
@@ -17314,7 +17487,7 @@ msgstr ""
msgid "BSS length (%d) < 0 ignored"
msgstr ""
-#: config/tc-score.c:6110 read.c:2504
+#: config/tc-score.c:6110 read.c:2506
#, c-format
msgid "error setting flags for \".sbss\": %s"
msgstr ""
@@ -17328,7 +17501,7 @@ msgstr ""
msgid "alignment too large; %d assumed"
msgstr ""
-#: config/tc-score.c:6166 read.c:2565
+#: config/tc-score.c:6166 read.c:2567
msgid "alignment negative; 0 assumed"
msgstr ""
@@ -18028,7 +18201,7 @@ msgstr ""
#: config/tc-sparc.c:3649 config/tc-sparc.c:3656 config/tc-sparc.c:3663
#: config/tc-sparc.c:3670 config/tc-sparc.c:3677 config/tc-sparc.c:3686
#: config/tc-sparc.c:3698 config/tc-sparc.c:3709 config/tc-sparc.c:3731
-#: config/tc-sparc.c:3755 write.c:1191
+#: config/tc-sparc.c:3755 write.c:1202
msgid "relocation overflow"
msgstr ""
@@ -18054,7 +18227,7 @@ msgstr ""
msgid "negative alignment"
msgstr ""
-#: config/tc-sparc.c:4183 config/tc-sparc.c:4321 read.c:1534 read.c:2577
+#: config/tc-sparc.c:4183 config/tc-sparc.c:4321 read.c:1536 read.c:2579
msgid "alignment not a power of 2"
msgstr ""
@@ -20036,7 +20209,7 @@ msgstr ""
msgid "displacement is too large"
msgstr ""
-#: config/tc-v850.c:2968 config/tc-xtensa.c:13064
+#: config/tc-v850.c:2968 config/tc-xtensa.c:13096
msgid "invalid operand"
msgstr ""
@@ -20350,7 +20523,7 @@ msgstr ""
msgid "missing table index"
msgstr ""
-#: config/tc-wasm32.c:726 config/tc-z80.c:3697 read.c:3911
+#: config/tc-wasm32.c:726 config/tc-z80.c:3697 read.c:3967
#, c-format
msgid "junk at end of line, first unrecognized character is `%c'"
msgstr ""
@@ -20970,49 +21143,49 @@ msgid ""
"literal_position"
msgstr ""
-#: config/tc-xtensa.c:12378
+#: config/tc-xtensa.c:12410
msgid "too many operands in instruction"
msgstr ""
-#: config/tc-xtensa.c:12588
+#: config/tc-xtensa.c:12620
msgid "invalid symbolic operand"
msgstr ""
-#: config/tc-xtensa.c:12649
+#: config/tc-xtensa.c:12681
msgid "operand number mismatch"
msgstr ""
-#: config/tc-xtensa.c:12653
+#: config/tc-xtensa.c:12685
#, c-format
msgid "cannot encode opcode \"%s\" in the given format \"%s\""
msgstr ""
-#: config/tc-xtensa.c:12678
+#: config/tc-xtensa.c:12710
#, c-format
msgid "xtensa-isa failure: %s"
msgstr ""
-#: config/tc-xtensa.c:12755
+#: config/tc-xtensa.c:12787
msgid "invalid opcode"
msgstr ""
-#: config/tc-xtensa.c:12761
+#: config/tc-xtensa.c:12793
msgid "too few operands"
msgstr ""
-#: config/tc-xtensa.c:12767
+#: config/tc-xtensa.c:12799
msgid "too many operands"
msgstr ""
-#: config/tc-xtensa.c:12811
+#: config/tc-xtensa.c:12843
msgid "multiple writes to the same register"
msgstr ""
-#: config/tc-xtensa.c:12925 config/tc-xtensa.c:12931
+#: config/tc-xtensa.c:12957 config/tc-xtensa.c:12963
msgid "out of memory"
msgstr ""
-#: config/tc-xtensa.c:13020
+#: config/tc-xtensa.c:13052
msgid "TLS relocation not allowed in FLIX bundle"
msgstr ""
@@ -21020,33 +21193,33 @@ msgstr ""
#. relaxed in the front-end. If "record_fixup" is set, then this
#. function is being called during back-end relaxation, so flag
#. the unexpected behavior as an error.
-#: config/tc-xtensa.c:13026
+#: config/tc-xtensa.c:13058
msgid "unexpected TLS relocation"
msgstr ""
-#: config/tc-xtensa.c:13070
+#: config/tc-xtensa.c:13102
msgid "symbolic operand not allowed"
msgstr ""
-#: config/tc-xtensa.c:13107
+#: config/tc-xtensa.c:13139
msgid "cannot decode instruction format"
msgstr ""
-#: config/tc-xtensa.c:13251
+#: config/tc-xtensa.c:13283
msgid "ignoring extra '-rename-section' delimiter ':'"
msgstr ""
-#: config/tc-xtensa.c:13256
+#: config/tc-xtensa.c:13288
#, c-format
msgid "ignoring invalid '-rename-section' specification: '%s'"
msgstr ""
-#: config/tc-xtensa.c:13267
+#: config/tc-xtensa.c:13299
#, c-format
msgid "section %s renamed multiple times"
msgstr ""
-#: config/tc-xtensa.c:13269
+#: config/tc-xtensa.c:13301
#, c-format
msgid "multiple sections remapped to output section %s"
msgstr ""
@@ -21450,7 +21623,7 @@ msgstr ""
msgid "can't close `%s'"
msgstr ""
-#: dw2gencfi.c:313 read.c:2478
+#: dw2gencfi.c:313 read.c:2480
#, c-format
msgid "bfd_set_section_flags: %s"
msgstr ""
@@ -21810,11 +21983,11 @@ msgstr ""
msgid "GP prologue size exceeds field size, using 0 instead"
msgstr ""
-#: expr.c:74 read.c:3973
+#: expr.c:74 read.c:4029
msgid "bignum invalid"
msgstr ""
-#: expr.c:76 read.c:3975 read.c:4482 read.c:5252
+#: expr.c:76 read.c:4031 read.c:4538 read.c:5308
msgid "floating point number invalid"
msgstr ""
@@ -21827,92 +22000,92 @@ msgstr ""
msgid "bad floating-point constant: unknown error code=%d"
msgstr ""
-#: expr.c:423
+#: expr.c:419
msgid ""
"a bignum with underscores may not have more than 8 hex digits in any word"
msgstr ""
-#: expr.c:446
+#: expr.c:442
msgid "a bignum with underscores must have exactly 4 words"
msgstr ""
#. Either not seen or not defined.
#. @@ Should print out the original string instead of
#. the parsed number.
-#: expr.c:589
+#: expr.c:588
#, c-format
msgid "backward ref to unknown label \"%d:\""
msgstr ""
-#: expr.c:702
+#: expr.c:701
msgid "character constant too large"
msgstr ""
-#: expr.c:1007
+#: expr.c:1006
#, c-format
msgid "found '%c', expected: '%c'"
msgstr ""
-#: expr.c:1010
+#: expr.c:1009
#, c-format
msgid "missing '%c'"
msgstr ""
-#: expr.c:1022 read.c:4762
+#: expr.c:1021 read.c:4818
msgid "EBCDIC constants are not supported"
msgstr ""
-#: expr.c:1174
+#: expr.c:1173
#, c-format
msgid "Unary operator %c ignored because bad operand follows"
msgstr ""
-#: expr.c:1238 expr.c:1260
+#: expr.c:1237 expr.c:1259
msgid "syntax error in .startof. or .sizeof."
msgstr ""
-#: expr.c:1340 expr.c:1676
+#: expr.c:1339 expr.c:1675
#, c-format
msgid "invalid use of operator \"%s\""
msgstr ""
-#: expr.c:1861
+#: expr.c:1860
msgid "missing operand; zero assumed"
msgstr ""
-#: expr.c:1900
+#: expr.c:1899
msgid "left operand is a bignum; integer 0 assumed"
msgstr ""
-#: expr.c:1902
+#: expr.c:1901
msgid "left operand is a float; integer 0 assumed"
msgstr ""
-#: expr.c:1911
+#: expr.c:1910
msgid "right operand is a bignum; integer 0 assumed"
msgstr ""
-#: expr.c:1913
+#: expr.c:1912
msgid "right operand is a float; integer 0 assumed"
msgstr ""
-#: expr.c:1992 symbols.c:1705
+#: expr.c:1991 symbols.c:1705
msgid "division by zero"
msgstr ""
-#: expr.c:2018 symbols.c:1716
+#: expr.c:2017 symbols.c:1716
msgid "shift count"
msgstr ""
-#: expr.c:2144
+#: expr.c:2143
msgid "operation combines symbols in different segments"
msgstr ""
-#: expr.c:2507
+#: expr.c:2506
msgid "missing closing '\"'"
msgstr ""
-#: expr.c:2535
+#: expr.c:2534
#, c-format
msgid "'\\%c' in quoted symbol name; behavior may change in the future"
msgstr ""
@@ -21925,7 +22098,7 @@ msgstr ""
msgid "attempt to allocate data in common section"
msgstr ""
-#: frags.c:115 write.c:1497
+#: frags.c:115 write.c:1508
#, c-format
msgid "can't extend frag %lu char"
msgid_plural "can't extend frag %lu chars"
@@ -21934,40 +22107,88 @@ msgstr[1] ""
#. Offset of size 8 bytes is not supported in SFrame format
#. version 1.
-#: gen-sframe.c:401
+#: gen-sframe.c:402
msgid "SFrame unsupported offset value\n"
msgstr ""
-#: gen-sframe.c:1275
+#: gen-sframe.c:1019
#, c-format
-msgid "skipping SFrame FDE due to DWARF CFI op %#x"
+msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa"
msgstr ""
-#: ginsn.c:819
+#: gen-sframe.c:1048
+#, c-format
+msgid "skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa_register"
+msgstr ""
+
+#. 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.
+#: gen-sframe.c:1086
+msgid ""
+"skipping SFrame FDE; .cfi_def_cfa_offset without CFA base register in effect"
+msgstr ""
+
+#: gen-sframe.c:1147
+#, c-format
+msgid "skipping SFrame FDE; %s register %u in .cfi_val_offset"
+msgstr ""
+
+#: gen-sframe.c:1174
+#, c-format
+msgid "skipping SFrame FDE; %s register %u in .cfi_register"
+msgstr ""
+
+#: gen-sframe.c:1196
+msgid "skipping SFrame FDE; .cfi_remember_state without prior SFrame FRE state"
+msgstr ""
+
+#: gen-sframe.c:1300
+msgid "skipping SFrame FDE; .cfi_window_save"
+msgstr ""
+
+#: gen-sframe.c:1410
+msgid "(unknown)"
+msgstr ""
+
+#: gen-sframe.c:1411
+#, c-format
+msgid "skipping SFrame FDE; CFI insn %s (%#x)"
+msgstr ""
+
+#: gen-sframe.c:1435
+#, c-format
+msgid "skipping SFrame FDE; non-default RA register %u"
+msgstr ""
+
+#: gen-sframe.c:1479
+msgid "skipping SFrame FDE; FP without RA on stack"
+msgstr ""
+
+#: ginsn.c:862
#, c-format
msgid "missing label '%s' in func '%s' may result in imprecise cfg"
msgstr ""
-#: ginsn.c:906
+#: ginsn.c:971
#, c-format
msgid "GINSN: found unreachable code in func '%s'"
msgstr ""
-#: ginsn.c:1130
+#: ginsn.c:1193
msgid "GINSN process for prev func not done"
msgstr ""
-#: ginsn.c:1164
+#: ginsn.c:1227
#, c-format
-msgid "Untraceable control flow for func '%s'; Skipping SCFI"
+msgid "untraceable control flow for func '%s'"
msgstr ""
-#: ginsn.c:1174
+#: ginsn.c:1237
#, c-format
msgid "Bad cfg of ginsn of func '%s'"
msgstr ""
-#: ginsn.c:1236 ginsn.c:1243
+#: ginsn.c:1299 ginsn.c:1306
msgid "ginsn unsupported for target"
msgstr ""
@@ -21997,7 +22218,7 @@ msgstr ""
msgid "can't read from %s: %s"
msgstr ""
-#: input-file.c:252 listing.c:1444
+#: input-file.c:263 listing.c:1444
#, c-format
msgid "can't close %s: %s"
msgstr ""
@@ -22006,7 +22227,7 @@ msgstr ""
msgid "macros nested too deeply"
msgstr ""
-#: input-scrub.c:525 input-scrub.c:528
+#: input-scrub.c:520 input-scrub.c:523
msgid "macro invoked from here"
msgstr ""
@@ -22137,76 +22358,76 @@ msgstr ""
msgid "Reserved word `%s' used as parameter in macro `%s'"
msgstr ""
-#: macro.c:674
+#: macro.c:675
#, c-format
msgid "unexpected end of file in macro `%s' definition"
msgstr ""
-#: macro.c:686
+#: macro.c:687
#, c-format
msgid "missing `)' after formals in macro definition `%s'"
msgstr ""
-#: macro.c:701
+#: macro.c:702
msgid "Missing macro name"
msgstr ""
-#: macro.c:710
+#: macro.c:711
#, c-format
msgid "Bad parameter list for macro `%s'"
msgstr ""
-#: macro.c:718
+#: macro.c:719
#, c-format
msgid "Macro `%s' was already defined"
msgstr ""
-#: macro.c:843 macro.c:845
+#: macro.c:845 macro.c:847
msgid "missing `)'"
msgstr ""
-#: macro.c:925
+#: macro.c:936
#, c-format
msgid "`%s' was already used as parameter (or another local) name"
msgstr ""
-#: macro.c:1097
+#: macro.c:1108
msgid "confusion in formal parameters"
msgstr ""
-#: macro.c:1105
+#: macro.c:1116
#, c-format
msgid "Parameter named `%s' does not exist for macro `%s'"
msgstr ""
-#: macro.c:1116
+#: macro.c:1127
#, c-format
msgid "Value for parameter `%s' of macro `%s' was already specified"
msgstr ""
-#: macro.c:1130
+#: macro.c:1141
msgid "can't mix positional and keyword arguments"
msgstr ""
-#: macro.c:1141
+#: macro.c:1152
msgid "too many positional arguments"
msgstr ""
-#: macro.c:1189
+#: macro.c:1200
#, c-format
msgid "Missing value for required parameter `%s' of macro `%s'"
msgstr ""
-#: macro.c:1303
+#: macro.c:1318
#, c-format
msgid "Attempt to purge non-existing macro `%s'"
msgstr ""
-#: macro.c:1324
+#: macro.c:1339
msgid "unexpected end of file in irp or irpc"
msgstr ""
-#: macro.c:1335
+#: macro.c:1350
msgid "missing model parameter"
msgstr ""
@@ -22273,78 +22494,78 @@ msgstr ""
msgid "can't create %s: %s"
msgstr ""
-#: read.c:574
+#: read.c:575
#, c-format
msgid "error constructing %s pseudo-op table"
msgstr ""
-#: read.c:758
+#: read.c:759
msgid "cannot change section or subsection inside .bundle_lock"
msgstr ""
-#: read.c:774
+#: read.c:775
#, c-format
msgid ""
".bundle_lock sequence at %u bytes, but .bundle_align_mode limit is %u bytes"
msgstr ""
-#: read.c:783
+#: read.c:784
#, c-format
msgid ""
"single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes"
msgstr ""
-#: read.c:824 read.c:2842 read.c:3417
+#: read.c:825 read.c:2844 read.c:3473
msgid "ignoring fill value in absolute section"
msgstr ""
-#: read.c:826 read.c:2857 read.c:3456
+#: read.c:827 read.c:2859 read.c:3512
#, c-format
msgid "ignoring fill value in section `%s'"
msgstr ""
-#: read.c:1188
+#: read.c:1189
#, c-format
msgid "unknown pseudo-op: `%s'"
msgstr ""
-#: read.c:1241
+#: read.c:1242
msgid "unable to continue with assembly."
msgstr ""
-#: read.c:1274
+#: read.c:1276
#, c-format
msgid "local label too large near %s"
msgstr ""
-#: read.c:1297
+#: read.c:1299
#, c-format
msgid "label \"%ld$\" redefined"
msgstr ""
-#: read.c:1381
+#: read.c:1383
msgid ".bundle_lock with no matching .bundle_unlock"
msgstr ""
-#: read.c:1481
+#: read.c:1483
msgid ".abort detected. Abandoning ship."
msgstr ""
-#: read.c:1543
+#: read.c:1545
#, c-format
msgid "alignment too large: %u assumed"
msgstr ""
-#: read.c:1575
+#: read.c:1577
msgid "expected fill pattern missing"
msgstr ""
-#: read.c:1600
+#: read.c:1602
#, c-format
msgid "fill pattern too long, truncating to %u"
msgstr ""
-#: read.c:1701
+#: read.c:1703
msgid "symbol name not recognised in the current locale"
msgstr ""
@@ -22357,361 +22578,421 @@ msgstr ""
#. We do not want to barf on this, especially since such files are used
#. in the GCC and GDB testsuites. So we check for negative line numbers
#. rather than non-positive line numbers.
-#: read.c:2050
+#: read.c:2052
#, c-format
msgid "line numbers must be positive; line number %d rejected"
msgstr ""
-#: read.c:2088
+#: read.c:2090
#, c-format
msgid "incompatible flag %i in line directive"
msgstr ""
-#: read.c:2100
+#: read.c:2102
#, c-format
msgid "unsupported flag %i in line directive"
msgstr ""
-#: read.c:2143
+#: read.c:2145
msgid "start address not supported"
msgstr ""
-#: read.c:2152
+#: read.c:2154
msgid ".err encountered"
msgstr ""
-#: read.c:2168
+#: read.c:2170
msgid ".error directive invoked in source file"
msgstr ""
-#: read.c:2169
+#: read.c:2171
msgid ".warning directive invoked in source file"
msgstr ""
-#: read.c:2175
+#: read.c:2177
#, c-format
msgid "%s argument must be a string"
msgstr ""
-#: read.c:2207 read.c:2209
+#: read.c:2209 read.c:2211
#, c-format
msgid ".fail %ld encountered"
msgstr ""
-#: read.c:2249
+#: read.c:2251
#, c-format
msgid ".fill size clamped to %d"
msgstr ""
-#: read.c:2254
+#: read.c:2256
msgid "size negative; .fill ignored"
msgstr ""
-#: read.c:2260
+#: read.c:2262
msgid "repeat < 0; .fill ignored"
msgstr ""
-#: read.c:2267
+#: read.c:2269
msgid "non-constant fill count for absolute section"
msgstr ""
-#: read.c:2272
+#: read.c:2274
msgid "attempt to fill absolute section with non-zero value"
msgstr ""
-#: read.c:2279
+#: read.c:2281
#, c-format
msgid "attempt to fill section `%s' with non-zero value"
msgstr ""
-#: read.c:2444
+#: read.c:2446
#, c-format
msgid "unrecognized .linkonce type `%s'"
msgstr ""
-#: read.c:2456
+#: read.c:2458
msgid ".linkonce is not supported for this object file format"
msgstr ""
-#: read.c:2551
+#: read.c:2553
msgid "expected alignment after size"
msgstr ""
-#: read.c:2764
+#: read.c:2766
#, c-format
msgid "attempt to redefine pseudo-op `%s' ignored"
msgstr ""
-#: read.c:2785
+#: read.c:2787
msgid "ignoring macro exit outside a macro definition."
msgstr ""
-#: read.c:2837
+#: read.c:2839
#, c-format
msgid "invalid segment \"%s\""
msgstr ""
-#: read.c:2845
+#: read.c:2847
msgid "only constant offsets supported in absolute section"
msgstr ""
-#: read.c:2888
+#: read.c:2890
msgid "MRI style ORG pseudo-op not supported"
msgstr ""
-#: read.c:3059
+#: read.c:3061
#, c-format
msgid ".end%c encountered without preceding %s"
msgstr ""
-#: read.c:3091
+#: read.c:3095
#, c-format
msgid "negative count for %s - ignored"
msgstr ""
-#: read.c:3098
+#: read.c:3102
#, c-format
msgid "%s without %s"
msgstr ""
-#: read.c:3360
+#: read.c:3136
+msgid "`\\' at end of line/statement; ignored"
+msgstr ""
+
+#: read.c:3416
msgid "unsupported variable size or fill value"
msgstr ""
-#: read.c:3368
+#: read.c:3424
#, c-format
msgid "size value for space directive too large: %lx"
msgstr ""
-#: read.c:3394
+#: read.c:3450
msgid ".space repeat count is negative, ignored"
msgstr ""
-#: read.c:3400
+#: read.c:3456
msgid ".space repeat count is zero, ignored"
msgstr ""
-#: read.c:3408
+#: read.c:3464
msgid ".space repeat count overflow, ignored"
msgstr ""
-#: read.c:3440
+#: read.c:3496
msgid "space allocation too complex in absolute section"
msgstr ""
-#: read.c:3446
+#: read.c:3502
msgid "space allocation too complex in common section"
msgstr ""
-#: read.c:3556
+#: read.c:3612
msgid "unsupported variable nop control in .nops directive"
msgstr ""
-#: read.c:3562
+#: read.c:3618
msgid "negative nop control byte, ignored"
msgstr ""
-#: read.c:3631
+#: read.c:3687
#, c-format
msgid "unknown floating type '%c'"
msgstr ""
-#: read.c:3857
+#: read.c:3913
#, c-format
msgid "%s: would close weakref loop: %s"
msgstr ""
-#: read.c:3914
+#: read.c:3970
#, c-format
msgid "junk at end of line, first unrecognized character valued 0x%x"
msgstr ""
-#: read.c:4042 write.c:2414
+#: read.c:4098 write.c:2425
#, c-format
msgid "`%s' can't be equated to common symbol `%s'"
msgstr ""
-#: read.c:4170
+#: read.c:4226
msgid "unexpected `\"' in expression"
msgstr ""
-#: read.c:4183
+#: read.c:4239
msgid "rva without symbol"
msgstr ""
-#: read.c:4258
+#: read.c:4314
msgid "missing or bad offset expression"
msgstr ""
-#: read.c:4282
+#: read.c:4338
msgid "missing reloc type"
msgstr ""
-#: read.c:4306
+#: read.c:4362
msgid "unrecognized reloc type"
msgstr ""
-#: read.c:4322
+#: read.c:4378
msgid "bad reloc expression"
msgstr ""
-#: read.c:4476 read.c:5246
+#: read.c:4532 read.c:5302
msgid "zero assumed for missing expression"
msgstr ""
-#: read.c:4496 read.c:5275
+#: read.c:4552 read.c:5331
msgid "attempt to store value in absolute section"
msgstr ""
-#: read.c:4503 read.c:5281
+#: read.c:4559 read.c:5337
#, c-format
msgid "attempt to store non-zero value in section `%s'"
msgstr ""
#. Leading bits contain both 0s & 1s.
-#: read.c:4580
+#: read.c:4636
#, c-format
msgid "value 0x%<PRIx64> truncated to 0x%<PRIx64>"
msgstr ""
-#: read.c:4624
+#: read.c:4680
#, c-format
msgid "bignum truncated to %d byte"
msgid_plural "bignum truncated to %d bytes"
msgstr[0] ""
msgstr[1] ""
-#: read.c:4833 read.c:4984
+#: read.c:4889 read.c:5040
msgid "unresolvable or nonpositive repeat count; using 1"
msgstr ""
-#: read.c:4876
+#: read.c:4932
msgid "floating point constant too large"
msgstr ""
-#: read.c:4941
+#: read.c:4997
msgid "attempt to store float in absolute section"
msgstr ""
-#: read.c:4948
+#: read.c:5004
#, c-format
msgid "attempt to store float in section `%s'"
msgstr ""
-#: read.c:5364
+#: read.c:5599
+msgid "base64 strings must be placed into a section"
+msgstr ""
+
+#: read.c:5606
+msgid "a string must follow the .base64 pseudo-op"
+msgstr ""
+
+#: read.c:5626
+msgid "expected double quote enclosed string as argument to .base64 pseudo-op"
+msgstr ""
+
+#: read.c:5643
+msgid "end of line encountered inside .base64 string"
+msgstr ""
+
+#: read.c:5654
+msgid ".base64 string terminated early"
+msgstr ""
+
+#: read.c:5659
+msgid ".base64 string terminated unexpectedly"
+msgstr ""
+
+#: read.c:5666
+msgid "equals character only allowed at end of .base64 string"
+msgstr ""
+
+#: read.c:5675
+msgid "the equals character cannot start a block of four base64 encoded bytes"
+msgstr ""
+
+#: read.c:5681
+msgid ""
+"the equals character cannot be the second character in a block of four "
+"base64 encoded bytes"
+msgstr ""
+
+#: read.c:5691
+#, c-format
+msgid "invalid character '%c' found inside .base64 string"
+msgstr ""
+
+#: read.c:5693
+#, c-format
+msgid "invalid character %#x found inside .base64 string"
+msgstr ""
+
+#: read.c:5719
+msgid "no base64 characters expected after '=' padding characters"
+msgstr ""
+
+#: read.c:5729
+msgid ".base64 string must have a terminating double quote character"
+msgstr ""
+
+#: read.c:5762
#, c-format
msgid "attempt to store non-empty string in section `%s'"
msgstr ""
-#: read.c:5426
+#: read.c:5824
msgid "strings must be placed into a section"
msgstr ""
-#: read.c:5493
+#: read.c:5891
msgid "expected <nn>"
msgstr ""
#. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:5534 read.c:5621
+#: read.c:5932 read.c:6019
msgid "unterminated string; newline inserted"
msgstr ""
-#: read.c:5635
+#: read.c:6033
msgid "bad escaped character in string"
msgstr ""
-#: read.c:5659
+#: read.c:6057
msgid "expected address expression"
msgstr ""
-#: read.c:5678
+#: read.c:6076
#, c-format
msgid "symbol \"%s\" undefined; zero assumed"
msgstr ""
-#: read.c:5681
+#: read.c:6079
msgid "some symbol undefined; zero assumed"
msgstr ""
-#: read.c:5715
+#: read.c:6113
msgid "this string may not contain '\\0'"
msgstr ""
-#: read.c:5752
+#: read.c:6150
msgid "missing string"
msgstr ""
-#: read.c:5867
+#: read.c:6265
#, c-format
msgid ".incbin count zero, ignoring `%s'"
msgstr ""
-#: read.c:5879
+#: read.c:6277
#, c-format
msgid "file not found: %s"
msgstr ""
-#: read.c:5889
+#: read.c:6287
#, c-format
msgid "unable to include `%s'"
msgstr ""
-#: read.c:5898
+#: read.c:6296
#, c-format
msgid "seek to end of .incbin file failed `%s'"
msgstr ""
-#: read.c:5909
+#: read.c:6307
#, c-format
msgid "skip (%ld) or count (%ld) invalid for file size (%ld)"
msgstr ""
-#: read.c:5916
+#: read.c:6314
#, c-format
msgid "could not skip to %ld in file `%s'"
msgstr ""
-#: read.c:5925
+#: read.c:6323
#, c-format
msgid "truncated file `%s', %ld of %ld bytes read"
msgstr ""
-#: read.c:6062
+#: read.c:6460
msgid "missing .func"
msgstr ""
-#: read.c:6081
+#: read.c:6479
msgid ".endfunc missing for previous .func"
msgstr ""
-#: read.c:6140
+#: read.c:6538
#, c-format
msgid ".bundle_align_mode alignment too large (maximum %u)"
msgstr ""
-#: read.c:6145
+#: read.c:6543
msgid "cannot change .bundle_align_mode inside .bundle_lock"
msgstr ""
-#: read.c:6159
+#: read.c:6557
msgid ".bundle_lock is meaningless without .bundle_align_mode"
msgstr ""
-#: read.c:6180
+#: read.c:6578
msgid ".bundle_unlock without preceding .bundle_lock"
msgstr ""
-#: read.c:6193
+#: read.c:6591
#, c-format
msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes"
msgstr ""
-#: read.c:6292
+#: read.c:6690
#, c-format
msgid "missing closing `%c'"
msgstr ""
-#: read.c:6294
+#: read.c:6692
msgid "stray `\\'"
msgstr ""
@@ -22720,43 +23001,43 @@ msgstr ""
msgid "invalid argument '%s' to -fdebug-prefix-map"
msgstr ""
-#: scfi.c:523
+#: scfi.c:529
msgid "SCFI: usage of REG_FP as scratch not supported"
msgstr ""
-#: scfi.c:629
+#: scfi.c:635
msgid "SCFI: unsupported stack manipulation pattern"
msgstr ""
-#: scfi.c:767 scfi.c:862
+#: scfi.c:773 scfi.c:868
msgid "SCFI: asymetrical register restore"
msgstr ""
-#: scfi.c:935
+#: scfi.c:941
msgid "SCFI: Bad CFI propagation perhaps"
msgstr ""
-#: scfi.c:1080
+#: scfi.c:1088
#, c-format
msgid "SCFI: forward pass failed for func '%s'"
msgstr ""
-#: scfi.c:1087
+#: scfi.c:1095
#, c-format
msgid "SCFI: backward pass failed for func '%s'"
msgstr ""
-#: scfi.c:1153
+#: scfi.c:1162
msgid "SCFI: Invalid DWARF CFI opcode data"
msgstr ""
#. No other GINSN_TYPE_* expected.
-#: scfi.c:1205
+#: scfi.c:1214
#, c-format
msgid "SCFI: bad ginsn for func '%s'"
msgstr ""
-#: scfi.c:1219 scfi.c:1228
+#: scfi.c:1228 scfi.c:1237
msgid "SCFI: unsupported for target"
msgstr ""
@@ -22845,14 +23126,14 @@ msgstr ""
msgid "Invalid operation on symbol"
msgstr ""
-#: symbols.c:1807 write.c:2463
+#: symbols.c:1807 write.c:2474
#, c-format
msgid "can't resolve value for symbol `%s'"
msgstr ""
#: symbols.c:2215
#, c-format
-msgid "\"%d\" (instance number %d of a %s label)"
+msgid "\"%u\" (instance number %u of a %s label)"
msgstr ""
#: symbols.c:2246
@@ -22906,118 +23187,118 @@ msgstr ""
msgid "invalid reloc expression"
msgstr ""
-#: write.c:911
+#: write.c:922
#, c-format
msgid "can't resolve %s - %s"
msgstr ""
-#: write.c:1124
+#: write.c:1135
#, c-format
msgid "value of %s too large for field of %d byte at %s"
msgid_plural "value of %s too large for field of %d bytes at %s"
msgstr[0] ""
msgstr[1] ""
-#: write.c:1140
+#: write.c:1151
#, c-format
msgid "signed .word overflow; switch may be too large; %ld at 0x%lx"
msgstr ""
-#: write.c:1181
+#: write.c:1192
msgid "redefined symbol cannot be used on reloc"
msgstr ""
-#: write.c:1194
+#: write.c:1205
msgid "relocation out of range"
msgstr ""
-#: write.c:1197
+#: write.c:1208
#, c-format
msgid "%s:%u: bad return from bfd_install_relocation: %x"
msgstr ""
-#: write.c:1225
+#: write.c:1236
msgid "reloc not within (fixed part of) section"
msgstr ""
-#: write.c:1297
+#: write.c:1308
msgid "internal error: fixup not contained within frag"
msgstr ""
-#: write.c:1443 write.c:1567
+#: write.c:1454 write.c:1578
msgid "can't extend frag"
msgstr ""
-#: write.c:1616
+#: write.c:1627
msgid "unimplemented .nops directive"
msgstr ""
-#: write.c:1650
+#: write.c:1661
#, c-format
msgid "can't write %ld byte to section %s of %s: '%s'"
msgid_plural "can't write %ld bytes to section %s of %s: '%s'"
msgstr[0] ""
msgstr[1] ""
-#: write.c:1676 write.c:1710 write.c:1747
+#: write.c:1687 write.c:1721 write.c:1758
#, c-format
msgid "can't fill %ld byte in section %s of %s: '%s'"
msgid_plural "can't fill %ld bytes in section %s of %s: '%s'"
msgstr[0] ""
msgstr[1] ""
-#: write.c:1964
+#: write.c:1975
msgid "unable to create reloc for build note"
msgstr ""
-#: write.c:1968
+#: write.c:1979
msgid "<gnu build note>"
msgstr ""
-#: write.c:2379
+#: write.c:2390
#, c-format
msgid "%s: global symbols not supported in common sections"
msgstr ""
-#: write.c:2393
+#: write.c:2404
#, c-format
msgid "local label `%s' is not defined"
msgstr ""
-#: write.c:2421
+#: write.c:2432
#, c-format
msgid "can't make global register symbol `%s'"
msgstr ""
-#: write.c:2731
+#: write.c:2742
#, c-format
msgid "alignment padding (%lu byte) not a multiple of %ld"
msgid_plural "alignment padding (%lu bytes) not a multiple of %ld"
msgstr[0] ""
msgstr[1] ""
-#: write.c:2905
+#: write.c:2916
#, c-format
msgid ".word %s-%s+%s didn't fit"
msgstr ""
-#: write.c:2999
+#: write.c:3010
msgid "padding added"
msgstr ""
-#: write.c:3050
+#: write.c:3061
msgid "attempt to move .org backwards"
msgstr ""
-#: write.c:3075
+#: write.c:3086
msgid ".space, .nops or .fill specifies non-absolute value"
msgstr ""
-#: write.c:3090
+#: write.c:3101
msgid ".space, .nops or .fill with negative value, ignored"
msgstr ""
-#: write.c:3166
+#: write.c:3177
#, c-format
msgid ""
"Infinite loop encountered whilst attempting to compute the addresses of "
diff --git a/gas/read.c b/gas/read.c
index 5b411e9..9a26a9a 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -357,6 +357,7 @@ static const pseudo_typeS potable[] = {
{"balign", s_align_bytes, 0},
{"balignw", s_align_bytes, -2},
{"balignl", s_align_bytes, -4},
+ {"base64", s_base64, 0},
/* block */
#ifdef HANDLE_BUNDLE
{"bundle_align_mode", s_bundle_align_mode, 0},
@@ -5412,6 +5413,348 @@ s_leb128 (int sign)
demand_empty_rest_of_line ();
}
+/* Code for handling base64 encoded strings.
+ Based upon code in sharutils' lib/base64.c source file, written by
+ Simon Josefsson. Which was partially adapted from GNU MailUtils
+ (mailbox/filter_trans.c, as of 2004-11-28) and improved by review
+ from Paul Eggert, Bruno Haible, and Stepan Kasal. */
+
+#define B64(_) \
+ ( (_) == 'A' ? 0 \
+ : (_) == 'B' ? 1 \
+ : (_) == 'C' ? 2 \
+ : (_) == 'D' ? 3 \
+ : (_) == 'E' ? 4 \
+ : (_) == 'F' ? 5 \
+ : (_) == 'G' ? 6 \
+ : (_) == 'H' ? 7 \
+ : (_) == 'I' ? 8 \
+ : (_) == 'J' ? 9 \
+ : (_) == 'K' ? 10 \
+ : (_) == 'L' ? 11 \
+ : (_) == 'M' ? 12 \
+ : (_) == 'N' ? 13 \
+ : (_) == 'O' ? 14 \
+ : (_) == 'P' ? 15 \
+ : (_) == 'Q' ? 16 \
+ : (_) == 'R' ? 17 \
+ : (_) == 'S' ? 18 \
+ : (_) == 'T' ? 19 \
+ : (_) == 'U' ? 20 \
+ : (_) == 'V' ? 21 \
+ : (_) == 'W' ? 22 \
+ : (_) == 'X' ? 23 \
+ : (_) == 'Y' ? 24 \
+ : (_) == 'Z' ? 25 \
+ : (_) == 'a' ? 26 \
+ : (_) == 'b' ? 27 \
+ : (_) == 'c' ? 28 \
+ : (_) == 'd' ? 29 \
+ : (_) == 'e' ? 30 \
+ : (_) == 'f' ? 31 \
+ : (_) == 'g' ? 32 \
+ : (_) == 'h' ? 33 \
+ : (_) == 'i' ? 34 \
+ : (_) == 'j' ? 35 \
+ : (_) == 'k' ? 36 \
+ : (_) == 'l' ? 37 \
+ : (_) == 'm' ? 38 \
+ : (_) == 'n' ? 39 \
+ : (_) == 'o' ? 40 \
+ : (_) == 'p' ? 41 \
+ : (_) == 'q' ? 42 \
+ : (_) == 'r' ? 43 \
+ : (_) == 's' ? 44 \
+ : (_) == 't' ? 45 \
+ : (_) == 'u' ? 46 \
+ : (_) == 'v' ? 47 \
+ : (_) == 'w' ? 48 \
+ : (_) == 'x' ? 49 \
+ : (_) == 'y' ? 50 \
+ : (_) == 'z' ? 51 \
+ : (_) == '0' ? 52 \
+ : (_) == '1' ? 53 \
+ : (_) == '2' ? 54 \
+ : (_) == '3' ? 55 \
+ : (_) == '4' ? 56 \
+ : (_) == '5' ? 57 \
+ : (_) == '6' ? 58 \
+ : (_) == '7' ? 59 \
+ : (_) == '8' ? 60 \
+ : (_) == '9' ? 61 \
+ : (_) == '+' ? 62 \
+ : (_) == '/' ? 63 \
+ : -1)
+
+static const signed char b64[0x100] =
+{
+ B64 (0), B64 (1), B64 (2), B64 (3),
+ B64 (4), B64 (5), B64 (6), B64 (7),
+ B64 (8), B64 (9), B64 (10), B64 (11),
+ B64 (12), B64 (13), B64 (14), B64 (15),
+ B64 (16), B64 (17), B64 (18), B64 (19),
+ B64 (20), B64 (21), B64 (22), B64 (23),
+ B64 (24), B64 (25), B64 (26), B64 (27),
+ B64 (28), B64 (29), B64 (30), B64 (31),
+ B64 (32), B64 (33), B64 (34), B64 (35),
+ B64 (36), B64 (37), B64 (38), B64 (39),
+ B64 (40), B64 (41), B64 (42), B64 (43),
+ B64 (44), B64 (45), B64 (46), B64 (47),
+ B64 (48), B64 (49), B64 (50), B64 (51),
+ B64 (52), B64 (53), B64 (54), B64 (55),
+ B64 (56), B64 (57), B64 (58), B64 (59),
+ B64 (60), B64 (61), B64 (62), B64 (63),
+ B64 (64), B64 (65), B64 (66), B64 (67),
+ B64 (68), B64 (69), B64 (70), B64 (71),
+ B64 (72), B64 (73), B64 (74), B64 (75),
+ B64 (76), B64 (77), B64 (78), B64 (79),
+ B64 (80), B64 (81), B64 (82), B64 (83),
+ B64 (84), B64 (85), B64 (86), B64 (87),
+ B64 (88), B64 (89), B64 (90), B64 (91),
+ B64 (92), B64 (93), B64 (94), B64 (95),
+ B64 (96), B64 (97), B64 (98), B64 (99),
+ B64 (100), B64 (101), B64 (102), B64 (103),
+ B64 (104), B64 (105), B64 (106), B64 (107),
+ B64 (108), B64 (109), B64 (110), B64 (111),
+ B64 (112), B64 (113), B64 (114), B64 (115),
+ B64 (116), B64 (117), B64 (118), B64 (119),
+ B64 (120), B64 (121), B64 (122), B64 (123),
+ B64 (124), B64 (125), B64 (126), B64 (127),
+ B64 (128), B64 (129), B64 (130), B64 (131),
+ B64 (132), B64 (133), B64 (134), B64 (135),
+ B64 (136), B64 (137), B64 (138), B64 (139),
+ B64 (140), B64 (141), B64 (142), B64 (143),
+ B64 (144), B64 (145), B64 (146), B64 (147),
+ B64 (148), B64 (149), B64 (150), B64 (151),
+ B64 (152), B64 (153), B64 (154), B64 (155),
+ B64 (156), B64 (157), B64 (158), B64 (159),
+ B64 (160), B64 (161), B64 (162), B64 (163),
+ B64 (164), B64 (165), B64 (166), B64 (167),
+ B64 (168), B64 (169), B64 (170), B64 (171),
+ B64 (172), B64 (173), B64 (174), B64 (175),
+ B64 (176), B64 (177), B64 (178), B64 (179),
+ B64 (180), B64 (181), B64 (182), B64 (183),
+ B64 (184), B64 (185), B64 (186), B64 (187),
+ B64 (188), B64 (189), B64 (190), B64 (191),
+ B64 (192), B64 (193), B64 (194), B64 (195),
+ B64 (196), B64 (197), B64 (198), B64 (199),
+ B64 (200), B64 (201), B64 (202), B64 (203),
+ B64 (204), B64 (205), B64 (206), B64 (207),
+ B64 (208), B64 (209), B64 (210), B64 (211),
+ B64 (212), B64 (213), B64 (214), B64 (215),
+ B64 (216), B64 (217), B64 (218), B64 (219),
+ B64 (220), B64 (221), B64 (222), B64 (223),
+ B64 (224), B64 (225), B64 (226), B64 (227),
+ B64 (228), B64 (229), B64 (230), B64 (231),
+ B64 (232), B64 (233), B64 (234), B64 (235),
+ B64 (236), B64 (237), B64 (238), B64 (239),
+ B64 (240), B64 (241), B64 (242), B64 (243),
+ B64 (244), B64 (245), B64 (246), B64 (247),
+ B64 (248), B64 (249), B64 (250), B64 (251),
+ B64 (252), B64 (253), B64 (254), B64 (255)
+};
+
+static bool
+is_base64_char (unsigned int c)
+{
+ return (c < 0x100) && (b64[c] != -1);
+}
+
+static void
+decode_base64_and_append (unsigned int b[4], int len)
+{
+ gas_assert (len > 1);
+
+ FRAG_APPEND_1_CHAR ((b64[b[0]] << 2) | (b64[b[1]] >> 4));
+
+ if (len == 2)
+ return; /* FIXME: Check for unused bits in b[1] ? */
+
+ FRAG_APPEND_1_CHAR (((b64[b[1]] << 4) & 0xf0) | (b64[b[2]] >> 2));
+
+ if (len == 3)
+ return; /* FIXME: Check for unused bits in b[2] ? */
+
+ FRAG_APPEND_1_CHAR (((b64[b[2]] << 6) & 0xc0) | b64[b[3]]);
+}
+
+/* Accept one or more comma separated, base64 encoded strings. Decode them
+ and store them at the current point in the current section. The strings
+ must be enclosed in double quotes. Line breaks, quoted characters and
+ escaped characters are not allowed. Only the characters "A-Za-z0-9+/" are
+ accepted inside the string. The string must be a multiple of four
+ characters in length. If the encoded string does not fit this requirement
+ it may use one or more '=' characters at the end as padding. */
+
+void
+s_base64 (int dummy ATTRIBUTE_UNUSED)
+{
+ unsigned int c;
+ unsigned long num_octets = 0;
+
+ /* If we have been switched into the abs_section then we
+ will not have an obstack onto which we can hang strings. */
+ if (now_seg == absolute_section)
+ {
+ as_bad (_("base64 strings must be placed into a section"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ if (is_it_end_of_statement ())
+ {
+ as_bad (_("a string must follow the .base64 pseudo-op"));
+ return;
+ }
+
+#ifdef md_flush_pending_output
+ md_flush_pending_output ();
+#endif
+
+#ifdef md_cons_align
+ md_cons_align (1);
+#endif
+
+ do
+ {
+ SKIP_ALL_WHITESPACE ();
+
+ c = * input_line_pointer ++;
+
+ if (c != '"')
+ {
+ as_bad (_("expected double quote enclosed string as argument to .base64 pseudo-op"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ /* Read a block of four base64 encoded characters. */
+ int i;
+ unsigned int b[4];
+ bool seen_equals = false;
+
+ loop:
+ for (i = 0; i < 4; i++)
+ {
+ c = * input_line_pointer ++;
+
+ if (c >= 256 || is_end_of_line [c])
+ {
+ as_bad (_("end of line encountered inside .base64 string"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ if (c == '"')
+ {
+ /* We allow this. But only if there were enough
+ characters to form a valid base64 encoding. */
+ if (i > 1)
+ {
+ as_warn (_(".base64 string terminated early"));
+ -- input_line_pointer;
+ break;
+ }
+
+ as_bad (_(".base64 string terminated unexpectedly"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ if (seen_equals && c != '=')
+ {
+ as_bad (_("equals character only allowed at end of .base64 string"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ if (c == '=')
+ {
+ if (i == 0)
+ {
+ as_bad (_("the equals character cannot start a block of four base64 encoded bytes"));
+ ignore_rest_of_line ();
+ return;
+ }
+ else if (i == 1)
+ {
+ as_bad (_("the equals character cannot be the second character in a block of four base64 encoded bytes"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ seen_equals = true;
+ }
+ else if (! is_base64_char (c))
+ {
+ if (ISPRINT (c))
+ as_bad (_("invalid character '%c' found inside .base64 string"), c);
+ else
+ as_bad (_("invalid character %#x found inside .base64 string"), c);
+ ignore_rest_of_line ();
+ return;
+ }
+
+ b[i] = c;
+ }
+
+ if (seen_equals && i == 4)
+ {
+ -- i;
+ if (b[2] == '=')
+ -- i;
+ }
+
+ /* We have a block of up to four valid base64 encoded bytes. */
+ decode_base64_and_append (b, i);
+ num_octets += (i - 1);
+
+ /* Check the next character. */
+ c = * input_line_pointer ++;
+
+ if (is_base64_char (c))
+ {
+ if (seen_equals)
+ {
+ as_bad (_("no base64 characters expected after '=' padding characters"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ -- input_line_pointer;
+ goto loop;
+ }
+ else if (c != '"')
+ {
+ as_bad (_(".base64 string must have a terminating double quote character"));
+ ignore_rest_of_line ();
+ return;
+ }
+
+ SKIP_ALL_WHITESPACE ();
+
+ c = * input_line_pointer ++;
+ }
+ while (c == ',');
+
+ /* Make sure that we have not skipped the EOL marker. */
+ -- input_line_pointer;
+
+ while (num_octets % OCTETS_PER_BYTE)
+ {
+ /* We have finished emiting the octets for this .base64 pseudo-op, but
+ we have not filled up enough bytes for the target architecture. So
+ we emit padding octets here. This is done after all of the arguments
+ to the pseudo-op have been processed, rather than at the end of each
+ argument, as it is likely that the user wants the arguments to be
+ contiguous. */
+ FRAG_APPEND_1_CHAR (0);
+ ++ num_octets;
+ }
+
+ demand_empty_rest_of_line ();
+}
+
static void
stringer_append_char (int c, int bitsize)
{
diff --git a/gas/read.h b/gas/read.h
index e9dee27..2441d56 100644
--- a/gas/read.h
+++ b/gas/read.h
@@ -155,70 +155,70 @@ 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 void generate_lineno_debug (void);
-
-extern void s_abort (int) ATTRIBUTE_NORETURN;
-extern void s_align_bytes (int arg);
-extern void s_align_ptwo (int);
extern void do_align (unsigned int align, char *fill, unsigned int length,
unsigned int max);
extern void bss_alloc (symbolS *, addressT, unsigned);
extern offsetT parse_align (int);
extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT));
extern symbolS *s_lcomm_internal (int, symbolS *, addressT);
+extern void temp_ilp (char *);
+extern void restore_ilp (void);
extern void s_file_string (char *);
-extern void s_file (int);
-extern void s_linefile (int);
+
+extern void s_abort (int) ATTRIBUTE_NORETURN;
+extern void s_align_bytes (int);
+extern void s_align_ptwo (int);
+extern void s_base64 (int);
extern void s_bundle_align_mode (int);
extern void s_bundle_lock (int);
extern void s_bundle_unlock (int);
extern void s_comm (int);
extern void s_data (int);
extern void s_desc (int);
-extern void s_else (int arg);
-extern void s_elseif (int arg);
-extern void s_end (int arg);
-extern void s_endif (int arg);
+extern void s_else (int);
+extern void s_elseif (int);
+extern void s_end (int);
+extern void s_endif (int);
extern void s_err (int);
extern void s_errwarn (int);
extern void s_fail (int);
+extern void s_file (int);
extern void s_fill (int);
-extern void s_float_space (int mult);
+extern void s_float_space (int);
extern void s_func (int);
-extern void s_globl (int arg);
-extern void s_if (int arg);
-extern void s_ifb (int arg);
-extern void s_ifc (int arg);
-extern void s_ifdef (int arg);
-extern void s_ifeqs (int arg);
-extern void s_ignore (int arg);
-extern void s_include (int arg);
-extern void s_irp (int arg);
-extern void s_lcomm (int needs_align);
-extern void s_lcomm_bytes (int needs_align);
-extern void s_leb128 (int sign);
+extern void s_globl (int);
+extern void s_if (int);
+extern void s_ifb (int);
+extern void s_ifc (int);
+extern void s_ifdef (int);
+extern void s_ifeqs (int);
+extern void s_ignore (int);
+extern void s_incbin (int);
+extern void s_include (int);
+extern void s_irp (int);
+extern void s_lcomm (int);
+extern void s_lcomm_bytes (int);
+extern void s_leb128 (int);
+extern void s_linefile (int);
extern void s_linkonce (int);
extern void s_lsym (int);
extern void s_macro (int);
extern void s_mexit (int);
extern void s_mri (int);
extern void s_mri_common (int);
+extern void s_nop (int);
+extern void s_nops (int);
extern void s_org (int);
extern void s_print (int);
extern void s_purgem (int);
extern void s_rept (int);
+extern void s_rva (int);
extern void s_set (int);
-extern void s_space (int mult);
-extern void s_nop (int);
-extern void s_nops (int);
-extern void s_stab (int what);
+extern void s_space (int);
+extern void s_stab (int);
extern void s_struct (int);
extern void s_text (int);
-extern void stringer (int append_zero);
-extern void s_xstab (int what);
-extern void s_rva (int);
-extern void s_incbin (int);
extern void s_weakref (int);
-extern void temp_ilp (char *);
-extern void restore_ilp (void);
+extern void s_xstab (int);
+extern void stringer (int);
diff --git a/gas/sb.c b/gas/sb.c
index f451da0..e96355d 100644
--- a/gas/sb.c
+++ b/gas/sb.c
@@ -124,7 +124,7 @@ sb_scrub_and_add_sb (sb *ptr, sb *s)
break;
sb_check (ptr, copy);
ptr->len += do_scrub_chars (scrub_from_sb, ptr->ptr + ptr->len,
- ptr->max - ptr->len);
+ ptr->max - ptr->len, false);
}
sb_to_scrub = 0;
diff --git a/gas/scfi.c b/gas/scfi.c
index 744822d..5898a57 100644
--- a/gas/scfi.c
+++ b/gas/scfi.c
@@ -223,11 +223,12 @@ scfi_state_restore_reg (scfi_stateS *state, unsigned int reg)
gas_assert (state->regs[reg].state == CFI_ON_STACK);
gas_assert (state->regs[reg].base == REG_CFA);
- state->regs[reg].base = reg;
+ /* PS: the register may still be on stack much after the restore. Reset the
+ SCFI state to CFI_UNDEFINED, however, to indicate that the most updated
+ source of value is register itself from here onwards. */
+ state->regs[reg].base = 0;
state->regs[reg].offset = 0;
- /* PS: the register may still be on stack much after the restore, but the
- SCFI state keeps the state as 'in register'. */
- state->regs[reg].state = CFI_IN_REG;
+ state->regs[reg].state = CFI_UNDEFINED;
}
/* Identify if the given GAS instruction GINSN saves a register
diff --git a/gas/symbols.c b/gas/symbols.c
index b57dbfc..fa3aaa37 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -2185,11 +2185,11 @@ decode_local_label_name (char *s)
{
char *p;
char *symbol_decode;
- int label_number;
- int instance_number;
+ unsigned int label_number;
+ unsigned int instance_number;
const char *type;
const char *message_format;
- int lindex = 0;
+ unsigned int lindex = 0;
#ifdef LOCAL_LABEL_PREFIX
if (s[lindex] == LOCAL_LABEL_PREFIX)
@@ -2212,7 +2212,7 @@ decode_local_label_name (char *s)
for (instance_number = 0, p++; ISDIGIT (*p); ++p)
instance_number = (10 * instance_number) + *p - '0';
- message_format = _("\"%d\" (instance number %d of a %s label)");
+ message_format = _("\"%u\" (instance number %u of a %s label)");
symbol_decode = notes_alloc (strlen (message_format) + 30);
sprintf (symbol_decode, message_format, label_number, instance_number, type);
diff --git a/gas/testsuite/gas/aarch64/bfloat16-1.d b/gas/testsuite/gas/aarch64/bfloat16-1.d
index 51f7e6c..68a47f5 100644
--- a/gas/testsuite/gas/aarch64/bfloat16-1.d
+++ b/gas/testsuite/gas/aarch64/bfloat16-1.d
@@ -1,6 +1,7 @@
#name: Test of SVE2.1 and SME2.1 non-widening BFloat16 instructions.
#as: -march=armv9.4-a+b16b16
#objdump: -dr
+#xfail: *-*-*
[^:]+: file format .*
diff --git a/gas/testsuite/gas/aarch64/bfloat16-2-invalid.d b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.d
index 1cd2745..1e1b701 100644
--- a/gas/testsuite/gas/aarch64/bfloat16-2-invalid.d
+++ b/gas/testsuite/gas/aarch64/bfloat16-2-invalid.d
@@ -2,3 +2,4 @@
#as: -march=armv9.4-a+b16b16
#source: bfloat16-2-invalid.s
#error_output: bfloat16-2-invalid.l
+#xfail: *-*-*
diff --git a/gas/testsuite/gas/aarch64/sme-4-illegal.l b/gas/testsuite/gas/aarch64/sme-4-illegal.l
index a9e9852..db52529 100644
--- a/gas/testsuite/gas/aarch64/sme-4-illegal.l
+++ b/gas/testsuite/gas/aarch64/sme-4-illegal.l
@@ -1,5 +1,5 @@
[^:]*: Assembler messages:
-[^:]*:[0-9]+: Error: expected '{' at operand 1 -- `zero za'
+[^:]*:[0-9]+: Error: expected '\[' at operand 1 -- `zero za'
[^:]*:[0-9]+: Error: ZA tile number out of range at operand 1 -- `zero {za8\.d}'
[^:]*:[0-9]+: Error: ZA tile number out of range at operand 1 -- `zero {za0\.d,za8.d}'
[^:]*:[0-9]+: Error: ZA tile number out of range at operand 1 -- `zero {za2\.h}'
diff --git a/gas/testsuite/gas/aarch64/sme2p1-2-bad.d b/gas/testsuite/gas/aarch64/sme2p1-2-bad.d
new file mode 100644
index 0000000..f165f1f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-2-bad.d
@@ -0,0 +1,4 @@
+#name: Negative test of SME2.1 luti2 and luti4 instructions.
+#as: -march=armv9.4-a+sme2p1
+#source: sme2p1-2-bad.s
+#error_output: sme2p1-2-bad.l
diff --git a/gas/testsuite/gas/aarch64/sme2p1-2-bad.l b/gas/testsuite/gas/aarch64/sme2p1-2-bad.l
new file mode 100644
index 0000000..8fd4039
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-2-bad.l
@@ -0,0 +1,62 @@
+.*: Assembler messages:
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti2 {z0.b,z7.b},zt0,z0\[0\]`
+.*: Error: the register list must have a stride of 1 at operand 1 -- `luti2 {Z0.s,Z8.s},ZT0,Z0\[0\]'
+.*: Error: operand mismatch -- `luti2 {z7.d,z15.d},zt0,z0\[0\]'
+.*: Info: did you mean this\?
+.*: Info: luti2 {z7.b, z15.b}, zt0, z0\[0\]
+.*: Info: other valid variant\(s\):
+.*: Info: luti2 {z7.h, z15.h}, zt0, z0\[0\]
+.*: Info: luti2 {z7.s, z15.s}, zt0, z0\[0\]
+.*: Error: operand 3 must be an indexed SVE vector register -- `luti2 {z16.b,z24.b},zt0,z0'
+.*: Error: register element index out of range 0 to 7 at operand 3 -- `luti2 {z23.b,z31.b},zt0,z0\[8\]'
+.*: Error: register element index out of range 0 to 7 at operand 3 -- `luti2 {z0.b,z8.b},zt0,z31\[15\]'
+.*: Error: unexpected register type at operand 2 -- `luti2 {z0.b,z8.b},z0\[7\]'
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti2 {z8.b,z24.b},zt0,z31\[0\]`
+.*: Error: invalid register list at operand 1 -- `luti2 {z24.b,z24.b},zt0,z0\[7\]'
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti2 {z4.h,z16.h},zt0,z20\[4\]`
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti2 {z20.h,z22.h},zt0,z12\[2\]`
+.*: Error: invalid register list at operand 1 -- `luti2 {z0.b,z3.b,z18.b,z1.b},zt0,z0\[0\]'
+.*: Error: the register list must have a stride of 1 at operand 1 -- `luti2 {Z0.s,Z4.s,Z8.s,Z12.s},ZT0,Z0\[0\]'
+.*: Error: operand mismatch -- `luti2 {z3.d,z7.d,z11.d,z15.d},zt0,z0\[0\]'
+.*: Info: did you mean this\?
+.*: Info: luti2 {z3.b, z7.b, z11.b, z15.b}, zt0, z0\[0\]
+.*: Info: other valid variant\(s\):
+.*: Info: luti2 {z3.h, z7.h, z11.h, z15.h}, zt0, z0\[0\]
+.*: Info: luti2 {z3.s, z7.s, z11.s, z15.s}, zt0, z0\[0\]
+.*: Error: operand 3 must be an indexed SVE vector register -- `luti2 {z16.h,z20.h,z24.h,z28.h},zt0,z0'
+.*: Error: register element index out of range 0 to 3 at operand 3 -- `luti2 {z19.h,z23.h,z27.h,z31.h},zt0,z0\[5\]'
+.*: Error: start register out of range at operand 1 -- `luti2 {z10.b,z14.b,z18.b,z22.b},zt0,z31\[0\]'
+.*: Error: invalid register list at operand 1 -- `luti2 {z20.b,z24.b,z28.b,z30.b},z0\[3\]'
+.*: Error: invalid register list at operand 1 -- `luti2 {z4.b,z7.b,z11.b,z18.b},zt0,z31\[0\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `luti2 {z6.b,z0.s,z2.d,z28.h},zt0,z0\[7\]'
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti4 {z0.b,z7.b},zt0,z0\[0\]`
+.*: Error: the register list must have a stride of 1 at operand 1 -- `luti2 {Z0.s,Z8.s},ZT0,Z0\[0\]'
+.*: Error: operand mismatch -- `luti4 {z7.d,z15.d},zt0,z0\[0\]'
+.*: Info: did you mean this\?
+.*: Info: luti4 {z7.b, z15.b}, zt0, z0\[0\]
+.*: Info: other valid variant\(s\):
+.*: Info: luti4 {z7.h, z15.h}, zt0, z0\[0\]
+.*: Info: luti4 {z7.s, z15.s}, zt0, z0\[0\]
+.*: Error: missing braces at operand 3 -- `luti4 {z16.b,z24.b},zt0,z0'
+.*: Error: register element index out of range 0 to 3 at operand 3 -- `luti4 {z23.b,z31.b},zt0,z0\[8\]'
+.*: Error: register element index out of range 0 to 3 at operand 3 -- `luti4 {z0.b,z8.b},zt0,z31\[15\]'
+.*: Error: unexpected register type at operand 2 -- `luti4 {z0.b,z8.b},z0\[7\]'
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti4 {z8.b,z24.b},zt0,z31\[0\]`
+.*: Error: invalid register list at operand 1 -- `luti4 {z24.b,z24.b},zt0,z0\[7\]'
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti4 {z4.h,z16.h},zt0,z20\[4\]`
+.*: Error: the register list must have a stride of 1 or 8 at operand 1 -- `luti4 {z20.h,z22.h},zt0,z12\[2\]`
+.*: Error: the register list must have a stride of 1 at operand 1 -- `luti4 {z0.s,z4.s,z8.s,z12.s},zt0,z0\[0\]'
+.*: Error: invalid register list at operand 1 -- `luti4 {z0.b,z3.b,z18.b,z1.b},zt0,z0\[0\]'
+.*: Error: the register list must have a stride of 1 at operand 1 -- `luti2 {Z0.s,Z4.s,Z8.s,Z12.s},ZT0,Z0\[0\]'
+.*: Error: operand mismatch -- `luti4 {z3.d,z7.d,z11.d,z15.d},zt0,z0\[0\]'
+.*: Info: did you mean this\?
+.*: Info: luti4 {z3.b, z7.b, z11.b, z15.b}, zt0, z0\[0\]
+.*: Info: other valid variant\(s\):
+.*: Info: luti4 {z3.h, z7.h, z11.h, z15.h}, zt0, z0\[0\]
+.*: Info: luti4 {z3.s, z7.s, z11.s, z15.s}, zt0, z0\[0\]
+.*: Error: missing braces at operand 3 -- `luti4 {z16.h,z20.h,z24.h,z28.h},zt0,z0'
+.*: Error: register element index out of range 0 to 1 at operand 3 -- `luti4 {z19.h,z23.h,z27.h,z31.h},zt0,z0\[5\]'
+.*: Error: expected a list of 2 registers at operand 1 -- `luti4 {z10.b,z14.b,z18.b,z22.b},zt0,z31\[0\]'
+.*: Error: invalid register list at operand 1 -- `luti4 {z20.b,z24.b,z28.b,z30.b},z0\[3\]'
+.*: Error: invalid register list at operand 1 -- `luti4 {z4.b,z7.b,z11.b,z18.b},zt0,z31\[0\]'
+.*: Error: type mismatch in vector register list at operand 1 -- `luti4 {z6.b,z0.s,z2.d,z28.h},zt0,z0\[7\]'
diff --git a/gas/testsuite/gas/aarch64/sme2p1-2-bad.s b/gas/testsuite/gas/aarch64/sme2p1-2-bad.s
new file mode 100644
index 0000000..52af11f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-2-bad.s
@@ -0,0 +1,48 @@
+/* LUTI2 (two registers) strided. */
+luti2 { z0.b , z7.b }, zt0, z0[0]
+LUTI2 { Z0.s , Z8.s }, ZT0, Z0[0]
+luti2 { z7.d , z15.d }, zt0, z0[0]
+luti2 { z16.b , z24.b }, zt0, z0
+luti2 { z23.b , z31.b }, zt0, z0[8]
+luti2 { z0.b , z8.b }, zt0, z31[15]
+luti2 { z0.b , z8.b }, z0[7]
+luti2 { z8.b , z24.b }, zt0, z31[0]
+luti2 { z24.b , z24.b }, zt0, z0[7]
+luti2 { z4.h , z16.h }, zt0, z20[4]
+luti2 { z20.h , z22.h }, zt0, z12[2]
+
+/* LUTI2 (four registers) strided. */
+luti2 { z0.b , z3.b , z18.b , z1.b }, zt0, z0[0]
+LUTI2 { Z0.s , Z4.s, Z8.s , Z12.s }, ZT0, Z0[0]
+luti2 { z3.d , z7.d, z11.d, z15.d }, zt0, z0[0]
+luti2 { z16.h , z20.h , z24.h , z28.h }, zt0, z0
+luti2 { z19.h , z23.h , z27.h , z31.h }, zt0, z0[5]
+luti2 { z10.b , z14.b , z18.b , z22.b }, zt0, z31[0]
+luti2 { z20.b , z24.b , z28.b , z30.b }, z0[3]
+luti2 { z4.b , z7.b , z11.b , z18.b }, zt0, z31[0]
+luti2 { z6.b , z0.s , z2.d , z28.h }, zt0, z0[7]
+
+/* LUTI4 (two registers) strided. */
+luti4 { z0.b , z7.b }, zt0, z0[0]
+LUTI2 { Z0.s , Z8.s }, ZT0, Z0[0]
+luti4 { z7.d , z15.d }, zt0, z0[0]
+luti4 { z16.b , z24.b }, zt0, z0
+luti4 { z23.b , z31.b }, zt0, z0[8]
+luti4 { z0.b , z8.b }, zt0, z31[15]
+luti4 { z0.b , z8.b }, z0[7]
+luti4 { z8.b , z24.b }, zt0, z31[0]
+luti4 { z24.b , z24.b }, zt0, z0[7]
+luti4 { z4.h , z16.h }, zt0, z20[4]
+luti4 { z20.h , z22.h }, zt0, z12[2]
+
+/* LUTI4 (four registers) strided. */
+luti4 { z0.s , z4.s , z8.s , z12.s }, zt0, z0[0]
+luti4 { z0.b , z3.b , z18.b , z1.b }, zt0, z0[0]
+LUTI2 { Z0.s , Z4.s, Z8.s , Z12.s }, ZT0, Z0[0]
+luti4 { z3.d , z7.d, z11.d, z15.d }, zt0, z0[0]
+luti4 { z16.h , z20.h , z24.h , z28.h }, zt0, z0
+luti4 { z19.h , z23.h , z27.h , z31.h }, zt0, z0[5]
+luti4 { z10.b , z14.b , z18.b , z22.b }, zt0, z31[0]
+luti4 { z20.b , z24.b , z28.b , z30.b }, z0[3]
+luti4 { z4.b , z7.b , z11.b , z18.b }, zt0, z31[0]
+luti4 { z6.b , z0.s , z2.d , z28.h }, zt0, z0[7]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-2.d b/gas/testsuite/gas/aarch64/sme2p1-2.d
new file mode 100644
index 0000000..8be6db0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-2.d
@@ -0,0 +1,87 @@
+#name: Test of SME2.1 luti2 and luti4 instructions.
+#as: -march=armv9.4-a+sme2p1
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: c09c4000 luti2 {z0.b, z8.b}, zt0, z0\[0\]
+.*: c09c4000 luti2 {z0.b, z8.b}, zt0, z0\[0\]
+.*: c09c4007 luti2 {z7.b, z15.b}, zt0, z0\[0\]
+.*: c09c4010 luti2 {z16.b, z24.b}, zt0, z0\[0\]
+.*: c09c4017 luti2 {z23.b, z31.b}, zt0, z0\[0\]
+.*: c09c43e0 luti2 {z0.b, z8.b}, zt0, z31\[0\]
+.*: c09fc000 luti2 {z0.b, z8.b}, zt0, z0\[7\]
+.*: c09c43f0 luti2 {z16.b, z24.b}, zt0, z31\[0\]
+.*: c09fc010 luti2 {z16.b, z24.b}, zt0, z0\[7\]
+.*: c09e4284 luti2 {z4.b, z12.b}, zt0, z20\[4\]
+.*: c09d4194 luti2 {z20.b, z28.b}, zt0, z12\[2\]
+.*: c09c5000 luti2 {z0.h, z8.h}, zt0, z0\[0\]
+.*: c09c5000 luti2 {z0.h, z8.h}, zt0, z0\[0\]
+.*: c09c5007 luti2 {z7.h, z15.h}, zt0, z0\[0\]
+.*: c09c5010 luti2 {z16.h, z24.h}, zt0, z0\[0\]
+.*: c09c5017 luti2 {z23.h, z31.h}, zt0, z0\[0\]
+.*: c09c53e0 luti2 {z0.h, z8.h}, zt0, z31\[0\]
+.*: c09fd000 luti2 {z0.h, z8.h}, zt0, z0\[7\]
+.*: c09c53f0 luti2 {z16.h, z24.h}, zt0, z31\[0\]
+.*: c09fd010 luti2 {z16.h, z24.h}, zt0, z0\[7\]
+.*: c09e5284 luti2 {z4.h, z12.h}, zt0, z20\[4\]
+.*: c09d5194 luti2 {z20.h, z28.h}, zt0, z12\[2\]
+.*: c09c8000 luti2 {z0.b, z4.b, z8.b, z12.b}, zt0, z0\[0\]
+.*: c09c8000 luti2 {z0.b, z4.b, z8.b, z12.b}, zt0, z0\[0\]
+.*: c09c8003 luti2 {z3.b, z7.b, z11.b, z15.b}, zt0, z0\[0\]
+.*: c09c8010 luti2 {z16.b, z20.b, z24.b, z28.b}, zt0, z0\[0\]
+.*: c09c8013 luti2 {z19.b, z23.b, z27.b, z31.b}, zt0, z0\[0\]
+.*: c09c83e0 luti2 {z0.b, z4.b, z8.b, z12.b}, zt0, z31\[0\]
+.*: c09f8000 luti2 {z0.b, z4.b, z8.b, z12.b}, zt0, z0\[3\]
+.*: c09c83f0 luti2 {z16.b, z20.b, z24.b, z28.b}, zt0, z31\[0\]
+.*: c09f8010 luti2 {z16.b, z20.b, z24.b, z28.b}, zt0, z0\[3\]
+.*: c09d8282 luti2 {z2.b, z6.b, z10.b, z14.b}, zt0, z20\[1\]
+.*: c09e8151 luti2 {z17.b, z21.b, z25.b, z29.b}, zt0, z10\[2\]
+.*: c09c9000 luti2 {z0.h, z4.h, z8.h, z12.h}, zt0, z0\[0\]
+.*: c09c9000 luti2 {z0.h, z4.h, z8.h, z12.h}, zt0, z0\[0\]
+.*: c09c9003 luti2 {z3.h, z7.h, z11.h, z15.h}, zt0, z0\[0\]
+.*: c09c9010 luti2 {z16.h, z20.h, z24.h, z28.h}, zt0, z0\[0\]
+.*: c09c9013 luti2 {z19.h, z23.h, z27.h, z31.h}, zt0, z0\[0\]
+.*: c09c93e0 luti2 {z0.h, z4.h, z8.h, z12.h}, zt0, z31\[0\]
+.*: c09f9000 luti2 {z0.h, z4.h, z8.h, z12.h}, zt0, z0\[3\]
+.*: c09c93f0 luti2 {z16.h, z20.h, z24.h, z28.h}, zt0, z31\[0\]
+.*: c09f9010 luti2 {z16.h, z20.h, z24.h, z28.h}, zt0, z0\[3\]
+.*: c09d9282 luti2 {z2.h, z6.h, z10.h, z14.h}, zt0, z20\[1\]
+.*: c09e9151 luti2 {z17.h, z21.h, z25.h, z29.h}, zt0, z10\[2\]
+.*: c09a4000 luti4 {z0.b, z8.b}, zt0, z0\[0\]
+.*: c09a4000 luti4 {z0.b, z8.b}, zt0, z0\[0\]
+.*: c09a4007 luti4 {z7.b, z15.b}, zt0, z0\[0\]
+.*: c09a4010 luti4 {z16.b, z24.b}, zt0, z0\[0\]
+.*: c09a4017 luti4 {z23.b, z31.b}, zt0, z0\[0\]
+.*: c09a43e0 luti4 {z0.b, z8.b}, zt0, z31\[0\]
+.*: c09bc000 luti4 {z0.b, z8.b}, zt0, z0\[3\]
+.*: c09a43f0 luti4 {z16.b, z24.b}, zt0, z31\[0\]
+.*: c09bc010 luti4 {z16.b, z24.b}, zt0, z0\[3\]
+.*: c09ac284 luti4 {z4.b, z12.b}, zt0, z20\[1\]
+.*: c09b4194 luti4 {z20.b, z28.b}, zt0, z12\[2\]
+.*: c09a5000 luti4 {z0.h, z8.h}, zt0, z0\[0\]
+.*: c09a5000 luti4 {z0.h, z8.h}, zt0, z0\[0\]
+.*: c09a5007 luti4 {z7.h, z15.h}, zt0, z0\[0\]
+.*: c09a5010 luti4 {z16.h, z24.h}, zt0, z0\[0\]
+.*: c09a5017 luti4 {z23.h, z31.h}, zt0, z0\[0\]
+.*: c09a53e0 luti4 {z0.h, z8.h}, zt0, z31\[0\]
+.*: c09bd000 luti4 {z0.h, z8.h}, zt0, z0\[3\]
+.*: c09a53f0 luti4 {z16.h, z24.h}, zt0, z31\[0\]
+.*: c09bd010 luti4 {z16.h, z24.h}, zt0, z0\[3\]
+.*: c09ad284 luti4 {z4.h, z12.h}, zt0, z20\[1\]
+.*: c09b5194 luti4 {z20.h, z28.h}, zt0, z12\[2\]
+.*: c09a9000 luti4 {z0.h, z4.h, z8.h, z12.h}, zt0, z0\[0\]
+.*: c09a9000 luti4 {z0.h, z4.h, z8.h, z12.h}, zt0, z0\[0\]
+.*: c09a9003 luti4 {z3.h, z7.h, z11.h, z15.h}, zt0, z0\[0\]
+.*: c09a9010 luti4 {z16.h, z20.h, z24.h, z28.h}, zt0, z0\[0\]
+.*: c09a9013 luti4 {z19.h, z23.h, z27.h, z31.h}, zt0, z0\[0\]
+.*: c09a93e0 luti4 {z0.h, z4.h, z8.h, z12.h}, zt0, z31\[0\]
+.*: c09b9000 luti4 {z0.h, z4.h, z8.h, z12.h}, zt0, z0\[1\]
+.*: c09a93f0 luti4 {z16.h, z20.h, z24.h, z28.h}, zt0, z31\[0\]
+.*: c09b9010 luti4 {z16.h, z20.h, z24.h, z28.h}, zt0, z0\[1\]
+.*: c09b9282 luti4 {z2.h, z6.h, z10.h, z14.h}, zt0, z20\[1\]
+.*: c09a9151 luti4 {z17.h, z21.h, z25.h, z29.h}, zt0, z10\[0\]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-2.s b/gas/testsuite/gas/aarch64/sme2p1-2.s
new file mode 100644
index 0000000..a57baad
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-2.s
@@ -0,0 +1,87 @@
+/* LUTI2 (two registers) strided. */
+luti2 { z0.b , z8.b }, zt0, z0[0]
+LUTI2 { Z0.B , Z8.B }, ZT0, Z0[0]
+luti2 { z7.b , z15.b }, zt0, z0[0]
+luti2 { z16.b , z24.b }, zt0, z0[0]
+luti2 { z23.b , z31.b }, zt0, z0[0]
+luti2 { z0.b , z8.b }, zt0, z31[0]
+luti2 { z0.b , z8.b }, zt0, z0[7]
+luti2 { z16.b , z24.b }, zt0, z31[0]
+luti2 { z16.b , z24.b }, zt0, z0[7]
+luti2 { z4.b , z12.b }, zt0, z20[4]
+luti2 { z20.b , z28.b }, zt0, z12[2]
+
+luti2 { z0.h , z8.h }, zt0, z0[0]
+LUTI2 { Z0.H , Z8.H }, ZT0, Z0[0]
+luti2 { z7.h , z15.h }, zt0, z0[0]
+luti2 { z16.h , z24.h }, zt0, z0[0]
+luti2 { z23.h , z31.h }, zt0, z0[0]
+luti2 { z0.h , z8.h }, zt0, z31[0]
+luti2 { z0.h , z8.h }, zt0, z0[7]
+luti2 { z16.h , z24.h }, zt0, z31[0]
+luti2 { z16.h , z24.h }, zt0, z0[7]
+luti2 { z4.h , z12.h }, zt0, z20[4]
+luti2 { z20.h , z28.h }, zt0, z12[2]
+
+/* LUTI2 (four registers) strided. */
+luti2 { z0.b , z4.b , z8.b , z12.b }, zt0, z0[0]
+LUTI2 { Z0.B , Z4.B, Z8.B , Z12.B }, ZT0, Z0[0]
+luti2 { z3.b , z7.b, z11.b, z15.b }, zt0, z0[0]
+luti2 { z16.b , z20.b , z24.b , z28.b }, zt0, z0[0]
+luti2 { z19.b , z23.b , z27.b , z31.b }, zt0, z0[0]
+luti2 { z0.b , z4.b , z8.b , z12.b }, zt0, z31[0]
+luti2 { z0.b , z4.b , z8.b , z12.b }, zt0, z0[3]
+luti2 { z16.b , z20.b , z24.b , z28.b }, zt0, z31[0]
+luti2 { z16.b , z20.b , z24.b , z28.b }, zt0, z0[3]
+luti2 { z2.b , z6.b, z10.b , z14.b }, zt0, z20[1]
+luti2 { z17.b , z21.b, z25.b , z29.b }, zt0, z10[2]
+
+luti2 { z0.h , z4.h , z8.h , z12.h }, zt0, z0[0]
+LUTI2 { Z0.H , Z4.H, Z8.H , Z12.H }, ZT0, Z0[0]
+luti2 { z3.h , z7.h, z11.h, z15.h }, zt0, z0[0]
+luti2 { z16.h , z20.h , z24.h , z28.h }, zt0, z0[0]
+luti2 { z19.h , z23.h , z27.h , z31.h }, zt0, z0[0]
+luti2 { z0.h , z4.h , z8.h , z12.h }, zt0, z31[0]
+luti2 { z0.h , z4.h , z8.h , z12.h }, zt0, z0[3]
+luti2 { z16.h , z20.h , z24.h , z28.h }, zt0, z31[0]
+luti2 { z16.h , z20.h , z24.h , z28.h }, zt0, z0[3]
+luti2 { z2.h , z6.h, z10.h , z14.h }, zt0, z20[1]
+luti2 { z17.h , z21.h, z25.h , z29.h }, zt0, z10[2]
+
+/* LUTI4 (two registers) strided. */
+luti4 { z0.b , z8.b }, zt0, z0[0]
+LUTI4 { Z0.B , Z8.B }, ZT0, Z0[0]
+luti4 { z7.b , z15.b }, zt0, z0[0]
+luti4 { z16.b , z24.b }, zt0, z0[0]
+luti4 { z23.b , z31.b }, zt0, z0[0]
+luti4 { z0.b , z8.b }, zt0, z31[0]
+luti4 { z0.b , z8.b }, zt0, z0[3]
+luti4 { z16.b , z24.b }, zt0, z31[0]
+luti4 { z16.b , z24.b }, zt0, z0[3]
+luti4 { z4.b , z12.b }, zt0, z20[1]
+luti4 { z20.b , z28.b }, zt0, z12[2]
+
+luti4 { z0.h , z8.h }, zt0, z0[0]
+LUTI4 { Z0.H , Z8.H }, ZT0, Z0[0]
+luti4 { z7.h , z15.h }, zt0, z0[0]
+luti4 { z16.h , z24.h }, zt0, z0[0]
+luti4 { z23.h , z31.h }, zt0, z0[0]
+luti4 { z0.h , z8.h }, zt0, z31[0]
+luti4 { z0.h , z8.h }, zt0, z0[3]
+luti4 { z16.h , z24.h }, zt0, z31[0]
+luti4 { z16.h , z24.h }, zt0, z0[3]
+luti4 { z4.h , z12.h }, zt0, z20[1]
+luti4 { z20.h , z28.h }, zt0, z12[2]
+
+/* LUTI4 (four registers) strided. */
+luti4 { z0.h , z4.h , z8.h , z12.h }, zt0, z0[0]
+LUTI4 { Z0.H , Z4.H, Z8.H , Z12.H }, ZT0, Z0[0]
+luti4 { z3.h , z7.h, z11.h, z15.h }, zt0, z0[0]
+luti4 { z16.h , z20.h , z24.h , z28.h }, zt0, z0[0]
+luti4 { z19.h , z23.h , z27.h , z31.h }, zt0, z0[0]
+luti4 { z0.h , z4.h , z8.h , z12.h }, zt0, z31[0]
+luti4 { z0.h , z4.h , z8.h , z12.h }, zt0, z0[1]
+luti4 { z16.h , z20.h , z24.h , z28.h }, zt0, z31[0]
+luti4 { z16.h , z20.h , z24.h , z28.h }, zt0, z0[1]
+luti4 { z2.h , z6.h, z10.h , z14.h }, zt0, z20[1]
+luti4 { z17.h , z21.h, z25.h , z29.h }, zt0, z10[0]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-3-bad.d b/gas/testsuite/gas/aarch64/sme2p1-3-bad.d
new file mode 100644
index 0000000..730d3bf
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-3-bad.d
@@ -0,0 +1,4 @@
+#name: Negative test of SME2.1 movaz array to vector instructions.
+#as: -march=armv9.4-a+sme2p1
+#source: sme2p1-3-bad.s
+#error_output: sme2p1-3-bad.l
diff --git a/gas/testsuite/gas/aarch64/sme2p1-3-bad.l b/gas/testsuite/gas/aarch64/sme2p1-3-bad.l
new file mode 100644
index 0000000..8b7019f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-3-bad.l
@@ -0,0 +1,30 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `movaz {z0.s-z1.s},za.d\[w8,0,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: movaz {z0.d-z1.d}, za.d\[w8, 0, vgx2\]
+.*: Error: operand mismatch -- `movaz {z30.h-z31.h},za.d\[w8,0,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: movaz {z30.d-z31.d}, za.d\[w8, 0, vgx2\]
+.*: Error: operand mismatch -- `movaz {z0.b-z1.b},za.b\[w11,0,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: movaz {z0.d-z1.d}, za.d\[w11, 0, vgx2\]
+.*: Error: expected a selection register in the range w8-w11 at operand 2 -- `movaz {z0.d-z1.d},za.d\[w13,7,vgx2\]'
+.*: Error: immediate offset out of range 0 to 7 at operand 2 -- `movaz {z30.d-z31.d},za.d\[w11,15,vgx2\]'
+.*: Error: invalid vector group size at operand 2 -- `movaz {z14.d-z15.d},za.d\[w9,4,vgx3\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz {z6.d-z7.d},za.d\[w10\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz {z2.d-z4.d},za.d\[w10 6\]'
+.*: Error: operand mismatch -- `movaz {z0.s-z3.s},za.d\[w8,0,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: movaz {z0.d-z3.d}, za.d\[w8, 0, vgx4\]
+.*: Error: operand mismatch -- `movaz {z28.h-z31.h},za.d\[w8,0,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: movaz {z28.d-z31.d}, za.d\[w8, 0, vgx4\]
+.*: Error: operand mismatch -- `movaz {z0.b-z3.b},za.b\[w11,0,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: movaz {z0.d-z3.d}, za.d\[w11, 0, vgx4\]
+.*: Error: expected a selection register in the range w8-w11 at operand 2 -- `movaz {z0.d-z3.d},za.d\[w14,7,vgx4\]'
+.*: Error: invalid vector group size at operand 2 -- `movaz {z28.d-z31.d},za.d\[w11,11,vgx3\]'
+.*: Error: start register out of range at operand 1 -- `movaz {z14.d-z17.d},za.d\[w9,4,vgx4\]'
+.*: Error: too many registers in vector register list at operand 1 -- `movaz {z4.d-z8.d},za.d\[w10,3,vgx4\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz {z0.d,z3.d},za.d\[w10\]'
+.*: Error: the register list must have a stride of 1 at operand 1 -- `movaz {z1.d,z4.d},za.d\[w10,20\]'
diff --git a/gas/testsuite/gas/aarch64/sme2p1-3-bad.s b/gas/testsuite/gas/aarch64/sme2p1-3-bad.s
new file mode 100644
index 0000000..cec5987
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-3-bad.s
@@ -0,0 +1,20 @@
+/* MOVAZ (array to vector, two registers). */
+movaz {z0.s - z1.s} , za.d[w8, 0, vgx2]
+movaz {z30.h - z31.h} , za.d[w8, 0, vgx2]
+movaz {z0.b - z1.b} , za.b[w11, 0, vgx2]
+movaz {z0.d - z1.d} , za.d[w13, 7, vgx2]
+movaz {z30.d - z31.d} , za.d[w11, 15, vgx2]
+movaz {z14.d - z15.d} , za.d[w9, 4, vgx3]
+movaz {z6.d - z7.d} , za.d[w10]
+movaz {z2.d - z4.d} , za.d[w10 6]
+
+/* MOVAZ (array to vector, four registers). */
+movaz {z0.s - z3.s} , za.d[w8, 0, vgx4]
+movaz {z28.h - z31.h} , za.d[w8, 0, vgx4]
+movaz {z0.b - z3.b} , za.b[w11, 0, vgx4]
+movaz {z0.d - z3.d} , za.d[w14, 7, vgx4]
+movaz {z28.d - z31.d} , za.d[w11, 11, vgx3]
+movaz {z14.d - z17.d} , za.d[w9, 4, vgx4]
+movaz {z4.d - z8.d} , za.d[w10, 3, vgx4]
+movaz {z0.d, z3.d} , za.d[w10]
+movaz {z1.d, z4.d} , za.d[w10 , 20]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-3.d b/gas/testsuite/gas/aarch64/sme2p1-3.d
new file mode 100644
index 0000000..f9f20eb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-3.d
@@ -0,0 +1,26 @@
+#name: Test of SME2.1 movaz array to vector instructions.
+#as: -march=armv9.4-a+sme2p1
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: c0060a00 movaz {z0.d-z1.d}, za.d\[w8, 0, vgx2\]
+.*: c0060a1e movaz {z30.d-z31.d}, za.d\[w8, 0, vgx2\]
+.*: c0066a00 movaz {z0.d-z1.d}, za.d\[w11, 0, vgx2\]
+.*: c0060ae0 movaz {z0.d-z1.d}, za.d\[w8, 7, vgx2\]
+.*: c0066afe movaz {z30.d-z31.d}, za.d\[w11, 7, vgx2\]
+.*: c0062a8e movaz {z14.d-z15.d}, za.d\[w9, 4, vgx2\]
+.*: c0064a66 movaz {z6.d-z7.d}, za.d\[w10, 3, vgx2\]
+.*: c0064ac2 movaz {z2.d-z3.d}, za.d\[w10, 6, vgx2\]
+.*: c0060e00 movaz {z0.d-z3.d}, za.d\[w8, 0, vgx4\]
+.*: c0060e1c movaz {z28.d-z31.d}, za.d\[w8, 0, vgx4\]
+.*: c0066e00 movaz {z0.d-z3.d}, za.d\[w11, 0, vgx4\]
+.*: c0060ee0 movaz {z0.d-z3.d}, za.d\[w8, 7, vgx4\]
+.*: c0066efc movaz {z28.d-z31.d}, za.d\[w11, 7, vgx4\]
+.*: c0062e8c movaz {z12.d-z15.d}, za.d\[w9, 4, vgx4\]
+.*: c0064e64 movaz {z4.d-z7.d}, za.d\[w10, 3, vgx4\]
+.*: c0064ec0 movaz {z0.d-z3.d}, za.d\[w10, 6, vgx4\]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-3.s b/gas/testsuite/gas/aarch64/sme2p1-3.s
new file mode 100644
index 0000000..3a822da
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-3.s
@@ -0,0 +1,19 @@
+/* MOVAZ (array to vector, two registers). */
+movaz {z0.d - z1.d} , za.d[w8, 0, vgx2]
+movaz {z30.d - z31.d} , za.d[w8, 0, vgx2]
+movaz {z0.d - z1.d} , za.d[w11, 0, vgx2]
+movaz {z0.d - z1.d} , za.d[w8, 7, vgx2]
+movaz {z30.d - z31.d} , za.d[w11, 7, vgx2]
+movaz {z14.d - z15.d} , za.d[w9, 4, vgx2]
+movaz {z6.d - z7.d} , za.d[w10, 3, vgx2]
+movaz {z2.d - z3.d} , za.d[w10, 6]
+
+/* MOVAZ (array to vector, four registers). */
+movaz {z0.d - z3.d} , za.d[w8, 0, vgx4]
+movaz {z28.d - z31.d} , za.d[w8, 0, vgx4]
+movaz {z0.d - z3.d} , za.d[w11, 0, vgx4]
+movaz {z0.d - z3.d} , za.d[w8, 7, vgx4]
+movaz {z28.d - z31.d} , za.d[w11, 7, vgx4]
+movaz {z12.d - z15.d} , za.d[w9, 4, vgx4]
+movaz {z4.d - z7.d} , za.d[w10, 3, vgx4]
+movaz {z0.d - z3.d} , za.d[w10, 6]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-4-bad.d b/gas/testsuite/gas/aarch64/sme2p1-4-bad.d
new file mode 100644
index 0000000..4656ad6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-4-bad.d
@@ -0,0 +1,4 @@
+#name: Negative test of SME2.1 MOVAZ (tile to vector, single) instructions.
+#as: -march=armv9.4-a+sme2p1
+#source: sme2p1-4-bad.s
+#error_output: sme2p1-4-bad.l
diff --git a/gas/testsuite/gas/aarch64/sme2p1-4-bad.l b/gas/testsuite/gas/aarch64/sme2p1-4-bad.l
new file mode 100644
index 0000000..fd35f4f2
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-4-bad.l
@@ -0,0 +1,76 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `movaz z0.b,za0h.s\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.b, za0h.b \[w12, 0\]
+.*: Error: operand mismatch -- `movaz z31.d,za0h.b\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z31.b, za0h.b \[w12, 0\]
+.*: Error: operand mismatch -- `movaz z0.b,za0v.h\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.b, za0v.b \[w12, 0\]
+.*: Error: expected a ZA tile slice at operand 2 -- `movaz z0.q,za0vh.b\[w15,0\]'
+.*: Error: operand mismatch -- `movaz z0.s,za0h.b\[w10,15\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.b, za0h.b \[w10, 15\]
+.*: Error: ZA tile number out of range at operand 2 -- `movaz z31.b,za1v.b\[w25,15\]'
+.*: Error: immediate offset out of range 0 to 15 at operand 2 -- `movaz z15.b,za0h.b\[w13,31\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz z7.h,za0h.b\[w14\]'
+.*: Error: operand mismatch -- `movaz z0.s,za0h.h\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.h, za0h.h \[w12, 0\]
+.*: Error: operand mismatch -- `movaz z31.h,za0h.d\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z31.h, za0h.h \[w12, 0\]
+.*: Error: ZA tile number out of range at operand 2 -- `movaz z0.h,za1h.b\[w12,0\]'
+.*: Error: expected a ZA tile slice at operand 2 -- `movaz z0.q,za0vh.h\[w12,0\]'
+.*: Error: expected a selection register in the range w12-w15 at operand 2 -- `movaz z0.h,za0h.h\[w17,0\]'
+.*: Error: immediate offset out of range 0 to 15 at operand 2 -- `movaz z0.h,za0h.h\[w12,27\]'
+.*: Error: ZA tile number out of range at operand 2 -- `movaz z31.h,za3v.h\[w15,7\]'
+.*: Error: expected a selection register in the range w12-w15 at operand 2 -- `movaz z15.h,za0h.h\[w2,3\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz z7.d,za0h.h\[w14\]'
+.*: Error: operand mismatch -- `movaz z0.b,za0h.s\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.b, za0h.b \[w12, 0\]
+.*: Error: operand mismatch -- `movaz z31.s,za0h.h\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z31.h, za0h.h \[w12, 0\]
+.*: Error: operand mismatch -- `movaz z0.s,za3h\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.s, za3h.s \[w12, 0\]
+.*: Error: expected a selection register in the range w12-w15 at operand 2 -- `movaz z0.s,za0v.s\[w1,0\]'
+.*: Error: operand mismatch -- `movaz z0.q,za0h.s\[w25,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.s, za0h.s \[w25, 0\]
+.*: Error: ZA tile number out of range at operand 2 -- `movaz z31.s,za5v.s\[w15,3\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz z15.s,za1h.s\[w13\]'
+.*: Error: operand mismatch -- `movaz z7.b,za2h.d\[w14,1\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z7.b, za2h.b \[w14, 1\]
+.*: Error: operand mismatch -- `movaz z0.b,za0h.d\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.b, za0h.b \[w12, 0\]
+.*: Error: operand mismatch -- `movaz z31.d,za0h.h\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z31.h, za0h.h \[w12, 0\]
+.*: Error: ZA tile number out of range at operand 2 -- `movaz z0.d,za7h.s\[w12,0\]'
+.*: Error: operand mismatch -- `movaz z0.s,za0v.q\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.s, za0v.s \[w12, 0\]
+.*: Error: expected a ZA tile slice at operand 2 -- `movaz z0.d,za0vh.d\[w15,0\]'
+.*: Error: ZA tile number out of range at operand 2 -- `movaz z31.d,za11v.d\[w1,1\]'
+.*: Error: expected a selection register in the range w12-w15 at operand 2 -- `movaz z15.d,za3h.d\[w23,0\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz z7.s,za4h.q\[w14\]'
+.*: Error: operand mismatch -- `movaz z0.b,za0h.q\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.b, za0h.b \[w12, 0\]
+.*: Error: expected a ZA tile slice at operand 2 -- `movaz z31.q,za0vh.s\[w12,0\]'
+.*: Error: ZA tile number out of range at operand 2 -- `movaz z0.q,za15h.h\[w20,0\]'
+.*: Error: operand mismatch -- `movaz z0.s,za0v.d\[w12,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z0.s, za0v.s \[w12, 0\]
+.*: Error: expected a selection register in the range w12-w15 at operand 2 -- `movaz z0.q,za0h.q\[w1,0\]'
+.*: Error: operand mismatch -- `movaz z31.q,za15v\[w15,0\]'
+.*: Info: did you mean this\?
+.*: Info: movaz z31.q, za15v.q \[w15, 0\]
+.*: Error: expected a ZA tile slice at operand 2 -- `movaz z5.q,za27.q\[w13,0\]'
+.*: Error: missing immediate offset at operand 2 -- `movaz z7.q,za6h\[w14\]'
diff --git a/gas/testsuite/gas/aarch64/sme2p1-4-bad.s b/gas/testsuite/gas/aarch64/sme2p1-4-bad.s
new file mode 100644
index 0000000..1a13191
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-4-bad.s
@@ -0,0 +1,48 @@
+/* MOVAZ (tile to vector, single). */
+movaz z0.b, za0h.s[w12, 0]
+movaz z31.d, za0h.b[w12, 0]
+movaz z0.b, za0v.h[w12, 0]
+movaz z0.q, za0vh.b[w15, 0]
+movaz z0.s, za0h.b[w10, 15]
+movaz z31.b, za1v.b[w25, 15]
+movaz z15.b, za0h.b[w13, 31]
+movaz z7.h, za0h.b[w14]
+
+movaz z0.s, za0h.h[w12, 0]
+movaz z31.h, za0h.d[w12, 0]
+movaz z0.h, za1h.b[w12, 0]
+movaz z0.q, za0vh.h[w12, 0]
+movaz z0.h, za0h.h[w17, 0]
+movaz z0.h, za0h.h[w12, 27]
+movaz z31.h, za3v.h[w15, 7]
+movaz z15.h, za0h.h[w2, 3]
+movaz z7.d, za0h.h[w14]
+
+movaz z0.b, za0h.s[w12, 0]
+movaz z31.s, za0h.h[w12, 0]
+movaz z0.s, za3h[w12, 0]
+movaz z0.s, za0v.s[w1, 0]
+movaz z0.q, za0h.s[w25, 0]
+movaz z0.s, za0h.s[w12, 13]
+movaz z31.s, za5v.s[w15, 3]
+movaz z15.s, za1h.s[w13]
+movaz z7.b, za2h.d[w14, 1]
+
+movaz z0.b, za0h.d[w12, 0]
+movaz z31.d, za0h.h[w12, 0]
+movaz z0.d, za7h.s[w12, 0]
+movaz z0.s, za0v.q[w12, 0]
+movaz z0.d, za0vh.d[w15, 0]
+movaz z0.d, za0h.d[w12, 1]
+movaz z31.d, za11v.d[w1, 1]
+movaz z15.d, za3h.d[w23, 0]
+movaz z7.s, za4h.q[w14]
+
+movaz z0.b, za0h.q[w12, 0]
+movaz z31.q, za0vh.s[w12, 0]
+movaz z0.q, za15h.h[w20, 0]
+movaz z0.s, za0v.d[w12, 0]
+movaz z0.q, za0h.q[w1, 0]
+movaz z31.q, za15v[w15, 0]
+movaz z5.q, za27.q[w13, 0]
+movaz z7.q, za6h[w14]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-4.d b/gas/testsuite/gas/aarch64/sme2p1-4.d
new file mode 100644
index 0000000..add2708
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-4.d
@@ -0,0 +1,53 @@
+#name: Test of SME2.1 MOVAZ (tile to vector, single) instructions.
+#as: -march=armv9.4-a+sme2p1
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: c0020200 movaz z0.b, za0h.b \[w12, 0\]
+.*: c002021f movaz z31.b, za0h.b \[w12, 0\]
+.*: c0028200 movaz z0.b, za0v.b \[w12, 0\]
+.*: c0026200 movaz z0.b, za0h.b \[w15, 0\]
+.*: c00203e0 movaz z0.b, za0h.b \[w12, 15\]
+.*: c002e3ff movaz z31.b, za0v.b \[w15, 15\]
+.*: c002226f movaz z15.b, za0h.b \[w13, 3\]
+.*: c0024227 movaz z7.b, za0h.b \[w14, 1\]
+.*: c0420200 movaz z0.h, za0h.h \[w12, 0\]
+.*: c042021f movaz z31.h, za0h.h \[w12, 0\]
+.*: c0420300 movaz z0.h, za1h.h \[w12, 0\]
+.*: c0428200 movaz z0.h, za0v.h \[w12, 0\]
+.*: c0426200 movaz z0.h, za0h.h \[w15, 0\]
+.*: c04202e0 movaz z0.h, za0h.h \[w12, 7\]
+.*: c042e3ff movaz z31.h, za1v.h \[w15, 7\]
+.*: c042226f movaz z15.h, za0h.h \[w13, 3\]
+.*: c0424227 movaz z7.h, za0h.h \[w14, 1\]
+.*: c0820200 movaz z0.s, za0h.s \[w12, 0\]
+.*: c082021f movaz z31.s, za0h.s \[w12, 0\]
+.*: c0820380 movaz z0.s, za3h.s \[w12, 0\]
+.*: c0828200 movaz z0.s, za0v.s \[w12, 0\]
+.*: c0826200 movaz z0.s, za0h.s \[w15, 0\]
+.*: c0820260 movaz z0.s, za0h.s \[w12, 3\]
+.*: c082e3ff movaz z31.s, za3v.s \[w15, 3\]
+.*: c08222cf movaz z15.s, za1h.s \[w13, 2\]
+.*: c0824327 movaz z7.s, za2h.s \[w14, 1\]
+.*: c0c20200 movaz z0.d, za0h.d \[w12, 0\]
+.*: c0c2021f movaz z31.d, za0h.d \[w12, 0\]
+.*: c0c203c0 movaz z0.d, za7h.d \[w12, 0\]
+.*: c0c28200 movaz z0.d, za0v.d \[w12, 0\]
+.*: c0c26200 movaz z0.d, za0h.d \[w15, 0\]
+.*: c0c20220 movaz z0.d, za0h.d \[w12, 1\]
+.*: c0c2e3ff movaz z31.d, za7v.d \[w15, 1\]
+.*: c0c222cf movaz z15.d, za3h.d \[w13, 0\]
+.*: c0c24327 movaz z7.d, za4h.d \[w14, 1\]
+.*: c0c30200 movaz z0.q, za0h.q \[w12, 0\]
+.*: c0c3021f movaz z31.q, za0h.q \[w12, 0\]
+.*: c0c303e0 movaz z0.q, za15h.q \[w12, 0\]
+.*: c0c38200 movaz z0.q, za0v.q \[w12, 0\]
+.*: c0c36200 movaz z0.q, za0h.q \[w15, 0\]
+.*: c0c3e3ff movaz z31.q, za15v.q \[w15, 0\]
+.*: c0c322ef movaz z15.q, za7h.q \[w13, 0\]
+.*: c0c342c7 movaz z7.q, za6h.q \[w14, 0\]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-4.s b/gas/testsuite/gas/aarch64/sme2p1-4.s
new file mode 100644
index 0000000..5c48af4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-4.s
@@ -0,0 +1,48 @@
+/* MOVAZ (tile to vector, single). */
+movaz z0.b, za0h.b[w12, 0]
+movaz z31.b, za0h.b[w12, 0]
+movaz z0.b, za0v.b[w12, 0]
+movaz z0.b, za0h.b[w15, 0]
+movaz z0.b, za0h.b[w12, 15]
+movaz z31.b, za0v.b[w15, 15]
+movaz z15.b, za0h.b[w13, 3]
+movaz z7.b, za0h.b[w14, 1]
+
+movaz z0.h, za0h.h[w12, 0]
+movaz z31.h, za0h.h[w12, 0]
+movaz z0.h, za1h.h[w12, 0]
+movaz z0.h, za0v.h[w12, 0]
+movaz z0.h, za0h.h[w15, 0]
+movaz z0.h, za0h.h[w12, 7]
+movaz z31.h, za1v.h[w15, 7]
+movaz z15.h, za0h.h[w13, 3]
+movaz z7.h, za0h.h[w14, 1]
+
+movaz z0.s, za0h.s[w12, 0]
+movaz z31.s, za0h.s[w12, 0]
+movaz z0.s, za3h.s[w12, 0]
+movaz z0.s, za0v.s[w12, 0]
+movaz z0.s, za0h.s[w15, 0]
+movaz z0.s, za0h.s[w12, 3]
+movaz z31.s, za3v.s[w15, 3]
+movaz z15.s, za1h.s[w13, 2]
+movaz z7.s, za2h.s[w14, 1]
+
+movaz z0.d, za0h.d[w12, 0]
+movaz z31.d, za0h.d[w12, 0]
+movaz z0.d, za7h.d[w12, 0]
+movaz z0.d, za0v.d[w12, 0]
+movaz z0.d, za0h.d[w15, 0]
+movaz z0.d, za0h.d[w12, 1]
+movaz z31.d, za7v.d[w15, 1]
+movaz z15.d, za3h.d[w13, 0]
+movaz z7.d, za4h.d[w14, 1]
+
+movaz z0.q, za0h.q[w12, 0]
+movaz z31.q, za0h.q[w12, 0]
+movaz z0.q, za15h.q[w12, 0]
+movaz z0.q, za0v.q[w12, 0]
+movaz z0.q, za0h.q[w15, 0]
+movaz z31.q, za15v.q[w15, 0]
+movaz z15.q, za7h.q[w13, 0]
+movaz z7.q, za6h.q[w14, 0]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-5-bad.d b/gas/testsuite/gas/aarch64/sme2p1-5-bad.d
new file mode 100644
index 0000000..86a6834
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-5-bad.d
@@ -0,0 +1,4 @@
+#name: Negative test of SME2.1 ZERO instructions.
+#as: -march=armv9.4-a+sme2p1
+#source: sme2p1-5-bad.s
+#error_output: sme2p1-5-bad.l
diff --git a/gas/testsuite/gas/aarch64/sme2p1-5-bad.l b/gas/testsuite/gas/aarch64/sme2p1-5-bad.l
new file mode 100644
index 0000000..959864a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-5-bad.l
@@ -0,0 +1,103 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `zero za.s\[w8,0,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w8, 0, vgx2\]
+.*: Error: operand mismatch -- `zero za.b\[w14,0,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w14, 0, vgx2\]
+.*: Error: expected a selection register in the range w8-w11 at operand 1 -- `zero za.d\[w2,7,vgx2\]'
+.*: Error: immediate offset out of range 0 to 7 at operand 1 -- `zero za.d\[w11,17,vgx2\]'
+.*: Error: invalid vector group size at operand 1 -- `zero za.d\[w9,4,vgx3\]'
+.*: Error: operand mismatch -- `zero za.h\[w10,3\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w10, 3\]
+.*: Error: operand mismatch -- `zero za.s\[w18,0,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w18, 0, vgx4\]
+.*: Error: operand mismatch -- `zero za.b\[w1,0,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w1, 0, vgx4\]
+.*: Error: operand mismatch -- `zero za.q\[w8,17,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w8, 17, vgx2\]
+.*: Error: invalid vector group size at operand 1 -- `zero za.h\[w11,7,vgx3\]'
+.*: Error: expected a constant immediate offset at operand 1 -- `zero za.s\[w9,vg\]'
+.*: Error: operand mismatch -- `zero za.b\[w10,3\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w10, 3\]
+.*: Error: operand mismatch -- `zero za.s\[w18,0:1\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w18, 0:1\]
+.*: Error: operand mismatch -- `zero za.s\[w1,0:1\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w1, 0:1\]
+.*: Error: operand mismatch -- `zero za.b\[w8,4:5\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w8, 4:5\]
+.*: Error: operand mismatch -- `zero za.b\[w11,1:5\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w11, 1:5\]
+.*: Error: operand mismatch -- `zero za.h\[w9,2:13\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w9, 2:13\]
+.*: Error: the last offset is less than the first offset at operand 1 -- `zero za.h\[w10,16:7\]'
+.*: Error: operand mismatch -- `zero za.s\[w18,0:3,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w18, 0:3, vgx2\]
+.*: Error: operand mismatch -- `zero za.b\[w1,0:1,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w1, 0:1, vgx4\]
+.*: Error: invalid vector group size at operand 1 -- `zero za.h\[w8,6:7,vg\]'
+.*: Error: invalid vector group size at operand 1 -- `zero za.q\[w9,12:13,vgx3\]'
+.*: Error: operand mismatch -- `zero za.s\[w18,0:1,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w18, 0:1, vgx4\]
+.*: Error: invalid vector group size at operand 1 -- `zero za.h\[w1,0:1,vgx3\]'
+.*: Error: operand mismatch -- `zero za.b\[w8,16:17,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w8, 16:17, vgx4\]
+.*: Error: operand mismatch -- `zero za.q\[w9,12:13\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w9, 12:13\]
+.*: Error: invalid vector group size at operand 1 -- `zero za.s\[w18,0:3,\]'
+.*: Error: operand mismatch -- `zero za.s\[w1,0:3\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w1, 0:3\]
+.*: Error: operand mismatch -- `zero za.b\[w8,8:11\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w8, 8:11\]
+.*: Error: the last offset is less than the first offset at operand 1 -- `zero za.b\[w11,18:1,vgx3\]'
+.*: Error: operand mismatch -- `zero za.h\[w9,4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w9, 4\]
+.*: Error: operand mismatch -- `zero za.h\[w10,10:13\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w10, 10:13\]
+.*: Error: operand mismatch -- `zero za.s\[w18,0:3,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w18, 0:3, vgx2\]
+.*: Error: operand mismatch -- `zero za.s\[w1,0:3,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w1, 0:3, vgx2\]
+.*: Error: operand mismatch -- `zero za.b\[w8,14:17,vgx2\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w8, 14:17, vgx2\]
+.*: Error: invalid vector group size at operand 1 -- `zero za.b\[w11,4:7,vg\]'
+.*: Error: operand mismatch -- `zero za.h\[w9,0:3\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w9, 0:3\]
+.*: Error: expected a constant immediate offset at operand 1 -- `zero za.q\[w10,vgx2\]'
+.*: Error: operand mismatch -- `zero za.s\[w18,0:3,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w18, 0:3, vgx4\]
+.*: Error: operand mismatch -- `zero za.s\[w1,0:3,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w1, 0:3, vgx4\]
+.*: Error: operand mismatch -- `zero za.b\[w8,14:17,vgx4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w8, 14:17, vgx4\]
+.*: Error: invalid vector group size at operand 1 -- `zero za.b\[w11,4:7,vg\]'
+.*: Error: invalid vector group size at operand 1 -- `zero za.h\[w9,0:3,vgx3\]'
+.*: Error: operand mismatch -- `zero za.q\[w10,4\]'
+.*: Info: did you mean this\?
+.*: Info: zero za.d\[w10, 4\]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-5-bad.s b/gas/testsuite/gas/aarch64/sme2p1-5-bad.s
new file mode 100644
index 0000000..5b69634
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-5-bad.s
@@ -0,0 +1,54 @@
+/* ZERO (single-vector). */
+zero za.s[w8, 0, vgx2]
+zero za.b[w14, 0, vgx2]
+zero za.d[w2, 7, vgx2]
+zero za.d[w11, 17, vgx2]
+zero za.d[w9, 4, vgx3]
+zero za.h[w10, 3]
+
+zero za.s[w18, 0, vgx4]
+zero za.b[w1, 0, vgx4]
+zero za.q[w8, 17, vgx2]
+zero za.h[w11, 7, vgx3]
+zero za.s[w9, vg]
+zero za.b[w10, 3]
+
+/* ZERO (double-vector). */
+zero za.s[w18, 0:1]
+zero za.s[w1, 0:1]
+zero za.b[w8, 4:5]
+zero za.b[w11, 1:5]
+zero za.h[w9, 2:13]
+zero za.h[w10, 16:7]
+
+zero za.s[w18, 0:3, vgx2]
+zero za.b[w1, 0:1, vgx4]
+zero za.h[w8, 6:7, vg]
+zero za.q[w9, 12:13, vgx3]
+
+zero za.s[w18, 0:1, vgx4]
+zero za.h[w1, 0:1, vgx3]
+zero za.b[w8, 16:17, vgx4]
+zero za.q[w9, 12:13]
+
+/* ZERO (quad-vector). */
+zero za.s[w18, 0:3,]
+zero za.s[w1, 0:3]
+zero za.b[w8, 8:11]
+zero za.b[w11, 18:1, vgx3]
+zero za.h[w9, 4]
+zero za.h[w10, 10:13]
+
+zero za.s[w18, 0:3, vgx2]
+zero za.s[w1, 0:3, vgx2]
+zero za.b[w8, 14:17, vgx2]
+zero za.b[w11, 4:7, vg]
+zero za.h[w9, 0:3]
+zero za.q[w10, vgx2]
+
+zero za.s[w18, 0:3, vgx4]
+zero za.s[w1, 0:3, vgx4]
+zero za.b[w8, 14:17, vgx4]
+zero za.b[w11, 4:7, vg]
+zero za.h[w9, 0:3, vgx3]
+zero za.q[w10, 4]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-5.d b/gas/testsuite/gas/aarch64/sme2p1-5.d
new file mode 100644
index 0000000..f63a171
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-5.d
@@ -0,0 +1,54 @@
+#name: Test of SME2.1 ZERO instructions.
+#as: -march=armv9.4-a+sme2p1
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: c00c0000 zero za.d\[w8, 0, vgx2\]
+.*: c00c6000 zero za.d\[w11, 0, vgx2\]
+.*: c00c0007 zero za.d\[w8, 7, vgx2\]
+.*: c00c6007 zero za.d\[w11, 7, vgx2\]
+.*: c00c2004 zero za.d\[w9, 4, vgx2\]
+.*: c00c4003 zero za.d\[w10, 3, vgx2\]
+.*: c00e0000 zero za.d\[w8, 0, vgx4\]
+.*: c00e6000 zero za.d\[w11, 0, vgx4\]
+.*: c00e0007 zero za.d\[w8, 7, vgx4\]
+.*: c00e6007 zero za.d\[w11, 7, vgx4\]
+.*: c00e2004 zero za.d\[w9, 4, vgx4\]
+.*: c00e4003 zero za.d\[w10, 3, vgx4\]
+.*: c00c8000 zero za.d\[w8, 0:1\]
+.*: c00ce000 zero za.d\[w11, 0:1\]
+.*: c00c8007 zero za.d\[w8, 14:15\]
+.*: c00ce007 zero za.d\[w11, 14:15\]
+.*: c00ca001 zero za.d\[w9, 2:3\]
+.*: c00cc003 zero za.d\[w10, 6:7\]
+.*: c00d0000 zero za.d\[w8, 0:1, vgx2\]
+.*: c00d6000 zero za.d\[w11, 0:1, vgx2\]
+.*: c00d0003 zero za.d\[w8, 6:7, vgx2\]
+.*: c00d2001 zero za.d\[w9, 2:3, vgx2\]
+.*: c00d8000 zero za.d\[w8, 0:1, vgx4\]
+.*: c00de000 zero za.d\[w11, 0:1, vgx4\]
+.*: c00d8003 zero za.d\[w8, 6:7, vgx4\]
+.*: c00da001 zero za.d\[w9, 2:3, vgx4\]
+.*: c00e8000 zero za.d\[w8, 0:3\]
+.*: c00ee000 zero za.d\[w11, 0:3\]
+.*: c00e8002 zero za.d\[w8, 8:11\]
+.*: c00ee002 zero za.d\[w11, 8:11\]
+.*: c00ea001 zero za.d\[w9, 4:7\]
+.*: c00ec000 zero za.d\[w10, 0:3\]
+.*: c00f0000 zero za.d\[w8, 0:3, vgx2\]
+.*: c00f6000 zero za.d\[w11, 0:3, vgx2\]
+.*: c00f0001 zero za.d\[w8, 4:7, vgx2\]
+.*: c00f6001 zero za.d\[w11, 4:7, vgx2\]
+.*: c00f2000 zero za.d\[w9, 0:3, vgx2\]
+.*: c00f4001 zero za.d\[w10, 4:7, vgx2\]
+.*: c00f8000 zero za.d\[w8, 0:3, vgx4\]
+.*: c00fe000 zero za.d\[w11, 0:3, vgx4\]
+.*: c00f8001 zero za.d\[w8, 4:7, vgx4\]
+.*: c00fe001 zero za.d\[w11, 4:7, vgx4\]
+.*: c00fa000 zero za.d\[w9, 0:3, vgx4\]
+.*: c00fc001 zero za.d\[w10, 4:7, vgx4\]
diff --git a/gas/testsuite/gas/aarch64/sme2p1-5.s b/gas/testsuite/gas/aarch64/sme2p1-5.s
new file mode 100644
index 0000000..bd25682
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sme2p1-5.s
@@ -0,0 +1,54 @@
+/* ZERO (single-vector). */
+zero za.d[w8, 0, vgx2]
+zero za.d[w11, 0, vgx2]
+zero za.d[w8, 7, vgx2]
+zero za.d[w11, 7, vgx2]
+zero za.d[w9, 4, vgx2]
+zero za.d[w10, 3, vgx2]
+
+zero za.d[w8, 0, vgx4]
+zero za.d[w11, 0, vgx4]
+zero za.d[w8, 7, vgx4]
+zero za.d[w11, 7, vgx4]
+zero za.d[w9, 4, vgx4]
+zero za.d[w10, 3, vgx4]
+
+/* ZERO (double-vector). */
+zero za.d[w8, 0:1]
+zero za.d[w11, 0:1]
+zero za.d[w8, 14:15]
+zero za.d[w11, 14:15]
+zero za.d[w9, 2:3]
+zero za.d[w10, 6:7]
+
+zero za.d[w8, 0:1, vgx2]
+zero za.d[w11, 0:1, vgx2]
+zero za.d[w8, 6:7, vgx2]
+zero za.d[w9, 2:3, vgx2]
+
+zero za.d[w8, 0:1, vgx4]
+zero za.d[w11, 0:1, vgx4]
+zero za.d[w8, 6:7, vgx4]
+zero za.d[w9, 2:3, vgx4]
+
+/* ZERO (quad-vector). */
+zero za.d[w8, 0:3]
+zero za.d[w11, 0:3]
+zero za.d[w8, 8:11]
+zero za.d[w11, 8:11]
+zero za.d[w9, 4:7]
+zero za.d[w10, 0:3]
+
+zero za.d[w8, 0:3, vgx2]
+zero za.d[w11, 0:3, vgx2]
+zero za.d[w8, 4:7, vgx2]
+zero za.d[w11, 4:7, vgx2]
+zero za.d[w9, 0:3, vgx2]
+zero za.d[w10, 4:7, vgx2]
+
+zero za.d[w8, 0:3, vgx4]
+zero za.d[w11, 0:3, vgx4]
+zero za.d[w8, 4:7, vgx4]
+zero za.d[w11, 4:7, vgx4]
+zero za.d[w9, 0:3, vgx4]
+zero za.d[w10, 4:7, vgx4]
diff --git a/gas/testsuite/gas/aarch64/sve2p1-5-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-5-invalid.d
new file mode 100644
index 0000000..d28b059
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-5-invalid.d
@@ -0,0 +1,3 @@
+#name: Test of illegal SVE2.1 orqv instruction.
+#as: -march=armv9.4-a
+#error_output: sve2p1-5-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sve2p1-5-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-5-invalid.l
new file mode 100644
index 0000000..4cd7502
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-5-invalid.l
@@ -0,0 +1,27 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `orqv v0.8h,p0,z0.b'
+.*: Info: did you mean this\?
+.*: Info: orqv v0.16b, p0, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: orqv v0.8h, p0, z0.h
+.*: Info: orqv v0.4s, p0, z0.s
+.*: Info: orqv v0.2d, p0, z0.d
+.*: Error: p0-p7 expected at operand 2 -- `orqv v31.16b,p8,z0.b'
+.*: Error: operand mismatch -- `orqv v0.2d,p7,z0.b'
+.*: Info: did you mean this\?
+.*: Info: orqv v0.16b, p7, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: orqv v0.8h, p7, z0.h
+.*: Info: orqv v0.4s, p7, z0.s
+.*: Info: orqv v0.2d, p7, z0.d
+.*: Error: bad vector arrangement type at operand 1 -- `orqv v0.2b,p7,z0.b'
+.*: Error: indexed vector register expected at operand 1 -- `orqv v0.b,p0,z0.16b'
+.*: Error: unexpected character `8' in element size at operand 3 -- `orqv v0.4h,p0,z0.8h'
+.*: Error: unexpected character `4' in element size at operand 3 -- `orqv v0.4s,p8/m,z0.4s'
+.*: Error: operand mismatch -- `orqv v0.2d,p0/z,z0.d'
+.*: Info: did you mean this\?
+.*: Info: orqv v0.2d, p0, z0.d
+.*: Info: other valid variant\(s\):
+.*: Info: orqv v0.16b, p0, z0.b
+.*: Info: orqv v0.8h, p0, z0.h
+.*: Info: orqv v0.4s, p0, z0.s
diff --git a/gas/testsuite/gas/aarch64/sve2p1-5-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-5-invalid.s
new file mode 100644
index 0000000..36edb87
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-5-invalid.s
@@ -0,0 +1,8 @@
+orqv v0.8h, p0, z0.b
+orqv v31.16b, p8, z0.b
+orqv v0.2d, p7, z0.b
+orqv v0.2b, p7, z0.b
+orqv v0.b, p0, z0.16b
+orqv v0.4h, p0, z0.8h
+orqv v0.4s, p8/m, z0.4s
+orqv v0.2d, p0/z, z0.d
diff --git a/gas/testsuite/gas/aarch64/sve2p1-5.d b/gas/testsuite/gas/aarch64/sve2p1-5.d
new file mode 100644
index 0000000..f581e34
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-5.d
@@ -0,0 +1,18 @@
+#name: Test of SVE2.1 orqv instruction.
+#as: -march=armv9.4-a
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: 041c2000 orqv v0.16b, p0, z0.b
+.*: 041c201f orqv v31.16b, p0, z0.b
+.*: 04dc2000 orqv v0.2d, p0, z0.d
+.*: 041c3c00 orqv v0.16b, p7, z0.b
+.*: 041c23e0 orqv v0.16b, p0, z31.b
+.*: 04dc3fff orqv v31.2d, p7, z31.d
+.*: 045c35ef orqv v15.8h, p5, z15.h
+.*: 049c2e8a orqv v10.4s, p3, z20.s
diff --git a/gas/testsuite/gas/aarch64/sve2p1-5.s b/gas/testsuite/gas/aarch64/sve2p1-5.s
new file mode 100644
index 0000000..12f0b85
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-5.s
@@ -0,0 +1,8 @@
+orqv v0.16b, p0, z0.b
+orqv v31.16b, p0, z0.b
+orqv v0.2d, p0, z0.d
+orqv v0.16b, p7, z0.b
+orqv v0.16b, p0, z31.b
+orqv v31.2d, p7, z31.d
+orqv v15.8h, p5, z15.h
+orqv v10.4s, p3, z20.s
diff --git a/gas/testsuite/gas/aarch64/sve2p1-6-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.d
new file mode 100644
index 0000000..437f810
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.d
@@ -0,0 +1,3 @@
+#name: Test of illegal SVE2.1 tblq, tbxq, uzpq[1-2] and zipq[1-2] instruction.
+#as: -march=armv9.4-a
+#error_output: sve2p1-6-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sve2p1-6-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.l
new file mode 100644
index 0000000..f37a3a0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.l
@@ -0,0 +1,78 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `tblq z0.s,{z0.b},z0.b'
+.*: Info: did you mean this\?
+.*: Info: tblq z0.b, {z0.b}, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: tblq z0.h, {z0.h}, z0.h
+.*: Info: tblq z0.s, {z0.s}, z0.s
+.*: Info: tblq z0.d, {z0.d}, z0.d
+.*: Error: expected a single-register list at operand 2 -- `tblq z0.s,{z0.s,z1.s},z0.s'
+.*: Error: expected a single-register list at operand 2 -- `tblq z0.s,{z0.s-z1.s},z0.s'
+.*: Error: operand mismatch -- `tblq z0.s,{z31.s},z0.b'
+.*: Info: did you mean this\?
+.*: Info: tblq z0.s, {z31.s}, z0.s
+.*: Info: other valid variant\(s\):
+.*: Info: tblq z0.b, {z31.b}, z0.b
+.*: Info: tblq z0.h, {z31.h}, z0.h
+.*: Info: tblq z0.d, {z31.d}, z0.d
+.*: Error: expected an SVE vector register at operand 3 -- `tblq z0.b,{z0.b},{z31.b}'
+.*: Error: expected an SVE vector register at operand 2 -- `tbxq z0.s,{z0.b},z0.b'
+.*: Error: operand mismatch -- `tbxq z31.s,z0.b,z0.h'
+.*: Info: did you mean this\?
+.*: Info: tbxq z31.b, z0.b, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: tbxq z31.h, z0.h, z0.h
+.*: Info: tbxq z31.s, z0.s, z0.s
+.*: Info: tbxq z31.d, z0.d, z0.d
+.*: Error: expected an SVE vector register at operand 2 -- `tbxq z0.s,{z0.s,z1.s},z0.s'
+.*: Error: expected an SVE vector register at operand 2 -- `tbxq z0.h,{z0.h-z1.h},z0.h'
+.*: Error: expected an SVE vector register at operand 1 -- `tbxq {z0.s},z31.s,z0.b'
+.*: Error: expected an SVE vector register at operand 2 -- `tbxq z0.b,{z0.b},{z31.b}'
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq1 z0.s,{z0.b},z0.b'
+.*: Error: operand mismatch -- `uzpq1 z31.s,z0.b,z0.h'
+.*: Info: did you mean this\?
+.*: Info: uzpq1 z31.b, z0.b, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: uzpq1 z31.h, z0.h, z0.h
+.*: Info: uzpq1 z31.s, z0.s, z0.s
+.*: Info: uzpq1 z31.d, z0.d, z0.d
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq1 z0.s,{z0.s,z1.s},z0.s'
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq1 z0.h,{z0.h-z1.h},z0.h'
+.*: Error: expected an SVE vector register at operand 1 -- `uzpq1 {z0.s},z31.s,z0.b'
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq1 z0.b,{z0.b},{z31.b}'
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq2 z0.s,{z0.b},z0.b'
+.*: Error: operand mismatch -- `uzpq2 z31.s,z0.b,z0.h'
+.*: Info: did you mean this\?
+.*: Info: uzpq2 z31.b, z0.b, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: uzpq2 z31.h, z0.h, z0.h
+.*: Info: uzpq2 z31.s, z0.s, z0.s
+.*: Info: uzpq2 z31.d, z0.d, z0.d
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq2 z0.s,{z0.s,z1.s},z0.s'
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq2 z0.h,{z0.h-z1.h},z0.h'
+.*: Error: expected an SVE vector register at operand 1 -- `uzpq2 {z0.s},z31.s,z0.b'
+.*: Error: expected an SVE vector register at operand 2 -- `uzpq2 z0.b,{z0.b},{z31.b}'
+.*: Error: expected an SVE vector register at operand 2 -- `zipq1 z0.s,{z0.b},z0.b'
+.*: Error: operand mismatch -- `zipq1 z31.s,z0.b,z0.h'
+.*: Info: did you mean this\?
+.*: Info: zipq1 z31.b, z0.b, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: zipq1 z31.h, z0.h, z0.h
+.*: Info: zipq1 z31.s, z0.s, z0.s
+.*: Info: zipq1 z31.d, z0.d, z0.d
+.*: Error: expected an SVE vector register at operand 2 -- `zipq1 z0.s,{z0.s,z1.s},z0.s'
+.*: Error: expected an SVE vector register at operand 2 -- `zipq1 z0.h,{z0.b-z1.h},z0.h'
+.*: Error: expected an SVE vector register at operand 1 -- `zipq1 {z0.s},z31.s,z0.b'
+.*: Error: expected an SVE vector register at operand 2 -- `zipq1 z0.b,{z0.b},{z31.b}'
+.*: Error: expected an SVE vector register at operand 2 -- `zipq2 z0.s,{z0.b},z0.b'
+.*: Error: operand mismatch -- `zipq2 z31.s,z0.b,z0.h'
+.*: Info: did you mean this\?
+.*: Info: zipq2 z31.b, z0.b, z0.b
+.*: Info: other valid variant\(s\):
+.*: Info: zipq2 z31.h, z0.h, z0.h
+.*: Info: zipq2 z31.s, z0.s, z0.s
+.*: Info: zipq2 z31.d, z0.d, z0.d
+.*: Error: expected an SVE vector register at operand 2 -- `zipq2 z0.s,{z0.s,z1.s},z0.s'
+.*: Error: expected an SVE vector register at operand 2 -- `zipq2 z0.h,{z0.b-z1.h},z0.h'
+.*: Error: expected an SVE vector register at operand 1 -- `zipq2 {z0.s},z31.s,z0.b'
+.*: Error: expected an SVE vector register at operand 2 -- `zipq2 z0.b,{z0.b},{z31.b}'
diff --git a/gas/testsuite/gas/aarch64/sve2p1-6-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.s
new file mode 100644
index 0000000..7d3209e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.s
@@ -0,0 +1,36 @@
+tblq z0.s, {z0.b}, z0.b
+tblq z31.b, z0.b, z0.b
+tblq z0.s, {z0.s, z1.s}, z0.s
+tblq z0.s, {z0.s - z1.s}, z0.s
+tblq z0.s, {z31.s}, z0.b
+tblq z0.b, {z0.b}, {z31.b}
+tbxq z0.s, {z0.b}, z0.b
+tbxq z31.s, z0.b, z0.h
+tbxq z0.s, {z0.s, z1.s}, z0.s
+tbxq z0.h, {z0.h - z1.h}, z0.h
+tbxq {z0.s}, z31.s, z0.b
+tbxq z0.b, {z0.b}, {z31.b}
+uzpq1 z0.s, {z0.b}, z0.b
+uzpq1 z31.s, z0.b, z0.h
+uzpq1 z0.s, {z0.s, z1.s}, z0.s
+uzpq1 z0.h, {z0.h - z1.h}, z0.h
+uzpq1 {z0.s}, z31.s, z0.b
+uzpq1 z0.b, {z0.b}, {z31.b}
+uzpq2 z0.s, {z0.b}, z0.b
+uzpq2 z31.s, z0.b, z0.h
+uzpq2 z0.s, {z0.s, z1.s}, z0.s
+uzpq2 z0.h, {z0.h - z1.h}, z0.h
+uzpq2 {z0.s}, z31.s, z0.b
+uzpq2 z0.b, {z0.b}, {z31.b}
+zipq1 z0.s, {z0.b}, z0.b
+zipq1 z31.s, z0.b, z0.h
+zipq1 z0.s, {z0.s, z1.s}, z0.s
+zipq1 z0.h, {z0.b - z1.h}, z0.h
+zipq1 {z0.s}, z31.s, z0.b
+zipq1 z0.b, {z0.b}, {z31.b}
+zipq2 z0.s, {z0.b}, z0.b
+zipq2 z31.s, z0.b, z0.h
+zipq2 z0.s, {z0.s, z1.s}, z0.s
+zipq2 z0.h, {z0.b - z1.h}, z0.h
+zipq2 {z0.s}, z31.s, z0.b
+zipq2 z0.b, {z0.b}, {z31.b}
diff --git a/gas/testsuite/gas/aarch64/sve2p1-6.d b/gas/testsuite/gas/aarch64/sve2p1-6.d
new file mode 100644
index 0000000..42d1ee4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-6.d
@@ -0,0 +1,58 @@
+#name: Test of SVE2.1 tblq, tbxq, uzpq[1-2] and zipq[1-2] instruction.
+#as: -march=armv9.4-a
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: 4400f800 tblq z0.b, {z0.b}, z0.b
+.*: 4400f81f tblq z31.b, {z0.b}, z0.b
+.*: 44c0f800 tblq z0.d, {z0.d}, z0.d
+.*: 4400fbe0 tblq z0.b, {z31.b}, z0.b
+.*: 441ff800 tblq z0.b, {z0.b}, z31.b
+.*: 44dffbff tblq z31.d, {z31.d}, z31.d
+.*: 444ff945 tblq z5.h, {z10.h}, z15.h
+.*: 4487f861 tblq z1.s, {z3.s}, z7.s
+.*: 05203400 tbxq z0.b, z0.b, z0.b
+.*: 0520341f tbxq z31.b, z0.b, z0.b
+.*: 05e03400 tbxq z0.d, z0.d, z0.d
+.*: 052037e0 tbxq z0.b, z31.b, z0.b
+.*: 053f3400 tbxq z0.b, z0.b, z31.b
+.*: 05ff37ff tbxq z31.d, z31.d, z31.d
+.*: 05af3545 tbxq z5.s, z10.s, z15.s
+.*: 057435ea tbxq z10.h, z15.h, z20.h
+.*: 4400e800 uzpq1 z0.b, z0.b, z0.b
+.*: 4400e81f uzpq1 z31.b, z0.b, z0.b
+.*: 44c0e800 uzpq1 z0.d, z0.d, z0.d
+.*: 4400ebe0 uzpq1 z0.b, z31.b, z0.b
+.*: 441fe800 uzpq1 z0.b, z0.b, z31.b
+.*: 44dfebff uzpq1 z31.d, z31.d, z31.d
+.*: 448fe945 uzpq1 z5.s, z10.s, z15.s
+.*: 4454e9ea uzpq1 z10.h, z15.h, z20.h
+.*: 4400ec00 uzpq2 z0.b, z0.b, z0.b
+.*: 4400ec1f uzpq2 z31.b, z0.b, z0.b
+.*: 44c0ec00 uzpq2 z0.d, z0.d, z0.d
+.*: 4400efe0 uzpq2 z0.b, z31.b, z0.b
+.*: 441fec00 uzpq2 z0.b, z0.b, z31.b
+.*: 44dfefff uzpq2 z31.d, z31.d, z31.d
+.*: 448fed45 uzpq2 z5.s, z10.s, z15.s
+.*: 4454edea uzpq2 z10.h, z15.h, z20.h
+.*: 4400e000 zipq1 z0.b, z0.b, z0.b
+.*: 4400e01f zipq1 z31.b, z0.b, z0.b
+.*: 44c0e000 zipq1 z0.d, z0.d, z0.d
+.*: 4400e3e0 zipq1 z0.b, z31.b, z0.b
+.*: 441fe000 zipq1 z0.b, z0.b, z31.b
+.*: 44dfe3ff zipq1 z31.d, z31.d, z31.d
+.*: 448fe145 zipq1 z5.s, z10.s, z15.s
+.*: 4454e1ea zipq1 z10.h, z15.h, z20.h
+.*: 4400e400 zipq2 z0.b, z0.b, z0.b
+.*: 4400e41f zipq2 z31.b, z0.b, z0.b
+.*: 44c0e400 zipq2 z0.d, z0.d, z0.d
+.*: 4400e7e0 zipq2 z0.b, z31.b, z0.b
+.*: 441fe400 zipq2 z0.b, z0.b, z31.b
+.*: 44dfe7ff zipq2 z31.d, z31.d, z31.d
+.*: 448fe545 zipq2 z5.s, z10.s, z15.s
+.*: 4454e5ea zipq2 z10.h, z15.h, z20.h
diff --git a/gas/testsuite/gas/aarch64/sve2p1-6.s b/gas/testsuite/gas/aarch64/sve2p1-6.s
new file mode 100644
index 0000000..f61cd82
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-6.s
@@ -0,0 +1,53 @@
+tblq z0.b, {z0.b}, z0.b
+tblq z31.b, {z0.b}, z0.b
+tblq z0.d, {z0.d}, z0.d
+tblq z0.b, {z31.b}, z0.b
+tblq z0.b, {z0.b}, z31.b
+tblq z31.d, {z31.d}, z31.d
+tblq z5.h, {z10.h}, z15.h
+tblq z1.s, {z3.s}, z7.s
+
+tbxq z0.b, z0.b, z0.b
+tbxq z31.b, z0.b, z0.b
+tbxq z0.d, z0.d, z0.d
+tbxq z0.b, z31.b, z0.b
+tbxq z0.b, z0.b, z31.b
+tbxq z31.d, z31.d, z31.d
+tbxq z5.s, z10.s, z15.s
+tbxq z10.h, z15.h, z20.h
+
+uzpq1 z0.b, z0.b, z0.b
+uzpq1 z31.b, z0.b, z0.b
+uzpq1 z0.d, z0.d, z0.d
+uzpq1 z0.b, z31.b, z0.b
+uzpq1 z0.b, z0.b, z31.b
+uzpq1 z31.d, z31.d, z31.d
+uzpq1 z5.s, z10.s, z15.s
+uzpq1 z10.h, z15.h, z20.h
+
+uzpq2 z0.b, z0.b, z0.b
+uzpq2 z31.b, z0.b, z0.b
+uzpq2 z0.d, z0.d, z0.d
+uzpq2 z0.b, z31.b, z0.b
+uzpq2 z0.b, z0.b, z31.b
+uzpq2 z31.d, z31.d, z31.d
+uzpq2 z5.s, z10.s, z15.s
+uzpq2 z10.h, z15.h, z20.h
+
+zipq1 z0.b, z0.b, z0.b
+zipq1 z31.b, z0.b, z0.b
+zipq1 z0.d, z0.d, z0.d
+zipq1 z0.b, z31.b, z0.b
+zipq1 z0.b, z0.b, z31.b
+zipq1 z31.d, z31.d, z31.d
+zipq1 z5.s, z10.s, z15.s
+zipq1 z10.h, z15.h, z20.h
+
+zipq2 z0.b, z0.b, z0.b
+zipq2 z31.b, z0.b, z0.b
+zipq2 z0.d, z0.d, z0.d
+zipq2 z0.b, z31.b, z0.b
+zipq2 z0.b, z0.b, z31.b
+zipq2 z31.d, z31.d, z31.d
+zipq2 z5.s, z10.s, z15.s
+zipq2 z10.h, z15.h, z20.h
diff --git a/gas/testsuite/gas/aarch64/sve2p1-7-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-7-invalid.d
new file mode 100644
index 0000000..ddf2ccb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-7-invalid.d
@@ -0,0 +1,3 @@
+#name: Test of illegal pmov instruction.
+#as: -march=armv9.4-a
+#error_output: sve2p1-7-invalid.l
diff --git a/gas/testsuite/gas/aarch64/sve2p1-7-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-7-invalid.l
new file mode 100644
index 0000000..4559f6f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-7-invalid.l
@@ -0,0 +1,118 @@
+.*: Assembler messages:
+.*: Error: operand mismatch -- `pmov p0,z0'
+.*: Info: did you mean this\?
+.*: Info: pmov p0.h, z0
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov p16.b,z0'
+.*: Error: register element index must be 0 at operand 2 -- `pmov p0.b,z31\[1\]'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.b'
+.*: Error: operand mismatch -- `pmov p15,z31.b\[4\]'
+.*: Info: did you mean this\?
+.*: Info: pmov p15.h, z31\[4\]
+.*: Error: operand mismatch -- `pmov p7,z15.b'
+.*: Info: did you mean this\?
+.*: Info: pmov p7.h, z15
+.*: Error: expected an SVE predicate register at operand 2 -- `mov p7,w15.b'
+.*: Error: expected an SVE predicate register at operand 2 -- `mov p7.b,x15'
+.*: Error: operand mismatch -- `pmov p0,z0\[3\]'
+.*: Info: did you mean this\?
+.*: Info: pmov p0.h, z0\[3\]
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov p16.h,z0'
+.*: Error: register element index out of range 0 to 1 at operand 2 -- `pmov p0.h,z31\[2\]'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.h'
+.*: Error: operand mismatch -- `pmov p15,z31.h\[4\]'
+.*: Info: did you mean this\?
+.*: Info: pmov p15.h, z31\[4\]
+.*: Error: operand mismatch -- `pmov p7.h,z15.h'
+.*: Info: did you mean this\?
+.*: Info: pmov p7.h, z15
+.*: Error: expected an SVE vector register at operand 2 -- `pmov p7.h,x15.h'
+.*: Error: expected an SVE vector register at operand 2 -- `pmov p7.h,w15'
+.*: Error: operand mismatch -- `pmov p0,z0\[4\]'
+.*: Info: did you mean this\?
+.*: Info: pmov p0.h, z0\[4\]
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov p16.s,z0'
+.*: Error: register element index out of range 0 to 3 at operand 2 -- `pmov p0.s,z31\[5\]'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.s'
+.*: Error: operand mismatch -- `pmov p15,z31.s\[6\]'
+.*: Info: did you mean this\?
+.*: Info: pmov p15.h, z31\[6\]
+.*: Error: operand mismatch -- `pmov p7.s,z15.s'
+.*: Info: did you mean this\?
+.*: Info: pmov p7.s, z15
+.*: Error: expected an SVE vector register at operand 2 -- `pmov p7.s,w15.s'
+.*: Error: expected an SVE vector register at operand 2 -- `pmov p7.s,x15'
+.*: Error: operand mismatch -- `pmov p0,z0\[8\]'
+.*: Info: did you mean this\?
+.*: Info: pmov p0.h, z0\[8\]
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov p16.d,z0'
+.*: Error: register element index out of range 0 to 7 at operand 2 -- `pmov p0.d,z31\[10\]'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.d'
+.*: Error: operand mismatch -- `pmov p15,z31.d\[12\]'
+.*: Info: did you mean this\?
+.*: Info: pmov p15.h, z31\[12\]
+.*: Error: operand mismatch -- `pmov p7.d,z15.d'
+.*: Info: did you mean this\?
+.*: Info: pmov p7.d, z15
+.*: Error: expected an SVE vector register at operand 2 -- `pmov p7.d,x15.d'
+.*: Error: expected an SVE vector register at operand 2 -- `pmov p7.d,w15'
+.*: Error: operand mismatch -- `pmov z0,p0'
+.*: Info: did you mean this\?
+.*: Info: pmov z0, p0.b
+.*: Error: expected an SVE predicate register at operand 2 -- `pmov z0,p16.b'
+.*: Error: register element index must be 0 at operand 1 -- `pmov z31\[1\],p0.b'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.b'
+.*: Error: operand mismatch -- `pmov z31.b\[4\],p15'
+.*: Info: did you mean this\?
+.*: Info: pmov z31\[4\], p15.b
+.*: Error: operand mismatch -- `pmov z15.b,p7.b'
+.*: Info: did you mean this\?
+.*: Info: pmov z15, p7.b
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov x15.b,p7.b'
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov w15.b,p7'
+.*: Error: operand mismatch -- `pmov z0\[3\],p0'
+.*: Info: did you mean this\?
+.*: Info: pmov z0\[3\], p0.b
+.*: Error: expected an SVE predicate register at operand 2 -- `pmov z0,p16.h'
+.*: Error: register element index out of range 0 to 1 at operand 1 -- `pmov z31\[2\],p0.h'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.h'
+.*: Error: operand mismatch -- `pmov z31.h\[5\],p15'
+.*: Info: did you mean this\?
+.*: Info: pmov z31\[5\], p15.b
+.*: Error: operand mismatch -- `pmov z15,p7'
+.*: Info: did you mean this\?
+.*: Info: pmov z15, p7.b
+.*: Error: operand mismatch -- `pmov z8.h,p7.h'
+.*: Info: did you mean this\?
+.*: Info: pmov z8, p7.h
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov x8.h,p7.h'
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov w8.h,p7'
+.*: Error: register element index out of range 0 to 3 at operand 1 -- `pmov z0\[5\],p0.s'
+.*: Error: expected an SVE predicate register at operand 2 -- `pmov z0,p16.s'
+.*: Error: register element index out of range 0 to 3 at operand 1 -- `pmov z31\[6\],p0.s'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.s'
+.*: Error: operand mismatch -- `pmov z31.s\[7\],p15'
+.*: Info: did you mean this\?
+.*: Info: pmov z31\[7\], p15.b
+.*: Error: operand mismatch -- `pmov z15,p7'
+.*: Info: did you mean this\?
+.*: Info: pmov z15, p7.b
+.*: Error: operand mismatch -- `pmov z8.s,p7.s'
+.*: Info: did you mean this\?
+.*: Info: pmov z8, p7.s
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov x8.s,p7.s'
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov w8.s,p7'
+.*: Error: register element index out of range 0 to 7 at operand 1 -- `pmov z0\[8\],p0.d'
+.*: Error: expected an SVE predicate register at operand 2 -- `pmov z0,p16.d'
+.*: Error: register element index out of range 0 to 7 at operand 1 -- `pmov z31\[9\],p0.d'
+.*: Error: comma expected between operands at operand 2 -- `pmov p15.d'
+.*: Error: operand mismatch -- `pmov z31.d\[10\],p15'
+.*: Info: did you mean this\?
+.*: Info: pmov z31\[10\], p15.b
+.*: Error: operand mismatch -- `pmov z15,p7'
+.*: Info: did you mean this\?
+.*: Info: pmov z15, p7.b
+.*: Error: operand mismatch -- `pmov z8.d,p7.d'
+.*: Info: did you mean this\?
+.*: Info: pmov z8, p7.d
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov w8.d,p7.d'
+.*: Error: expected an SVE vector or predicate register at operand 1 -- `pmov x8.d,p7'
diff --git a/gas/testsuite/gas/aarch64/sve2p1-7-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-7-invalid.s
new file mode 100644
index 0000000..b83ef36
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-7-invalid.s
@@ -0,0 +1,76 @@
+/* PMOV (to predicate). */
+pmov p0, z0
+pmov p16.b, z0
+pmov p0.b, z31[1]
+pmov p15.b
+pmov p15, z31.b[4]
+pmov p7, z15.b
+mov p7, w15.b
+mov p7.b, x15
+
+pmov p0, z0[3]
+pmov p16.h, z0
+pmov p0.h, z31[2]
+pmov p15.h
+pmov p15, z31.h[4]
+pmov p7.h, z15.h
+pmov p7.h, x15.h
+pmov p7.h, w15
+
+pmov p0, z0[4]
+pmov p16.s, z0
+pmov p0.s, z31[5]
+pmov p15.s
+pmov p15, z31.s[6]
+pmov p7.s, z15.s
+pmov p7.s, w15.s
+pmov p7.s, x15
+
+pmov p0, z0[8]
+pmov p16.d, z0
+pmov p0.d, z31[10]
+pmov p15.d
+pmov p15, z31.d[12]
+pmov p7.d, z15.d
+pmov p7.d, x15.d
+pmov p7.d, w15
+
+/* PMOV (to vector). */
+pmov z0, p0
+pmov z0, p16.b
+pmov z31[1], p0.b
+pmov p15.b
+pmov z31.b[4], p15
+pmov z15.b, p7.b
+pmov x15.b, p7.b
+pmov w15.b, p7
+
+pmov z0[3], p0
+pmov z0, p16.h
+pmov z31[2], p0.h
+pmov p15.h
+pmov z31.h[5], p15
+pmov z15, p7
+pmov z8.h, p7.h
+pmov x8.h, p7.h
+pmov w8.h, p7
+
+pmov z0[5], p0.s
+pmov z0, p16.s
+pmov z31[6], p0.s
+pmov p15.s
+pmov z31.s[7], p15
+pmov z15, p7
+pmov z8.s, p7.s
+pmov x8.s, p7.s
+pmov w8.s, p7
+
+pmov z0[8], p0.d
+pmov z0, p16.d
+pmov z31[9], p0.d
+pmov p15.d
+pmov z31.d[10], p15
+pmov z15, p7
+pmov z8.d, p7.d
+pmov w8.d, p7.d
+pmov x8.d, p7
diff --git a/gas/testsuite/gas/aarch64/sve2p1-7.d b/gas/testsuite/gas/aarch64/sve2p1-7.d
new file mode 100644
index 0000000..6bd1a22a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-7.d
@@ -0,0 +1,64 @@
+#name: Test of SVE2.1 pmov instruction.
+#as: -march=armv9.4-a
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: 052a3800 pmov p0.b, z0
+.*: 052a380f pmov p15.b, z0
+.*: 052a3be0 pmov p0.b, z31
+.*: 052a3bef pmov p15.b, z31
+.*: 052a3bef pmov p15.b, z31
+.*: 052a39e7 pmov p7.b, z15
+.*: 052c3800 pmov p0.h, z0
+.*: 052c380f pmov p15.h, z0
+.*: 052c3be0 pmov p0.h, z31
+.*: 052e3800 pmov p0.h, z0\[1\]
+.*: 052e3bef pmov p15.h, z31\[1\]
+.*: 052c39e7 pmov p7.h, z15
+.*: 052c3903 pmov p3.h, z8
+.*: 05683800 pmov p0.s, z0
+.*: 0568380f pmov p15.s, z0
+.*: 05683be0 pmov p0.s, z31
+.*: 056e3800 pmov p0.s, z0\[3\]
+.*: 056e3bef pmov p15.s, z31\[3\]
+.*: 056a39e7 pmov p7.s, z15\[1\]
+.*: 05683903 pmov p3.s, z8
+.*: 05a83800 pmov p0.d, z0
+.*: 05a8380f pmov p15.d, z0
+.*: 05a83be0 pmov p0.d, z31
+.*: 05ee3800 pmov p0.d, z0\[7\]
+.*: 05ee3bef pmov p15.d, z31\[7\]
+.*: 05ae39e7 pmov p7.d, z15\[3\]
+.*: 05a83903 pmov p3.d, z8
+.*: 052b3800 pmov z0, p0.b
+.*: 052b381f pmov z31, p0.b
+.*: 052b39e0 pmov z0, p15.b
+.*: 052b39ff pmov z31, p15.b
+.*: 052b38e0 pmov z0, p7.b
+.*: 052b38ef pmov z15, p7.b
+.*: 052d3800 pmov z0, p0.h
+.*: 052d381f pmov z31, p0.h
+.*: 052f3800 pmov z0\[1\], p0.h
+.*: 052d39e0 pmov z0, p15.h
+.*: 052f39ff pmov z31\[1\], p15.h
+.*: 052d39ef pmov z15, p15.h
+.*: 052d38e8 pmov z8, p7.h
+.*: 05693800 pmov z0, p0.s
+.*: 0569381f pmov z31, p0.s
+.*: 056f3800 pmov z0\[3\], p0.s
+.*: 056939e0 pmov z0, p15.s
+.*: 056f39ff pmov z31\[3\], p15.s
+.*: 056d39ef pmov z15\[2\], p15.s
+.*: 056938e8 pmov z8, p7.s
+.*: 05a93800 pmov z0, p0.d
+.*: 05a9381f pmov z31, p0.d
+.*: 05ef3800 pmov z0\[7\], p0.d
+.*: 05a939e0 pmov z0, p15.d
+.*: 05ef39ff pmov z31\[7\], p15.d
+.*: 05af39ef pmov z15\[3\], p15.d
+.*: 05a938e8 pmov z8, p7.d
diff --git a/gas/testsuite/gas/aarch64/sve2p1-7.s b/gas/testsuite/gas/aarch64/sve2p1-7.s
new file mode 100644
index 0000000..3d16548
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve2p1-7.s
@@ -0,0 +1,63 @@
+/* PMOV (to predicate). */
+pmov p0.b, z0
+pmov p15.b, z0
+pmov p0.b, z31
+pmov p15.b, z31
+pmov p15.b, z31[0]
+pmov p7.b, z15
+
+pmov p0.h, z0[0]
+pmov p15.h, z0[0]
+pmov p0.h, z31[0]
+pmov p0.h, z0[1]
+pmov p15.h, z31[1]
+pmov p7.h, z15[0]
+pmov p3.h, z8
+
+pmov p0.s, z0[0]
+pmov p15.s, z0[0]
+pmov p0.s, z31[0]
+pmov p0.s, z0[3]
+pmov p15.s, z31[3]
+pmov p7.s, z15[1]
+pmov p3.s, z8
+
+pmov p0.d, z0[0]
+pmov p15.d, z0[0]
+pmov p0.d, z31[0]
+pmov p0.d, z0[7]
+pmov p15.d, z31[7]
+pmov p7.d, z15[3]
+pmov p3.d, z8
+
+/* PMOV (to vector). */
+pmov z0, p0.b
+pmov z31, p0.b
+pmov z0, p15.b
+pmov z31, p15.b
+pmov z0[0], p7.b
+pmov z15[0], p7.b
+
+pmov z0[0], p0.h
+pmov z31[0], p0.h
+pmov z0[1], p0.h
+pmov z0[0], p15.h
+pmov z31[1], p15.h
+pmov z15[0], p15.h
+pmov z8, p7.h
+
+pmov z0[0], p0.s
+pmov z31[0], p0.s
+pmov z0[3], p0.s
+pmov z0[0], p15.s
+pmov z31[3], p15.s
+pmov z15[2], p15.s
+pmov z8, p7.s
+
+pmov z0[0], p0.d
+pmov z31[0], p0.d
+pmov z0[7], p0.d
+pmov z0[0], p15.d
+pmov z31[7], p15.d
+pmov z15[3], p15.d
+pmov z8, p7.d
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
new file mode 100644
index 0000000..8ad01bc
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.d
@@ -0,0 +1,3 @@
+#source: armv9_5-a-sysregs.s
+#as: -march=armv9.4-a -I$srcdir/$subdir
+#error_output: armv9_5-a-sysregs-archv9_4-unsupported.l
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l
new file mode 100644
index 0000000..58e7f9b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs-archv9_4-unsupported.l
@@ -0,0 +1,17 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'vdisr_el3'
+[^ :]+:[0-9]+: Info: macro invoked from here
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'vdisr_el3'
+[^ :]+:[0-9]+: Info: macro invoked from here
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'vsesr_el3'
+[^ :]+:[0-9]+: Info: macro invoked from here
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'vsesr_el3'
+[^ :]+:[0-9]+: Info: macro invoked from here
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'spmzr_el0'
+[^ :]+:[0-9]+: Info: macro invoked from here
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'spmzr_el0'
+[^ :]+:[0-9]+: Info: macro invoked from here
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'mdstepop_el1'
+[^ :]+:[0-9]+: Info: macro invoked from here
+[^ :]+:[0-9]+: Error: selected processor does not support system register name 'mdstepop_el1'
+[^ :]+:[0-9]+: Info: macro invoked from here \ No newline at end of file
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
new file mode 100644
index 0000000..c52142d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.d
@@ -0,0 +1,17 @@
+#source: armv9_5-a-sysregs.s
+#as: -march=armv9.5-a -I$srcdir/$subdir
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+.*: d51ec120 msr vdisr_el3, x0
+.*: d53ec120 mrs x0, vdisr_el3
+.*: d51e5260 msr vsesr_el3, x0
+.*: d53e5260 mrs x0, vsesr_el3
+.*: d5139c80 msr spmzr_el0, x0
+.*: d5339c80 mrs x0, spmzr_el0
+.*: d5100540 msr mdstepop_el1, x0
+.*: d5300540 mrs x0, mdstepop_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s
new file mode 100644
index 0000000..e3ba989
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_5-a-sysregs.s
@@ -0,0 +1,13 @@
+.include "sysreg-test-utils.inc"
+
+.text
+
+/* Delegated SError exceptions for EL3. */
+rw_sys_reg sys_reg=vdisr_el3 xreg=x0 r=1 w=1
+rw_sys_reg sys_reg=vsesr_el3 xreg=x0 r=1 w=1
+
+/* System Performance Monitors Extension version 2. */
+rw_sys_reg sys_reg=spmzr_el0 xreg=x0 r=1 w=1
+
+/* Enhanced Software Step Extension. */
+rw_sys_reg sys_reg=mdstepop_el1 xreg=x0 r=1 w=1
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sysreg.d
index 54ade34..4fa9f0d 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg.d
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg.d
@@ -11,6 +11,11 @@ Disassembly of section \.text:
.*: d53b9c60 mrs x0, pmovsclr_el0
.*: d51b9e60 msr pmovsset_el0, x0
.*: d53b9e60 mrs x0, pmovsset_el0
+.*: d5380580 mrs x0, id_aa64afr0_el1
+.*: d53805a0 mrs x0, id_aa64afr1_el1
+.*: d5380500 mrs x0, id_aa64dfr0_el1
+.*: d5380520 mrs x0, id_aa64dfr1_el1
+.*: d5380540 mrs x0, id_aa64dfr2_el1
.*: d5380140 mrs x0, id_dfr0_el1
.*: d5380100 mrs x0, id_pfr0_el1
.*: d5380120 mrs x0, id_pfr1_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg.s b/gas/testsuite/gas/aarch64/sysreg/sysreg.s
index 9c0fd4a..cf04614 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg.s
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg.s
@@ -5,6 +5,11 @@
rw_sys_reg sys_reg=pmovsclr_el0
rw_sys_reg sys_reg=pmovsset_el0
+ rw_sys_reg sys_reg=id_aa64afr0_el1 w=0
+ rw_sys_reg sys_reg=id_aa64afr1_el1 w=0
+ rw_sys_reg sys_reg=id_aa64dfr0_el1 w=0
+ rw_sys_reg sys_reg=id_aa64dfr1_el1 w=0
+ rw_sys_reg sys_reg=id_aa64dfr2_el1 w=0
rw_sys_reg sys_reg=id_dfr0_el1 w=0
rw_sys_reg sys_reg=id_pfr0_el1 w=0
rw_sys_reg sys_reg=id_pfr1_el1 w=0
diff --git a/gas/testsuite/gas/all/base64-bad.d b/gas/testsuite/gas/all/base64-bad.d
new file mode 100644
index 0000000..d613b3e
--- /dev/null
+++ b/gas/testsuite/gas/all/base64-bad.d
@@ -0,0 +1,5 @@
+#name: .base64 errors test
+#source: base64-bad.s
+#error_output: base64-bad.l
+# The Z80 backend has its own error message for an unterminated string.
+#notarget: z80-*
diff --git a/gas/testsuite/gas/all/base64-bad.l b/gas/testsuite/gas/all/base64-bad.l
new file mode 100644
index 0000000..a860a1d
--- /dev/null
+++ b/gas/testsuite/gas/all/base64-bad.l
@@ -0,0 +1,11 @@
+.*: Assembler messages:
+.*: Warning: end of file in string; '"' inserted
+.*2: Warning: .base64 string terminated early
+.*3: Error: .base64 string terminated unexpectedly
+.*4: Error: invalid character ' ' found inside .base64 string
+.*5: Error: the equals character cannot start a block of four base64 encoded bytes
+.*6: Error: the equals character cannot be the second character in a block of four base64 encoded bytes
+.*7: Error: no base64 characters expected after '=' padding characters
+.*8: Error: junk at end of line, first unrecognized character is `"'
+.*9: Error: expected double quote enclosed string as argument to .base64 pseudo-op
+.*10: Error: end of line encountered inside .base64 string
diff --git a/gas/testsuite/gas/all/base64-bad.s b/gas/testsuite/gas/all/base64-bad.s
new file mode 100644
index 0000000..99c3bc2
--- /dev/null
+++ b/gas/testsuite/gas/all/base64-bad.s
@@ -0,0 +1,10 @@
+ .data
+ .base64 "1234567"
+ .base64 "NotInASection"
+ .base64 "invalid character"
+ .base64 "===="
+ .base64 "A==="
+ .base64 "in==side"
+ .base64 "miss" "comma"
+ .base64 no quotes
+ .base64 "noclosingcomma
diff --git a/gas/testsuite/gas/all/base64.d b/gas/testsuite/gas/all/base64.d
new file mode 100644
index 0000000..5a366de
--- /dev/null
+++ b/gas/testsuite/gas/all/base64.d
@@ -0,0 +1,16 @@
+#objdump: -s -j .data
+#name : .base64 test
+
+.*: .*
+
+Contents of section \.data:
+.* 68656c6c 6f20776f 726c640a 70616464 .*
+.* 696e6720 68657265 0a001083 454c4602 .*
+.* 01010300 00000000 00000002 003e0001 .*
+.* 00000050 d3400000 00000040 00000000 .*
+.* 000000d8 204b1000 00000000 00000040 .*
+.* 0038000e 0040002c 002b0006 00000004 .*
+.* 00000040 00000000 00000040 00400000 .*
+.* 00000040 00400000 00000010 03000000 .*
+.* 00000010 03000000 00000008 00000000 .*
+.* 00000000 00000000 00000000 ( |00000000) .*
diff --git a/gas/testsuite/gas/all/base64.s b/gas/testsuite/gas/all/base64.s
new file mode 100644
index 0000000..7d1350d
--- /dev/null
+++ b/gas/testsuite/gas/all/base64.s
@@ -0,0 +1,8 @@
+ .data
+ .global hello
+hello:
+ .base64 "aGVsbG8gd29ybGQK", "cGFkZGluZyBoZXJlCg==" , "ABCD"
+
+ .global very_long
+very_long:
+ .base64 "RUxGAgEBAwAAAAAAAAAAAgA+AAEAAABQ00AAAAAAAEAAAAAAAAAA2CBLEAAAAAAAAAAAQAA4AA4AQAAsACsABgAAAAQAAABAAAAAAAAAAEAAQAAAAAAAQABAAAAAAAAQAwAAAAAAABADAAAAAAAACAAAAAAAAAAAAAAAAAAAAAA="
diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp
index d262944..24376a7 100644
--- a/gas/testsuite/gas/all/gas.exp
+++ b/gas/testsuite/gas/all/gas.exp
@@ -468,6 +468,9 @@ gas_test_error "weakref2.s" "" "e: would close weakref loop: e => a => b => c =>
gas_test_error "weakref3.s" "" "a: would close weakref loop: a => b => c => d => e => a"
gas_test_error "weakref4.s" "" "is already defined"
+run_dump_test base64
+run_dump_test base64-bad
+
run_dump_test string
if [is_elf_format] {
run_dump_test none
@@ -532,3 +535,5 @@ run_dump_test "pr27384"
run_dump_test "pr27381"
run_dump_test "multibyte1"
run_dump_test "multibyte2"
+run_list_test "multibyte3" "--multibyte-handling=warn"
+run_list_test "multibyte3" "-f --multibyte-handling=warn"
diff --git a/gas/testsuite/gas/all/multibyte3.l b/gas/testsuite/gas/all/multibyte3.l
new file mode 100644
index 0000000..9f6f8d2
--- /dev/null
+++ b/gas/testsuite/gas/all/multibyte3.l
@@ -0,0 +1,10 @@
+[^:]*: Assembler messages:
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*: Warning: multibyte character \(.*\) encountered in .*
+[^:]*:[0-9]+: Warning: end of input
diff --git a/gas/testsuite/gas/all/multibyte3.s b/gas/testsuite/gas/all/multibyte3.s
new file mode 100644
index 0000000..303acfa
--- /dev/null
+++ b/gas/testsuite/gas/all/multibyte3.s
@@ -0,0 +1,11 @@
+ .macro m
+UmlautÜ\@:
+ .endm
+
+UmlautÄ:
+ .irpc c,szß
+UmlautÖ\@\c\():
+ m
+ .endr
+
+ .warning "end of input"
diff --git a/gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s b/gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s
index ac7a90f..7799bf1 100644
--- a/gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s
+++ b/gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s
@@ -14,7 +14,7 @@
.macro ldrtest load store sym offset
- ldrtest2 \load \sym \offset
+ ldrtest2 \load \sym "\offset"
\store r0, [r0, #:pc_g1:(\sym \offset)]
\store r0, [r0, #:pc_g2:(\sym \offset)]
diff --git a/gas/testsuite/gas/arm/group-reloc-ldrs.s b/gas/testsuite/gas/arm/group-reloc-ldrs.s
index fa74e7e..96655e1 100644
--- a/gas/testsuite/gas/arm/group-reloc-ldrs.s
+++ b/gas/testsuite/gas/arm/group-reloc-ldrs.s
@@ -14,7 +14,7 @@
.macro ldrtest load store sym offset
- ldrtest2 \load \sym \offset
+ ldrtest2 \load \sym "\offset"
\store r0, [r0, #:pc_g1:(\sym \offset)]
\store r0, [r0, #:pc_g2:(\sym \offset)]
diff --git a/gas/testsuite/gas/arm/mve-vcvt-3.d b/gas/testsuite/gas/arm/mve-vcvt-3.d
index 6a2a1ff..756ff21 100644
--- a/gas/testsuite/gas/arm/mve-vcvt-3.d
+++ b/gas/testsuite/gas/arm/mve-vcvt-3.d
@@ -7,106 +7,106 @@
Disassembly of section .text:
[^>]*> ee3f 1e01 vcvtt.f16.f32 q0, q0
[^>]*> ee3f 0e01 vcvtb.f16.f32 q0, q0
+[^>]*> ee3f 1e03 vcvtt.f16.f32 q0, q1
+[^>]*> ee3f 0e03 vcvtb.f16.f32 q0, q1
[^>]*> ee3f 1e05 vcvtt.f16.f32 q0, q2
[^>]*> ee3f 0e05 vcvtb.f16.f32 q0, q2
[^>]*> ee3f 1e09 vcvtt.f16.f32 q0, q4
[^>]*> ee3f 0e09 vcvtb.f16.f32 q0, q4
-[^>]*> ee3f 1e11 @ <UNDEFINED> instruction: 0xee3f1e11
-[^>]*> ee3f 0e11 @ <UNDEFINED> instruction: 0xee3f0e11
-[^>]*> ee3f 1e1d @ <UNDEFINED> instruction: 0xee3f1e1d
-[^>]*> ee3f 0e1d @ <UNDEFINED> instruction: 0xee3f0e1d
+[^>]*> ee3f 1e0f vcvtt.f16.f32 q0, q7
+[^>]*> ee3f 0e0f vcvtb.f16.f32 q0, q7
+[^>]*> ee3f 3e01 vcvtt.f16.f32 q1, q0
+[^>]*> ee3f 2e01 vcvtb.f16.f32 q1, q0
+[^>]*> ee3f 3e03 vcvtt.f16.f32 q1, q1
+[^>]*> ee3f 2e03 vcvtb.f16.f32 q1, q1
+[^>]*> ee3f 3e05 vcvtt.f16.f32 q1, q2
+[^>]*> ee3f 2e05 vcvtb.f16.f32 q1, q2
+[^>]*> ee3f 3e09 vcvtt.f16.f32 q1, q4
+[^>]*> ee3f 2e09 vcvtb.f16.f32 q1, q4
+[^>]*> ee3f 3e0f vcvtt.f16.f32 q1, q7
+[^>]*> ee3f 2e0f vcvtb.f16.f32 q1, q7
[^>]*> ee3f 5e01 vcvtt.f16.f32 q2, q0
[^>]*> ee3f 4e01 vcvtb.f16.f32 q2, q0
+[^>]*> ee3f 5e03 vcvtt.f16.f32 q2, q1
+[^>]*> ee3f 4e03 vcvtb.f16.f32 q2, q1
[^>]*> ee3f 5e05 vcvtt.f16.f32 q2, q2
[^>]*> ee3f 4e05 vcvtb.f16.f32 q2, q2
[^>]*> ee3f 5e09 vcvtt.f16.f32 q2, q4
[^>]*> ee3f 4e09 vcvtb.f16.f32 q2, q4
-[^>]*> ee3f 5e11 @ <UNDEFINED> instruction: 0xee3f5e11
-[^>]*> ee3f 4e11 @ <UNDEFINED> instruction: 0xee3f4e11
-[^>]*> ee3f 5e1d @ <UNDEFINED> instruction: 0xee3f5e1d
-[^>]*> ee3f 4e1d @ <UNDEFINED> instruction: 0xee3f4e1d
+[^>]*> ee3f 5e0f vcvtt.f16.f32 q2, q7
+[^>]*> ee3f 4e0f vcvtb.f16.f32 q2, q7
[^>]*> ee3f 9e01 vcvtt.f16.f32 q4, q0
[^>]*> ee3f 8e01 vcvtb.f16.f32 q4, q0
+[^>]*> ee3f 9e03 vcvtt.f16.f32 q4, q1
+[^>]*> ee3f 8e03 vcvtb.f16.f32 q4, q1
[^>]*> ee3f 9e05 vcvtt.f16.f32 q4, q2
[^>]*> ee3f 8e05 vcvtb.f16.f32 q4, q2
[^>]*> ee3f 9e09 vcvtt.f16.f32 q4, q4
[^>]*> ee3f 8e09 vcvtb.f16.f32 q4, q4
-[^>]*> ee3f 9e11 @ <UNDEFINED> instruction: 0xee3f9e11
-[^>]*> ee3f 8e11 @ <UNDEFINED> instruction: 0xee3f8e11
-[^>]*> ee3f 9e1d @ <UNDEFINED> instruction: 0xee3f9e1d
-[^>]*> ee3f 8e1d @ <UNDEFINED> instruction: 0xee3f8e1d
-[^>]*> ee3f 1e01 vcvtt.f16.f32 q0, q0
-[^>]*> ee3f 0e01 vcvtb.f16.f32 q0, q0
-[^>]*> ee3f 1e05 vcvtt.f16.f32 q0, q2
-[^>]*> ee3f 0e05 vcvtb.f16.f32 q0, q2
-[^>]*> ee3f 1e09 vcvtt.f16.f32 q0, q4
-[^>]*> ee3f 0e09 vcvtb.f16.f32 q0, q4
-[^>]*> ee3f 1e11 @ <UNDEFINED> instruction: 0xee3f1e11
-[^>]*> ee3f 0e11 @ <UNDEFINED> instruction: 0xee3f0e11
-[^>]*> ee3f 1e1d @ <UNDEFINED> instruction: 0xee3f1e1d
-[^>]*> ee3f 0e1d @ <UNDEFINED> instruction: 0xee3f0e1d
-[^>]*> ee3f de01 vcvtt.f16.f32 q6, q0
-[^>]*> ee3f ce01 vcvtb.f16.f32 q6, q0
-[^>]*> ee3f de05 vcvtt.f16.f32 q6, q2
-[^>]*> ee3f ce05 vcvtb.f16.f32 q6, q2
-[^>]*> ee3f de09 vcvtt.f16.f32 q6, q4
-[^>]*> ee3f ce09 vcvtb.f16.f32 q6, q4
-[^>]*> ee3f de11 @ <UNDEFINED> instruction: 0xee3fde11
-[^>]*> ee3f ce11 @ <UNDEFINED> instruction: 0xee3fce11
-[^>]*> ee3f de1d @ <UNDEFINED> instruction: 0xee3fde1d
-[^>]*> ee3f ce1d @ <UNDEFINED> instruction: 0xee3fce1d
+[^>]*> ee3f 9e0f vcvtt.f16.f32 q4, q7
+[^>]*> ee3f 8e0f vcvtb.f16.f32 q4, q7
+[^>]*> ee3f fe01 vcvtt.f16.f32 q7, q0
+[^>]*> ee3f ee01 vcvtb.f16.f32 q7, q0
+[^>]*> ee3f fe03 vcvtt.f16.f32 q7, q1
+[^>]*> ee3f ee03 vcvtb.f16.f32 q7, q1
+[^>]*> ee3f fe05 vcvtt.f16.f32 q7, q2
+[^>]*> ee3f ee05 vcvtb.f16.f32 q7, q2
+[^>]*> ee3f fe09 vcvtt.f16.f32 q7, q4
+[^>]*> ee3f ee09 vcvtb.f16.f32 q7, q4
+[^>]*> ee3f fe0f vcvtt.f16.f32 q7, q7
+[^>]*> ee3f ee0f vcvtb.f16.f32 q7, q7
[^>]*> fe3f 1e01 vcvtt.f32.f16 q0, q0
[^>]*> fe3f 0e01 vcvtb.f32.f16 q0, q0
+[^>]*> fe3f 1e03 vcvtt.f32.f16 q0, q1
+[^>]*> fe3f 0e03 vcvtb.f32.f16 q0, q1
[^>]*> fe3f 1e05 vcvtt.f32.f16 q0, q2
[^>]*> fe3f 0e05 vcvtb.f32.f16 q0, q2
[^>]*> fe3f 1e09 vcvtt.f32.f16 q0, q4
[^>]*> fe3f 0e09 vcvtb.f32.f16 q0, q4
-[^>]*> fe3f 1e11 @ <UNDEFINED> instruction: 0xfe3f1e11
-[^>]*> fe3f 0e11 @ <UNDEFINED> instruction: 0xfe3f0e11
-[^>]*> fe3f 1e1d @ <UNDEFINED> instruction: 0xfe3f1e1d
-[^>]*> fe3f 0e1d @ <UNDEFINED> instruction: 0xfe3f0e1d
+[^>]*> fe3f 1e0f vcvtt.f32.f16 q0, q7
+[^>]*> fe3f 0e0f vcvtb.f32.f16 q0, q7
+[^>]*> fe3f 3e01 vcvtt.f32.f16 q1, q0
+[^>]*> fe3f 2e01 vcvtb.f32.f16 q1, q0
+[^>]*> fe3f 3e03 vcvtt.f32.f16 q1, q1
+[^>]*> fe3f 2e03 vcvtb.f32.f16 q1, q1
+[^>]*> fe3f 3e05 vcvtt.f32.f16 q1, q2
+[^>]*> fe3f 2e05 vcvtb.f32.f16 q1, q2
+[^>]*> fe3f 3e09 vcvtt.f32.f16 q1, q4
+[^>]*> fe3f 2e09 vcvtb.f32.f16 q1, q4
+[^>]*> fe3f 3e0f vcvtt.f32.f16 q1, q7
+[^>]*> fe3f 2e0f vcvtb.f32.f16 q1, q7
[^>]*> fe3f 5e01 vcvtt.f32.f16 q2, q0
[^>]*> fe3f 4e01 vcvtb.f32.f16 q2, q0
+[^>]*> fe3f 5e03 vcvtt.f32.f16 q2, q1
+[^>]*> fe3f 4e03 vcvtb.f32.f16 q2, q1
[^>]*> fe3f 5e05 vcvtt.f32.f16 q2, q2
[^>]*> fe3f 4e05 vcvtb.f32.f16 q2, q2
[^>]*> fe3f 5e09 vcvtt.f32.f16 q2, q4
[^>]*> fe3f 4e09 vcvtb.f32.f16 q2, q4
-[^>]*> fe3f 5e11 @ <UNDEFINED> instruction: 0xfe3f5e11
-[^>]*> fe3f 4e11 @ <UNDEFINED> instruction: 0xfe3f4e11
-[^>]*> fe3f 5e1d @ <UNDEFINED> instruction: 0xfe3f5e1d
-[^>]*> fe3f 4e1d @ <UNDEFINED> instruction: 0xfe3f4e1d
+[^>]*> fe3f 5e0f vcvtt.f32.f16 q2, q7
+[^>]*> fe3f 4e0f vcvtb.f32.f16 q2, q7
[^>]*> fe3f 9e01 vcvtt.f32.f16 q4, q0
[^>]*> fe3f 8e01 vcvtb.f32.f16 q4, q0
+[^>]*> fe3f 9e03 vcvtt.f32.f16 q4, q1
+[^>]*> fe3f 8e03 vcvtb.f32.f16 q4, q1
[^>]*> fe3f 9e05 vcvtt.f32.f16 q4, q2
[^>]*> fe3f 8e05 vcvtb.f32.f16 q4, q2
[^>]*> fe3f 9e09 vcvtt.f32.f16 q4, q4
[^>]*> fe3f 8e09 vcvtb.f32.f16 q4, q4
-[^>]*> fe3f 9e11 @ <UNDEFINED> instruction: 0xfe3f9e11
-[^>]*> fe3f 8e11 @ <UNDEFINED> instruction: 0xfe3f8e11
-[^>]*> fe3f 9e1d @ <UNDEFINED> instruction: 0xfe3f9e1d
-[^>]*> fe3f 8e1d @ <UNDEFINED> instruction: 0xfe3f8e1d
-[^>]*> fe3f 1e01 vcvtt.f32.f16 q0, q0
-[^>]*> fe3f 0e01 vcvtb.f32.f16 q0, q0
-[^>]*> fe3f 1e05 vcvtt.f32.f16 q0, q2
-[^>]*> fe3f 0e05 vcvtb.f32.f16 q0, q2
-[^>]*> fe3f 1e09 vcvtt.f32.f16 q0, q4
-[^>]*> fe3f 0e09 vcvtb.f32.f16 q0, q4
-[^>]*> fe3f 1e11 @ <UNDEFINED> instruction: 0xfe3f1e11
-[^>]*> fe3f 0e11 @ <UNDEFINED> instruction: 0xfe3f0e11
-[^>]*> fe3f 1e1d @ <UNDEFINED> instruction: 0xfe3f1e1d
-[^>]*> fe3f 0e1d @ <UNDEFINED> instruction: 0xfe3f0e1d
-[^>]*> fe3f de01 vcvtt.f32.f16 q6, q0
-[^>]*> fe3f ce01 vcvtb.f32.f16 q6, q0
-[^>]*> fe3f de05 vcvtt.f32.f16 q6, q2
-[^>]*> fe3f ce05 vcvtb.f32.f16 q6, q2
-[^>]*> fe3f de09 vcvtt.f32.f16 q6, q4
-[^>]*> fe3f ce09 vcvtb.f32.f16 q6, q4
-[^>]*> fe3f de11 @ <UNDEFINED> instruction: 0xfe3fde11
-[^>]*> fe3f ce11 @ <UNDEFINED> instruction: 0xfe3fce11
-[^>]*> fe3f de1d @ <UNDEFINED> instruction: 0xfe3fde1d
-[^>]*> fe3f ce1d @ <UNDEFINED> instruction: 0xfe3fce1d
+[^>]*> fe3f 9e0f vcvtt.f32.f16 q4, q7
+[^>]*> fe3f 8e0f vcvtb.f32.f16 q4, q7
+[^>]*> fe3f fe01 vcvtt.f32.f16 q7, q0
+[^>]*> fe3f ee01 vcvtb.f32.f16 q7, q0
+[^>]*> fe3f fe03 vcvtt.f32.f16 q7, q1
+[^>]*> fe3f ee03 vcvtb.f32.f16 q7, q1
+[^>]*> fe3f fe05 vcvtt.f32.f16 q7, q2
+[^>]*> fe3f ee05 vcvtb.f32.f16 q7, q2
+[^>]*> fe3f fe09 vcvtt.f32.f16 q7, q4
+[^>]*> fe3f ee09 vcvtb.f32.f16 q7, q4
+[^>]*> fe3f fe0f vcvtt.f32.f16 q7, q7
+[^>]*> fe3f ee0f vcvtb.f32.f16 q7, q7
[^>]*> fe31 af4d vpsttee
-[^>]*> ee3f 1e05 vcvttt.f16.f32 q0, q2
-[^>]*> ee3f 0e05 vcvtbt.f16.f32 q0, q2
-[^>]*> fe3f 5e09 vcvtte.f32.f16 q2, q4
-[^>]*> fe3f 4e09 vcvtbe.f32.f16 q2, q4
+[^>]*> ee3f 1e03 vcvttt.f16.f32 q0, q1
+[^>]*> ee3f 0e03 vcvtbt.f16.f32 q0, q1
+[^>]*> fe3f be05 vcvtte.f32.f16 q5, q2
+[^>]*> fe3f ae05 vcvtbe.f32.f16 q5, q2
diff --git a/gas/testsuite/gas/bfin/allinsn16.s b/gas/testsuite/gas/bfin/allinsn16.s
index 4a1636d..bf00cb5 100644
--- a/gas/testsuite/gas/bfin/allinsn16.s
+++ b/gas/testsuite/gas/bfin/allinsn16.s
@@ -12,16 +12,16 @@
# iterate 0x20 times
.macro _dw b, i, e
.if \i < \e
- __dw \b, \i, \i + 0x40
- _dw \b, \i + 0x40, \e
+ __dw \b, \i, (\i + 0x40)
+ _dw \b, (\i + 0x40), \e
.endif
.endm
# iterate 0x4 times
.macro dw b, i, e
.if \i < \e
- _dw \b, \i, \i + 0x800
- dw \b, \i + 0x800, \e
+ _dw \b, \i, (\i + 0x800)
+ dw \b, (\i + 0x800), \e
.endif
.endm
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d
index 32577f3..5f4ae00 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-1.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 1
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d
index 3e3f74d..ded8c450 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-2.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 1
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d
index 6430d46..d23fd97 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-3.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 1
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d
index 319ff96..8632613 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-4.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 3
@@ -15,7 +17,7 @@ Contents of the SFrame section .sframe:
func idx \[0\]: pc = 0x0, size = 12 bytes
STARTPC + CFA + FP + RA +
#...
- 0+0004 +sp\+16 +u +u +
- 0+0008 +sp\+32 +u +u +
+ 0+0004 +sp\+16 +u +[uf] +
+ 0+0008 +sp\+32 +u +[uf] +
#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d
index 82d3497..dd2c32d 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-5.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 3
@@ -15,7 +17,7 @@ Contents of the SFrame section .sframe:
func idx \[0\]: pc = 0x0, size = 12 bytes
STARTPC + CFA + FP + RA +
#...
- 0+0004 +sp\+16 +u +u +
- 0+0008 +sp\+24 +u +u +
+ 0+0004 +sp\+16 +u +[uf] +
+ 0+0008 +sp\+24 +u +[uf] +
#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d
index fe6917c..34390c4 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-6.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 3
@@ -15,7 +17,7 @@ Contents of the SFrame section .sframe:
func idx \[0\]: pc = 0x0, size = 12 bytes
STARTPC + CFA + FP + RA +
#...
- 0+0004 +sp\+8 +u +u +
- 0+0008 +sp\+8 +u +u +
+ 0+0004 +sp\+8 +u +[uf] +
+ 0+0008 +sp\+8 +u +[uf] +
#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d
index 39724d9..61efb9c 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-7.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 3
@@ -15,7 +17,7 @@ Contents of the SFrame section .sframe:
func idx \[0\]: pc = 0x0, size = 12 bytes
STARTPC + CFA + FP + RA +
#...
- 0+0004 +sp\+8 +u +u +
- 0+0008 +sp\+8 +u +u +
+ 0+0004 +sp\+8 +u +[uf] +
+ 0+0008 +sp\+8 +u +[uf] +
#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d
index c0a0e62..d776456 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-8.d
@@ -8,6 +8,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 1
Num FREs: 2
@@ -15,6 +17,6 @@ Contents of the SFrame section .sframe:
func idx \[0\]: pc = 0x0, size = 8 bytes
STARTPC + CFA + FP + RA +
#...
- 0+0004 +sp\+16 +u +u +
+ 0+0004 +sp\+16 +u +[uf] +
#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d
index ae36c21..88b4cc6 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-1.d
@@ -8,6 +8,7 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+ CFA fixed RA offset: \-8
Num FDEs: 1
Num FREs: 4
@@ -15,8 +16,8 @@ Contents of the SFrame section .sframe:
func idx \[0\]: pc = 0x0, size = 25 bytes
STARTPC +CFA +FP +RA +
- 0+0000 +sp\+8 +u +u +
- 0+0001 +sp\+16 +c\-16 +u +
- 0+0004 +fp\+16 +c\-16 +u +
- 0+0018 +sp\+8 +c\-16 +u +
+ 0+0000 +sp\+8 +u +f +
+ 0+0001 +sp\+16 +c\-16 +f +
+ 0+0004 +fp\+16 +c\-16 +f +
+ 0+0018 +sp\+8 +c\-16 +f +
#pass
diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-1.d b/gas/testsuite/gas/cfi-sframe/common-empty-1.d
index b133b15..6e99dd5 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 due to DWARF CFI op 0xa
+#warning: skipping SFrame FDE; \.cfi_remember_state without prior SFrame FRE state
#objdump: --sframe=.sframe
#name: Uninteresting cfi directives generate an empty SFrame section
#...
@@ -9,6 +9,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 0
Num FREs: 0
diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-2.d b/gas/testsuite/gas/cfi-sframe/common-empty-2.d
index c5bc859..77c303e 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 due to DWARF CFI op 0xe
+#warning: skipping SFrame FDE; \.cfi_def_cfa_offset without CFA base register in effect
#objdump: --sframe=.sframe
#name: SFrame supports only FP/SP based CFA
#...
@@ -9,6 +9,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 0
Num FREs: 0
diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-3.d b/gas/testsuite/gas/cfi-sframe/common-empty-3.d
index df0b19e..4ec5b44 100644
--- a/gas/testsuite/gas/cfi-sframe/common-empty-3.d
+++ b/gas/testsuite/gas/cfi-sframe/common-empty-3.d
@@ -1,4 +1,5 @@
#as: --gsframe
+#warning: skipping SFrame FDE; non-default RA register 0
#objdump: --sframe=.sframe
#name: SFrame supports only default return column
#...
@@ -8,6 +9,8 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
Num FDEs: 0
Num FREs: 0
diff --git a/gas/testsuite/gas/i386/bundle-lock.s b/gas/testsuite/gas/i386/bundle-lock.s
index af52e99..f5a6520 100644
--- a/gas/testsuite/gas/i386/bundle-lock.s
+++ b/gas/testsuite/gas/i386/bundle-lock.s
@@ -5,7 +5,7 @@
.macro offset_sequence size, offset
.p2align 5
-sequence_\size\()_offset_\offset\():
+sequence_\size\()_offset_\offset:
.if \offset
.space \offset, 0xf4
.endif
diff --git a/gas/testsuite/gas/i386/bundle.s b/gas/testsuite/gas/i386/bundle.s
index 60d9fc5..2920638 100644
--- a/gas/testsuite/gas/i386/bundle.s
+++ b/gas/testsuite/gas/i386/bundle.s
@@ -5,7 +5,7 @@
.macro offset_insn insn_name, offset
.p2align 5
-\insn_name\()_offset_\offset\():
+\insn_name\()_offset_\offset:
.if \offset
.space \offset, 0xf4
.endif
@@ -105,7 +105,7 @@ test_offsets test_12
.macro jmp_2
jmp jmp_2_\@
movl $0xdeadbeef,%eax
-jmp_2_\@\():
+jmp_2_\@:
movl $0xb00b,%eax
.endm
.macro jmp_5
@@ -113,14 +113,14 @@ jmp_2_\@\():
.rept 128
inc %eax
.endr
-jmp_5_\@\():
+jmp_5_\@:
movl $0xb00b,%eax
.endm
.macro cjmp_2
jz cjmp_2_\@
movl $0xdeadbeef,%eax
-cjmp_2_\@\():
+cjmp_2_\@:
movl $0xb00b,%eax
.endm
.macro cjmp_6
@@ -128,14 +128,14 @@ cjmp_2_\@\():
.rept 128
inc %eax
.endr
-cjmp_6_\@\():
+cjmp_6_\@:
movl $0xb00b,%eax
.endm
.macro pjmp_3
jz,pt pjmp_3_\@
movl $0xdeadbeef,%eax
-pjmp_3_\@\():
+pjmp_3_\@:
movl $0xb00b,%eax
.endm
.macro pjmp_7
@@ -143,7 +143,7 @@ pjmp_3_\@\():
.rept 128
inc %eax
.endr
-pjmp_7_\@\():
+pjmp_7_\@:
movl $0xb00b,%eax
.endm
diff --git a/gas/testsuite/gas/i386/curly.d b/gas/testsuite/gas/i386/curly.d
new file mode 100644
index 0000000..17418ac
--- /dev/null
+++ b/gas/testsuite/gas/i386/curly.d
@@ -0,0 +1,28 @@
+#objdump: -dw
+#name: i386 curly braces with blanks
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <curly>:
+[ ]*[a-f0-9]+: 62 f1 74 58 58 10 vaddps \(%eax\)\{1to16\},%zmm1,%zmm2
+[ ]*[a-f0-9]+: 62 f1 74 58 58 10 vaddps \(%eax\)\{1to16\},%zmm1,%zmm2
+[ ]*[a-f0-9]+: 62 f1 74 58 58 10 vaddps \(%eax\)\{1to16\},%zmm1,%zmm2
+[ ]*[a-f0-9]+: 62 f1 74 58 58 10 vaddps \(%eax\)\{1to16\},%zmm1,%zmm2
+[ ]*[a-f0-9]+: 62 f1 74 18 58 d0 vaddps \{rn-sae\},%zmm0,%zmm1,%zmm2
+[ ]*[a-f0-9]+: 62 f1 74 18 58 d0 vaddps \{rn-sae\},%zmm0,%zmm1,%zmm2
+[ ]*[a-f0-9]+: 62 f1 74 18 58 d0 vaddps \{rn-sae\},%zmm0,%zmm1,%zmm2
+[ ]*[a-f0-9]+: 62 f1 74 cb 58 d0 vaddps %zmm0,%zmm1,%zmm2\{%k3\}\{z\}
+[ ]*[a-f0-9]+: 62 f1 74 cb 58 d0 vaddps %zmm0,%zmm1,%zmm2\{%k3\}\{z\}
+[ ]*[a-f0-9]+: 62 f1 74 cb 58 d0 vaddps %zmm0,%zmm1,%zmm2\{%k3\}\{z\}
+[ ]*[a-f0-9]+: 62 f1 74 cb 58 d0 vaddps %zmm0,%zmm1,%zmm2\{%k3\}\{z\}
+[ ]*[a-f0-9]+: 62 f1 74 cb 58 d0 vaddps %zmm0,%zmm1,%zmm2\{%k3\}\{z\}
+[ ]*[a-f0-9]+: 62 f1 74 cb 58 d0 vaddps %zmm0,%zmm1,%zmm2\{%k3\}\{z\}
+[ ]*[a-f0-9]+: 62 f1 74 08 58 d0 \{evex\} vaddps %xmm0,%xmm1,%xmm2
+[ ]*[a-f0-9]+: 62 f1 74 08 58 d0 \{evex\} vaddps %xmm0,%xmm1,%xmm2
+[ ]*[a-f0-9]+: 62 f1 74 08 58 d0 \{evex\} vaddps %xmm0,%xmm1,%xmm2
+[ ]*[a-f0-9]+: 62 f1 74 18 58 c2 vaddps \{rn-sae\},%zmm2,%zmm1,%zmm0
+[ ]*[a-f0-9]+: 62 f1 74 18 58 c2 vaddps \{rn-sae\},%zmm2,%zmm1,%zmm0
+[ ]*[a-f0-9]+: 62 f1 74 18 58 c2 vaddps \{rn-sae\},%zmm2,%zmm1,%zmm0
+#pass
diff --git a/gas/testsuite/gas/i386/curly.s b/gas/testsuite/gas/i386/curly.s
new file mode 100644
index 0000000..f786f32
--- /dev/null
+++ b/gas/testsuite/gas/i386/curly.s
@@ -0,0 +1,26 @@
+ .text
+curly:
+ vaddps (%eax) {1to16}, %zmm1, %zmm2
+ vaddps (%eax){ 1to16}, %zmm1, %zmm2
+ vaddps (%eax){1to16 }, %zmm1, %zmm2
+ vaddps (%eax){1to16} , %zmm1, %zmm2
+
+ vaddps { rn-sae}, %zmm0, %zmm1, %zmm2
+ vaddps {rn-sae }, %zmm0, %zmm1, %zmm2
+ vaddps {rn-sae} , %zmm0, %zmm1, %zmm2
+
+ vaddps %zmm0, %zmm1, %zmm2 {%k3}{z}
+ vaddps %zmm0, %zmm1, %zmm2{ %k3}{z}
+ vaddps %zmm0, %zmm1, %zmm2{%k3 }{z}
+ vaddps %zmm0, %zmm1, %zmm2{%k3} {z}
+ vaddps %zmm0, %zmm1, %zmm2{%k3}{ z}
+ vaddps %zmm0, %zmm1, %zmm2{%k3}{z }
+
+ { evex} vaddps %xmm0, %xmm1, %xmm2
+ {evex } vaddps %xmm0, %xmm1, %xmm2
+ {evex}vaddps %xmm0, %xmm1, %xmm2
+
+ .intel_syntax noprefix
+ vaddps zmm0, zmm1, zmm2 {rn-sae}
+ vaddps zmm0, zmm1, zmm2{ rn-sae}
+ vaddps zmm0, zmm1, zmm2{rn-sae }
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index e40b45f..facb4ed 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -105,6 +105,7 @@ if [gas_32_check] then {
run_dump_test "equ"
run_list_test "equ-2" "-al"
run_list_test "equ-bad"
+ run_dump_test "curly"
run_dump_test "divide"
run_dump_test "quoted"
run_dump_test "quoted2"
diff --git a/gas/testsuite/gas/i386/noreg-intel64.l b/gas/testsuite/gas/i386/noreg-intel64.l
index b99b9e1..f758e70 100644
--- a/gas/testsuite/gas/i386/noreg-intel64.l
+++ b/gas/testsuite/gas/i386/noreg-intel64.l
@@ -31,6 +31,14 @@
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `bts'
.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `cmp'
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `cmp'
@@ -48,6 +56,12 @@
.*:[1-9][0-9]*: Warning: .* `crc32'
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ctesta'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ctesta'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ctesta'
+.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `dec'
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `div'
diff --git a/gas/testsuite/gas/i386/noreg64-data16.d b/gas/testsuite/gas/i386/noreg64-data16.d
index 802eb40..358271b 100644
--- a/gas/testsuite/gas/i386/noreg64-data16.d
+++ b/gas/testsuite/gas/i386/noreg64-data16.d
@@ -26,6 +26,10 @@ Disassembly of section .text:
*[a-f0-9]+: 66 0f ba 30 01 btrw \$0x1,\(%rax\)
*[a-f0-9]+: 66 0f ba 28 01 btsw \$0x1,\(%rax\)
*[a-f0-9]+: 66 ff 10 callw \*\(%rax\)
+ *[a-f0-9]+: 62 f4 05 07 83 38 01[ ]+ccmpaw \{dfv=\} \$0x1,\(%rax\)
+ *[a-f0-9]+: 62 f4 05 07 81 38 89 00[ ]+ccmpaw \{dfv=\} \$0x89,\(%rax\)
+ *[a-f0-9]+: 62 f4 05 07 81 38 34 12[ ]+ccmpaw \{dfv=\} \$0x1234,\(%rax\)
+ *[a-f0-9]+: 62 f4 05 07 81 38 78 56[ ]+ccmpaw \{dfv=\} \$0x5678,\(%rax\)
*[a-f0-9]+: 66 83 38 01 cmpw \$0x1,\(%rax\)
*[a-f0-9]+: 66 81 38 89 00 cmpw \$0x89,\(%rax\)
*[a-f0-9]+: 66 81 38 34 12 cmpw \$0x1234,\(%rax\)
@@ -34,6 +38,9 @@ Disassembly of section .text:
*[a-f0-9]+: 66 a7 cmpsw %es:\(%rdi\),%ds:\(%rsi\)
*[a-f0-9]+: 66 f2 0f 38 f1 00 crc32w \(%rax\),%eax
*[a-f0-9]+: 66 f2 48 0f 38 f1 00 data16 crc32q \(%rax\),%rax
+ *[a-f0-9]+: 62 f4 05 07 f7 00 89 00[ ]+ctestaw \{dfv=\} \$0x89,\(%rax\)
+ *[a-f0-9]+: 62 f4 05 07 f7 00 34 12[ ]+ctestaw \{dfv=\} \$0x1234,\(%rax\)
+ *[a-f0-9]+: 62 f4 05 07 f7 00 78 56[ ]+ctestaw \{dfv=\} \$0x5678,\(%rax\)
*[a-f0-9]+: 66 ff 08 decw \(%rax\)
*[a-f0-9]+: 66 f7 30 divw \(%rax\)
*[a-f0-9]+: 66 d8 00 data16 fadds \(%rax\)
diff --git a/gas/testsuite/gas/i386/noreg64-data16.e b/gas/testsuite/gas/i386/noreg64-data16.e
index 48ff2a9..65d31d0 100644
--- a/gas/testsuite/gas/i386/noreg64-data16.e
+++ b/gas/testsuite/gas/i386/noreg64-data16.e
@@ -8,14 +8,18 @@
.*:3: Warning: .*shortened.*
.*:47: Info: .*
.*:3: Warning: .*shortened.*
-.*:99: Info: .*
+.*:51: Info: .*
.*:3: Warning: .*shortened.*
-.*:117: Info: .*
+.*:58: Info: .*
.*:3: Warning: .*shortened.*
-.*:146: Info: .*
+.*:106: Info: .*
.*:3: Warning: .*shortened.*
-.*:170: Info: .*
+.*:124: Info: .*
.*:3: Warning: .*shortened.*
-.*:175: Info: .*
+.*:153: Info: .*
.*:3: Warning: .*shortened.*
-.*:179: Info: .*
+.*:177: Info: .*
+.*:3: Warning: .*shortened.*
+.*:182: Info: .*
+.*:3: Warning: .*shortened.*
+.*:186: Info: .*
diff --git a/gas/testsuite/gas/i386/noreg64-evex-data16.d b/gas/testsuite/gas/i386/noreg64-evex-data16.d
new file mode 100644
index 0000000..50c4968
--- /dev/null
+++ b/gas/testsuite/gas/i386/noreg64-evex-data16.d
@@ -0,0 +1,81 @@
+#as: --defsym DATA16=1
+#objdump: -dw
+#name: 64-bit insns not sizeable through register operands w/ {evex} and data16
+#source: noreg64-evex.s
+#warning_output: noreg64-evex-data16.e
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 83 10 01[ ]+\{evex\} adcw \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 10 89 00[ ]+\{evex\} adcw \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 10 34 12[ ]+\{evex\} adcw \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 10 78 56[ ]+\{evex\} adcw \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 83 00 01[ ]+\{evex\} addw \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 00 89 00[ ]+\{evex\} addw \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 00 34 12[ ]+\{evex\} addw \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 00 78 56[ ]+\{evex\} addw \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 83 20 01[ ]+\{evex\} andw \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 20 89 00[ ]+\{evex\} andw \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 20 34 12[ ]+\{evex\} andw \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 20 78 56[ ]+\{evex\} andw \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 05 0a 83 38 01[ ]+ccmptw \{dfv=\} \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 05 0a 81 38 89 00[ ]+ccmptw \{dfv=\} \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 05 0a 81 38 34 12[ ]+ccmptw \{dfv=\} \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 05 0a 81 38 78 56[ ]+ccmptw \{dfv=\} \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 f1 00[ ]+\{evex\} crc32w \(%rax\),%eax
+[ ]*[a-f0-9]+:[ ]*62 f4 fd 08 f1 00[ ]+\{evex\} crc32q \(%rax\),%rax
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 ff 08[ ]+\{evex\} decw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 f7 30[ ]+\{evex\} divw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 f7 38[ ]+\{evex\} idivw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 f7 28[ ]+\{evex\} imulw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 ff 00[ ]+\{evex\} incw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 f7 20[ ]+\{evex\} mulw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 f7 18[ ]+\{evex\} negw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 f7 10[ ]+\{evex\} notw \(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 83 08 01[ ]+\{evex\} orw \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 08 89 00[ ]+\{evex\} orw \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 08 34 12[ ]+\{evex\} orw \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 08 78 56[ ]+\{evex\} orw \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 10[ ]+\{evex\} rclw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 10 02[ ]+\{evex\} rclw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 10[ ]+\{evex\} rclw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 18[ ]+\{evex\} rcrw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 18 02[ ]+\{evex\} rcrw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 18[ ]+\{evex\} rcrw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 00[ ]+\{evex\} rolw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 00 02[ ]+\{evex\} rolw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 00[ ]+\{evex\} rolw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 08[ ]+\{evex\} rorw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 08 02[ ]+\{evex\} rorw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 08[ ]+\{evex\} rorw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 20[ ]+\{evex\} shlw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 20 02[ ]+\{evex\} shlw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 20[ ]+\{evex\} shlw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 38[ ]+\{evex\} sarw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 38 02[ ]+\{evex\} sarw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 38[ ]+\{evex\} sarw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 83 18 01[ ]+\{evex\} sbbw \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 18 89 00[ ]+\{evex\} sbbw \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 18 34 12[ ]+\{evex\} sbbw \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 18 78 56[ ]+\{evex\} sbbw \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 20[ ]+\{evex\} shlw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 20 02[ ]+\{evex\} shlw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 20[ ]+\{evex\} shlw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d1 28[ ]+\{evex\} shrw \$1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 c1 28 02[ ]+\{evex\} shrw \$0x2,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 d3 28[ ]+\{evex\} shrw %cl,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 83 28 01[ ]+\{evex\} subw \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 28 89 00[ ]+\{evex\} subw \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 28 34 12[ ]+\{evex\} subw \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 28 78 56[ ]+\{evex\} subw \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 05 0a f7 00 89 00[ ]+ctesttw \{dfv=\} \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 05 0a f7 00 34 12[ ]+ctesttw \{dfv=\} \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 05 0a f7 00 78 56[ ]+ctesttw \{dfv=\} \$0x5678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 83 30 01[ ]+\{evex\} xorw \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 30 89 00[ ]+\{evex\} xorw \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 30 34 12[ ]+\{evex\} xorw \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 81 30 78 56[ ]+\{evex\} xorw \$0x5678,\(%rax\)
+#pass
diff --git a/gas/testsuite/gas/i386/noreg64-evex-data16.e b/gas/testsuite/gas/i386/noreg64-evex-data16.e
new file mode 100644
index 0000000..4ac7471
--- /dev/null
+++ b/gas/testsuite/gas/i386/noreg64-evex-data16.e
@@ -0,0 +1,19 @@
+.*: Assembler messages:
+.*:3: Warning: .*shortened.*
+.*:14: Info: .*
+.*:3: Warning: .*shortened.*
+.*:18: Info: .*
+.*:3: Warning: .*shortened.*
+.*:22: Info: .*
+.*:3: Warning: .*shortened.*
+.*:26: Info: .*
+.*:3: Warning: .*shortened.*
+.*:40: Info: .*
+.*:3: Warning: .*shortened.*
+.*:62: Info: .*
+.*:3: Warning: .*shortened.*
+.*:72: Info: .*
+.*:3: Warning: .*shortened.*
+.*:75: Info: .*
+.*:3: Warning: .*shortened.*
+.*:79: Info: .*
diff --git a/gas/testsuite/gas/i386/noreg64-evex.d b/gas/testsuite/gas/i386/noreg64-evex.d
index cef2995..2af3710 100644
--- a/gas/testsuite/gas/i386/noreg64-evex.d
+++ b/gas/testsuite/gas/i386/noreg64-evex.d
@@ -20,6 +20,10 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 20 89 00 00 00[ ]+\{evex\} andl \$0x89,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 20 34 12 00 00[ ]+\{evex\} andl \$0x1234,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 20 78 56 34 12[ ]+\{evex\} andl \$0x12345678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 0a 83 38 01[ ]+ccmptl \{dfv=\} \$0x1,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 0a 81 38 89 00 00 00[ ]+ccmptl \{dfv=\} \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 0a 81 38 34 12 00 00[ ]+ccmptl \{dfv=\} \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 0a 81 38 78 56 34 12[ ]+ccmptl \{dfv=\} \$0x12345678,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 f1 00[ ]+\{evex\} crc32l \(%rax\),%eax
[ ]*[a-f0-9]+:[ ]*62 f4 fc 08 f1 00[ ]+\{evex\} crc32q \(%rax\),%rax
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 ff 08[ ]+\{evex\} decl \(%rax\)
@@ -66,6 +70,9 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 28 89 00 00 00[ ]+\{evex\} subl \$0x89,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 28 34 12 00 00[ ]+\{evex\} subl \$0x1234,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 28 78 56 34 12[ ]+\{evex\} subl \$0x12345678,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 0a f7 00 89 00 00 00[ ]+ctesttl \{dfv=\} \$0x89,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 0a f7 00 34 12 00 00[ ]+ctesttl \{dfv=\} \$0x1234,\(%rax\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 0a f7 00 78 56 34 12[ ]+ctesttl \{dfv=\} \$0x12345678,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 83 30 01[ ]+\{evex\} xorl \$0x1,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 30 89 00 00 00[ ]+\{evex\} xorl \$0x89,\(%rax\)
[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 81 30 34 12 00 00[ ]+\{evex\} xorl \$0x1234,\(%rax\)
diff --git a/gas/testsuite/gas/i386/noreg64-evex.e b/gas/testsuite/gas/i386/noreg64-evex.e
index b8ae1ef..6cd3727 100644
--- a/gas/testsuite/gas/i386/noreg64-evex.e
+++ b/gas/testsuite/gas/i386/noreg64-evex.e
@@ -1,64 +1,140 @@
.*: Assembler messages:
.*:[0-9]+: Warning:.*`adc'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`adc'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`adc'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`adc'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`add'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`add'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`add'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`add'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`and'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`and'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`and'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`and'
+.*:[1-9][0-9]*: Info: .*
+.*:[0-9]+: Warning:.*`cmp'
+.*:[1-9][0-9]*: Info: .*
+.*:[0-9]+: Warning:.*`cmp'
+.*:[1-9][0-9]*: Info: .*
+.*:[0-9]+: Warning:.*`cmp'
+.*:[1-9][0-9]*: Info: .*
+.*:[0-9]+: Warning:.*`cmp'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`crc32'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`crc32'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`dec'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`div'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`idiv'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`imul'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`inc'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`mul'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`neg'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`not'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`or'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`or'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`or'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`or'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rcl'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rcl'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rcl'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rcr'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rcr'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rcr'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rol'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rol'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`rol'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`ror'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`ror'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`ror'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sal'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sal'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sal'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sar'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sar'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sar'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sbb'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sbb'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sbb'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sbb'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`shl'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`shl'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`shl'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`shr'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`shr'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`shr'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sub'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sub'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sub'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`sub'
+.*:[1-9][0-9]*: Info: .*
+.*:[0-9]+: Warning:.*`test'
+.*:[1-9][0-9]*: Info: .*
+.*:[0-9]+: Warning:.*`test'
+.*:[1-9][0-9]*: Info: .*
+.*:[0-9]+: Warning:.*`test'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`xor'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`xor'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`xor'
+.*:[1-9][0-9]*: Info: .*
.*:[0-9]+: Warning:.*`xor'
+.*:[1-9][0-9]*: Info: .*
#pass
diff --git a/gas/testsuite/gas/i386/noreg64-evex.s b/gas/testsuite/gas/i386/noreg64-evex.s
index 2924900..09d6837 100644
--- a/gas/testsuite/gas/i386/noreg64-evex.s
+++ b/gas/testsuite/gas/i386/noreg64-evex.s
@@ -1,66 +1,79 @@
-# Check 64-bit insns not sizeable through register operands with evex
+ .macro pfx insn:vararg
+ .ifdef DATA16
+ data16 {evex} \insn
+ .else
+ {evex} \insn
+ .endif
+ .endm
.text
_start:
- {evex} adc $1, (%rax)
- {evex} adc $0x89, (%rax)
- {evex} adc $0x1234, (%rax)
- {evex} adc $0x12345678, (%rax)
- {evex} add $1, (%rax)
- {evex} add $0x89, (%rax)
- {evex} add $0x1234, (%rax)
- {evex} add $0x12345678, (%rax)
- {evex} and $1, (%rax)
- {evex} and $0x89, (%rax)
- {evex} and $0x1234, (%rax)
- {evex} and $0x12345678, (%rax)
- {evex} crc32 (%rax), %eax
- {evex} crc32 (%rax), %rax
- {evex} dec (%rax)
- {evex} div (%rax)
- {evex} idiv (%rax)
- {evex} imul (%rax)
- {evex} inc (%rax)
- {evex} mul (%rax)
- {evex} neg (%rax)
- {evex} not (%rax)
- {evex} or $1, (%rax)
- {evex} or $0x89, (%rax)
- {evex} or $0x1234, (%rax)
- {evex} or $0x12345678, (%rax)
- {evex} rcl $1, (%rax)
- {evex} rcl $2, (%rax)
- {evex} rcl %cl, (%rax)
- {evex} rcr $1, (%rax)
- {evex} rcr $2, (%rax)
- {evex} rcr %cl, (%rax)
- {evex} rol $1, (%rax)
- {evex} rol $2, (%rax)
- {evex} rol %cl, (%rax)
- {evex} ror $1, (%rax)
- {evex} ror $2, (%rax)
- {evex} ror %cl, (%rax)
- {evex} sal $1, (%rax)
- {evex} sal $2, (%rax)
- {evex} sal %cl, (%rax)
- {evex} sar $1, (%rax)
- {evex} sar $2, (%rax)
- {evex} sar %cl, (%rax)
- {evex} sbb $1, (%rax)
- {evex} sbb $0x89, (%rax)
- {evex} sbb $0x1234, (%rax)
- {evex} sbb $0x12345678, (%rax)
- {evex} shl $1, (%rax)
- {evex} shl $2, (%rax)
- {evex} shl %cl, (%rax)
- {evex} shr $1, (%rax)
- {evex} shr $2, (%rax)
- {evex} shr %cl, (%rax)
- {evex} sub $1, (%rax)
- {evex} sub $0x89, (%rax)
- {evex} sub $0x1234, (%rax)
- {evex} sub $0x12345678, (%rax)
- {evex} xor $1, (%rax)
- {evex} xor $0x89, (%rax)
- {evex} xor $0x1234, (%rax)
- {evex} xor $0x12345678, (%rax)
+ pfx adc $1, (%rax)
+ pfx adc $0x89, (%rax)
+ pfx adc $0x1234, (%rax)
+ pfx adc $0x12345678, (%rax)
+ pfx add $1, (%rax)
+ pfx add $0x89, (%rax)
+ pfx add $0x1234, (%rax)
+ pfx add $0x12345678, (%rax)
+ pfx and $1, (%rax)
+ pfx and $0x89, (%rax)
+ pfx and $0x1234, (%rax)
+ pfx and $0x12345678, (%rax)
+ pfx cmp $1, (%rax)
+ pfx cmp $0x89, (%rax)
+ pfx cmp $0x1234, (%rax)
+ pfx cmp $0x12345678, (%rax)
+ pfx crc32 (%rax), %eax
+ pfx crc32 (%rax), %rax
+ pfx dec (%rax)
+ pfx div (%rax)
+ pfx idiv (%rax)
+ pfx imul (%rax)
+ pfx inc (%rax)
+ pfx mul (%rax)
+ pfx neg (%rax)
+ pfx not (%rax)
+ pfx or $1, (%rax)
+ pfx or $0x89, (%rax)
+ pfx or $0x1234, (%rax)
+ pfx or $0x12345678, (%rax)
+ pfx rcl $1, (%rax)
+ pfx rcl $2, (%rax)
+ pfx rcl %cl, (%rax)
+ pfx rcr $1, (%rax)
+ pfx rcr $2, (%rax)
+ pfx rcr %cl, (%rax)
+ pfx rol $1, (%rax)
+ pfx rol $2, (%rax)
+ pfx rol %cl, (%rax)
+ pfx ror $1, (%rax)
+ pfx ror $2, (%rax)
+ pfx ror %cl, (%rax)
+ pfx sal $1, (%rax)
+ pfx sal $2, (%rax)
+ pfx sal %cl, (%rax)
+ pfx sar $1, (%rax)
+ pfx sar $2, (%rax)
+ pfx sar %cl, (%rax)
+ pfx sbb $1, (%rax)
+ pfx sbb $0x89, (%rax)
+ pfx sbb $0x1234, (%rax)
+ pfx sbb $0x12345678, (%rax)
+ pfx shl $1, (%rax)
+ pfx shl $2, (%rax)
+ pfx shl %cl, (%rax)
+ pfx shr $1, (%rax)
+ pfx shr $2, (%rax)
+ pfx shr %cl, (%rax)
+ pfx sub $1, (%rax)
+ pfx sub $0x89, (%rax)
+ pfx sub $0x1234, (%rax)
+ pfx sub $0x12345678, (%rax)
+ pfx test $0x89, (%rax)
+ pfx test $0x1234, (%rax)
+ pfx test $0x12345678, (%rax)
+ pfx xor $1, (%rax)
+ pfx xor $0x89, (%rax)
+ pfx xor $0x1234, (%rax)
+ pfx xor $0x12345678, (%rax)
diff --git a/gas/testsuite/gas/i386/noreg64-rex64.d b/gas/testsuite/gas/i386/noreg64-rex64.d
index e33851d..1f6757b 100644
--- a/gas/testsuite/gas/i386/noreg64-rex64.d
+++ b/gas/testsuite/gas/i386/noreg64-rex64.d
@@ -25,6 +25,10 @@ Disassembly of section .text:
*[a-f0-9]+: 48 0f ba 30 01 btrq \$0x1,\(%rax\)
*[a-f0-9]+: 48 0f ba 28 01 btsq \$0x1,\(%rax\)
*[a-f0-9]+: 48 ff 10 rex\.W call \*\(%rax\)
+ *[a-f0-9]+: 62 f4 84 07 83 38 01[ ]+ccmpaq \{dfv=\} \$0x1,\(%rax\)
+ *[a-f0-9]+: 62 f4 84 07 81 38 89 00 00 00[ ]+ccmpaq \{dfv=\} \$0x89,\(%rax\)
+ *[a-f0-9]+: 62 f4 84 07 81 38 34 12 00 00[ ]+ccmpaq \{dfv=\} \$0x1234,\(%rax\)
+ *[a-f0-9]+: 62 f4 84 07 81 38 78 56 34 12[ ]+ccmpaq \{dfv=\} \$0x12345678,\(%rax\)
*[a-f0-9]+: 48 83 38 01 cmpq \$0x1,\(%rax\)
*[a-f0-9]+: 48 81 38 89 00 00 00 cmpq \$0x89,\(%rax\)
*[a-f0-9]+: 48 81 38 34 12 00 00 cmpq \$0x1234,\(%rax\)
@@ -32,6 +36,9 @@ Disassembly of section .text:
*[a-f0-9]+: 48 a7 cmpsq %es:\(%rdi\),%ds:\(%rsi\)
*[a-f0-9]+: 48 a7 cmpsq %es:\(%rdi\),%ds:\(%rsi\)
*[a-f0-9]+: f2 48 0f 38 f1 00 crc32q \(%rax\),%rax
+ *[a-f0-9]+: 62 f4 84 07 f7 00 89 00 00 00[ ]+ctestaq \{dfv=\} \$0x89,\(%rax\)
+ *[a-f0-9]+: 62 f4 84 07 f7 00 34 12 00 00[ ]+ctestaq \{dfv=\} \$0x1234,\(%rax\)
+ *[a-f0-9]+: 62 f4 84 07 f7 00 78 56 34 12[ ]+ctestaq \{dfv=\} \$0x12345678,\(%rax\)
*[a-f0-9]+: 48 ff 08 decq \(%rax\)
*[a-f0-9]+: 48 f7 30 divq \(%rax\)
*[a-f0-9]+: 48 d8 00 rex\.W fadds \(%rax\)
diff --git a/gas/testsuite/gas/i386/noreg64.d b/gas/testsuite/gas/i386/noreg64.d
index 2afdef3..3cf3baf 100644
--- a/gas/testsuite/gas/i386/noreg64.d
+++ b/gas/testsuite/gas/i386/noreg64.d
@@ -24,6 +24,10 @@ Disassembly of section .text:
*[a-f0-9]+: 0f ba 30 01 btrl \$0x1,\(%rax\)
*[a-f0-9]+: 0f ba 28 01 btsl \$0x1,\(%rax\)
*[a-f0-9]+: ff 10 call \*\(%rax\)
+ *[a-f0-9]+: 62 f4 04 07 83 38 01 ccmpal \{dfv=\} \$0x1,\(%rax\)
+ *[a-f0-9]+: 62 f4 04 07 81 38 89 00 00 00 ccmpal \{dfv=\} \$0x89,\(%rax\)
+ *[a-f0-9]+: 62 f4 04 07 81 38 34 12 00 00 ccmpal \{dfv=\} \$0x1234,\(%rax\)
+ *[a-f0-9]+: 62 f4 04 07 81 38 78 56 34 12 ccmpal \{dfv=\} \$0x12345678,\(%rax\)
*[a-f0-9]+: 83 38 01 cmpl \$0x1,\(%rax\)
*[a-f0-9]+: 81 38 89 00 00 00 cmpl \$0x89,\(%rax\)
*[a-f0-9]+: 81 38 34 12 00 00 cmpl \$0x1234,\(%rax\)
@@ -32,6 +36,9 @@ Disassembly of section .text:
*[a-f0-9]+: a7 cmpsl %es:\(%rdi\),%ds:\(%rsi\)
*[a-f0-9]+: f2 0f 38 f1 00 crc32l \(%rax\),%eax
*[a-f0-9]+: f2 48 0f 38 f1 00 crc32q \(%rax\),%rax
+ *[a-f0-9]+: 62 f4 04 07 f7 00 89 00 00 00 ctestal \{dfv=\} \$0x89,\(%rax\)
+ *[a-f0-9]+: 62 f4 04 07 f7 00 34 12 00 00 ctestal \{dfv=\} \$0x1234,\(%rax\)
+ *[a-f0-9]+: 62 f4 04 07 f7 00 78 56 34 12 ctestal \{dfv=\} \$0x12345678,\(%rax\)
*[a-f0-9]+: ff 08 decl \(%rax\)
*[a-f0-9]+: f7 30 divl \(%rax\)
*[a-f0-9]+: d8 00 fadds \(%rax\)
diff --git a/gas/testsuite/gas/i386/noreg64.l b/gas/testsuite/gas/i386/noreg64.l
index b32430d..97b7ff0 100644
--- a/gas/testsuite/gas/i386/noreg64.l
+++ b/gas/testsuite/gas/i386/noreg64.l
@@ -31,6 +31,14 @@
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `bts'
.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ccmpa'
+.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `cmp'
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `cmp'
@@ -48,6 +56,12 @@
.*:[1-9][0-9]*: Warning: .* `crc32'
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ctesta'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ctesta'
+.*:[1-9][0-9]*: Info: .*
+.*:[1-9][0-9]*: Warning: .* `ctesta'
+.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `dec'
.*:[1-9][0-9]*: Info: .*
.*:[1-9][0-9]*: Warning: .* `div'
diff --git a/gas/testsuite/gas/i386/noreg64.s b/gas/testsuite/gas/i386/noreg64.s
index c067f88..9d2a714 100644
--- a/gas/testsuite/gas/i386/noreg64.s
+++ b/gas/testsuite/gas/i386/noreg64.s
@@ -41,6 +41,10 @@ noreg:
pfx btr $1, (%rax)
pfx bts $1, (%rax)
pfx call *(%rax)
+ pfx ccmpa $1, (%rax)
+ pfx ccmpa $0x89, (%rax)
+ pfx ccmpa $0x1234, (%rax)
+ pfx ccmpa $0x12345678, (%rax)
pfx cmp $1, (%rax)
pfx cmp $0x89, (%rax)
pfx cmp $0x1234, (%rax)
@@ -49,6 +53,9 @@ noreg:
pfx cmps %es:(%rdi), (%rsi)
pfx crc32 (%rax), %eax
pfx16 crc32 (%rax), %rax
+ pfx ctesta $0x89, (%rax)
+ pfx ctesta $0x1234, (%rax)
+ pfx ctesta $0x12345678, (%rax)
pfx dec (%rax)
pfx div (%rax)
pfx fadd (%rax)
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d b/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d
index c9ab3e9..cf68f68 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest-intel.d
@@ -77,6 +77,7 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 54 d4 02 85 bc 80 23 01 00 00[ ]+ctestb \{dfv=of, zf\} QWORD PTR \[r8\+rax\*4\+0x123\],r15
[ ]*[a-f0-9]+:[ ]*62 54 44 02 85 bc 80 23 01 00 00[ ]+ctestb \{dfv=of\} DWORD PTR \[r8\+rax\*4\+0x123\],r15d
[ ]*[a-f0-9]+:[ ]*62 54 44 02 84 84 80 23 01 00 00[ ]+ctestb \{dfv=of\} BYTE PTR \[r8\+rax\*4\+0x123\],r8b
+[ ]*[a-f0-9]+:[ ]*62 54 44 02 84 84 80 23 01 00 00[ ]+ctestb \{dfv=of\} BYTE PTR \[r8\+rax\*4\+0x123\],r8b
[ ]*[a-f0-9]+:[ ]*62 d4 2c 02 f7 84 80 23 01 00 00 7b 00 00 00[ ]+ctestb \{dfv=sf, cf\} DWORD PTR \[r8\+rax\*4\+0x123\],0x7b
[ ]*[a-f0-9]+:[ ]*62 74 2c 02 85 fa[ ]+ctestb \{dfv=sf, cf\} edx,r15d
[ ]*[a-f0-9]+:[ ]*62 54 3c 02 85 bc 80 23 01 00 00[ ]+ctestb \{dfv=sf, zf, cf\} DWORD PTR \[r8\+rax\*4\+0x123\],r15d
@@ -112,6 +113,8 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 fc 84 0a 83 fa 7b[ ]+ccmpt \{dfv=\} r18,0x7b
[ ]*[a-f0-9]+:[ ]*62 fc 04 0a 80 fa 7b[ ]+ccmpt \{dfv=\} r18b,0x7b
[ ]*[a-f0-9]+:[ ]*62 74 04 0a 85 fa[ ]+ctestt \{dfv=\} edx,r15d
+[ ]*[a-f0-9]+:[ ]*62 d4 04 0a 85 17[ ]+ctestt \{dfv=\} DWORD PTR \[r15\],edx
+[ ]*[a-f0-9]+:[ ]*62 74 04 0a 85 3a[ ]+ctestt \{dfv=\} DWORD PTR \[rdx\],r15d
[ ]*[a-f0-9]+:[ ]*62 fc 84 0a f7 c2 7b 00 00 00[ ]+ctestt \{dfv=\} r18,0x7b
[ ]*[a-f0-9]+:[ ]*62 fc 04 0a f6 c2 7b[ ]+ctestt \{dfv=\} r18b,0x7b
[ ]*[a-f0-9]+:[ ]*62 d4 8c 02 83 bc 80 23 01 00 00 7b[ ]+ccmpb \{dfv=cf\} QWORD PTR \[r8\+rax\*4\+0x123\],0x7b
@@ -220,3 +223,4 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 74 04 0a 85 fa[ ]+ctestt \{dfv=\} edx,r15d
[ ]*[a-f0-9]+:[ ]*62 fc 84 0a f7 c2 7b 00 00 00[ ]+ctestt \{dfv=\} r18,0x7b
[ ]*[a-f0-9]+:[ ]*62 fc 04 0a f6 c2 7b[ ]+ctestt \{dfv=\} r18b,0x7b
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.d b/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.d
index 0f100f0..4a859a0 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.d
@@ -77,6 +77,7 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 54 d4 02 85 bc 80 23 01 00 00[ ]+ctestb \{dfv=of, zf\} %r15,0x123\(%r8,%rax,4\)
[ ]*[a-f0-9]+:[ ]*62 54 44 02 85 bc 80 23 01 00 00[ ]+ctestb \{dfv=of\} %r15d,0x123\(%r8,%rax,4\)
[ ]*[a-f0-9]+:[ ]*62 54 44 02 84 84 80 23 01 00 00[ ]+ctestb \{dfv=of\} %r8b,0x123\(%r8,%rax,4\)
+[ ]*[a-f0-9]+:[ ]*62 54 44 02 84 84 80 23 01 00 00[ ]+ctestb \{dfv=of\} %r8b,0x123\(%r8,%rax,4\)
[ ]*[a-f0-9]+:[ ]*62 d4 2c 02 f7 84 80 23 01 00 00 7b 00 00 00[ ]+ctestbl \{dfv=sf, cf\}\s+\$0x7b,0x123\(%r8,%rax,4\)
[ ]*[a-f0-9]+:[ ]*62 74 2c 02 85 fa[ ]+ctestb \{dfv=sf, cf\} %r15d,%edx
[ ]*[a-f0-9]+:[ ]*62 54 3c 02 85 bc 80 23 01 00 00[ ]+ctestb \{dfv=sf, zf, cf\} %r15d,0x123\(%r8,%rax,4\)
@@ -111,7 +112,9 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 74 04 0a 39 fa[ ]+ccmpt \{dfv=\} %r15d,%edx
[ ]*[a-f0-9]+:[ ]*62 fc 84 0a 83 fa 7b[ ]+ccmpt \{dfv=\} \$0x7b,%r18
[ ]*[a-f0-9]+:[ ]*62 fc 04 0a 80 fa 7b[ ]+ccmpt \{dfv=\} \$0x7b,%r18b
-[ ]*[a-f0-9]+:[ ]*62 74 04 0a 85 fa[ ]+ctestt \{dfv=\} \%r15d,%edx
+[ ]*[a-f0-9]+:[ ]*62 74 04 0a 85 fa[ ]+ctestt \{dfv=\} %r15d,%edx
+[ ]*[a-f0-9]+:[ ]*62 d4 04 0a 85 17[ ]+ctestt \{dfv=\} %edx,\(%r15\)
+[ ]*[a-f0-9]+:[ ]*62 74 04 0a 85 3a[ ]+ctestt \{dfv=\} %r15d,\(%rdx\)
[ ]*[a-f0-9]+:[ ]*62 fc 84 0a f7 c2 7b 00 00 00[ ]+ctestt \{dfv=\} \$0x7b,%r18
[ ]*[a-f0-9]+:[ ]*62 fc 04 0a f6 c2 7b[ ]+ctestt \{dfv=\} \$0x7b,%r18b
[ ]*[a-f0-9]+:[ ]*62 d4 8c 02 83 bc 80 23 01 00 00 7b[ ]+ccmpbq \{dfv=cf\}\s+\$0x7b,0x123\(%r8,%rax,4\)
@@ -220,3 +223,4 @@ Disassembly of section \.text:
[ ]*[a-f0-9]+:[ ]*62 74 04 0a 85 fa[ ]+ctestt \{dfv=\} \%r15d,%edx
[ ]*[a-f0-9]+:[ ]*62 fc 84 0a f7 c2 7b 00 00 00[ ]+ctestt \{dfv=\} \$0x7b,%r18
[ ]*[a-f0-9]+:[ ]*62 fc 04 0a f6 c2 7b[ ]+ctestt \{dfv=\} \$0x7b,%r18b
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.s b/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.s
index 66bf224..0fc686f 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-ccmp-ctest.s
@@ -66,11 +66,12 @@ _start:
ctestbl {dfv=of, sf} $0x7b,0x123(%r8,%rax,4)
ctestb {dfv=of, sf} %r15w,0x123(%r8,%rax,4)
ctestbw {dfv=of, zf, cf} $0x7b,0x123(%r8,%rax,4)
- ctestb {dfv=of, zf, cf} %r15w,0x123(%r8,%rax,4)
+ ctestb {dfv=of, zf, cf} 0x123(%r8,%rax,4),%r15w
ctestbb {dfv=of, zf} $0x7b,0x123(%r8,%rax,4)
ctestb {dfv=of, zf} %r15,0x123(%r8,%rax,4)
ctestb {dfv=of} %r15d,0x123(%r8,%rax,4)
ctestb {dfv=of} %r8b,0x123(%r8,%rax,4)
+ ctestb {dfv=of} 0x123(%r8,%rax,4),%r8b
ctestbl {dfv=sf, cf} $0x7b,0x123(%r8,%rax,4)
ctestb {dfv=sf, cf} %r15d,%edx
ctestb {dfv=sf, zf, cf} %r15d,0x123(%r8,%rax,4)
@@ -106,6 +107,8 @@ _start:
{evex} cmp $0x7b,%r18
{evex} cmp $0x7b,%r18b
{evex} test %r15d,%edx
+ {evex} test (%r15),%edx
+ {evex} test %r15d,(%rdx)
{evex} test $0x7b,%r18
{evex} test $0x7b,%r18b
diff --git a/gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d b/gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d
new file mode 100644
index 0000000..0345d12
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov-intel.d
@@ -0,0 +1,165 @@
+#as:
+#objdump: -dw -Mintel
+#name: x86_64 APX_F insns (Intel disassembly)
+#source: x86-64-apx-cfcmov.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 14 42 c2[ ]+cfcmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 0c 42 94 80 23 01 00 00[ ]+cfcmovb WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 42 d1[ ]+cfcmovb edx,ecx
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 1c 42 d1[ ]+cfcmovb r10d,edx,ecx
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 0c 42 8c 80 23 01 00 00[ ]+cfcmovb DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ ]*[a-f0-9]+:[ ]*62 5c fc 08 42 ff[ ]+cfcmovb r15,r31
+[ ]*[a-f0-9]+:[ ]*62 5c a4 1c 42 ff[ ]+cfcmovb r11,r15,r31
+[ ]*[a-f0-9]+:[ ]*62 44 fc 0c 42 bc 80 23 01 00 00[ ]+cfcmovb QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 08 42 94 80 23 01 00 00[ ]+cfcmovb dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 1c 42 94 80 23 01 00 00[ ]+cfcmovb ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 08 42 8c 80 23 01 00 00[ ]+cfcmovb ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 1c 42 8c 80 23 01 00 00[ ]+cfcmovb edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 44 fc 08 42 bc 80 23 01 00 00[ ]+cfcmovb r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 44 84 1c 42 bc 80 23 01 00 00[ ]+cfcmovb r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 18 42 d1[ ]+cmovb r10d,edx,ecx
+[ ]*[a-f0-9]+:[ ]*62 5c a4 18 42 ff[ ]+cmovb r11,r15,r31
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 18 42 94 80 23 01 00 00[ ]+cmovb ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 18 42 8c 80 23 01 00 00[ ]+cmovb edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 44 84 18 42 bc 80 23 01 00 00[ ]+cmovb r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 40 c2[ ]+cfcmovo ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 40 c2[ ]+cmovo r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 41 c2[ ]+cfcmovno ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 41 c2[ ]+cmovno r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 48 c2[ ]+cfcmovs ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 48 c2[ ]+cmovs r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 49 c2[ ]+cfcmovns ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 49 c2[ ]+cmovns r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 14 42 c2[ ]+cfcmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 0c 42 94 80 23 01 00 00[ ]+cfcmovb WORD PTR \[r8\+rax\*4\+0x123\],dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 42 d1[ ]+cfcmovb edx,ecx
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 1c 42 d1[ ]+cfcmovb r10d,edx,ecx
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 0c 42 8c 80 23 01 00 00[ ]+cfcmovb DWORD PTR \[r8\+rax\*4\+0x123\],ecx
+[ ]*[a-f0-9]+:[ ]*62 5c fc 08 42 ff[ ]+cfcmovb r15,r31
+[ ]*[a-f0-9]+:[ ]*62 5c a4 1c 42 ff[ ]+cfcmovb r11,r15,r31
+[ ]*[a-f0-9]+:[ ]*62 44 fc 0c 42 bc 80 23 01 00 00[ ]+cfcmovb QWORD PTR \[r8\+rax\*4\+0x123\],r31
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 08 42 94 80 23 01 00 00[ ]+cfcmovb dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 1c 42 94 80 23 01 00 00[ ]+cfcmovb ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 08 42 8c 80 23 01 00 00[ ]+cfcmovb ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 1c 42 8c 80 23 01 00 00[ ]+cfcmovb edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 44 fc 08 42 bc 80 23 01 00 00[ ]+cfcmovb r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 44 84 1c 42 bc 80 23 01 00 00[ ]+cfcmovb r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 18 42 d1[ ]+cmovb r10d,edx,ecx
+[ ]*[a-f0-9]+:[ ]*62 5c a4 18 42 ff[ ]+cmovb r11,r15,r31
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 18 42 94 80 23 01 00 00[ ]+cmovb ax,dx,WORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 18 42 8c 80 23 01 00 00[ ]+cmovb edx,ecx,DWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 44 84 18 42 bc 80 23 01 00 00[ ]+cmovb r15,r31,QWORD PTR \[r8\+rax\*4\+0x123\]
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 40 c2[ ]+cfcmovo ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 40 c2[ ]+cmovo r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 41 c2[ ]+cfcmovno ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 41 c2[ ]+cmovno r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 48 c2[ ]+cfcmovs ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 48 c2[ ]+cmovs r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 49 c2[ ]+cfcmovns ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 49 c2[ ]+cmovns r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg r31w,ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg ax,dx
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg r31w,ax,dx
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-cfcmov.d b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.d
new file mode 100644
index 0000000..d379ae8
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.d
@@ -0,0 +1,165 @@
+#as:
+#objdump: -dw
+#name: x86_64 APX_F insns
+#source: x86-64-apx-cfcmov.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 14 42 c2[ ]+cfcmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 0c 42 94 80 23 01 00 00[ ]+cfcmovb %dx,0x123\(%r8,%rax,4\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 42 d1[ ]+cfcmovb %ecx,%edx
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 1c 42 d1[ ]+cfcmovb %ecx,%edx,%r10d
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 0c 42 8c 80 23 01 00 00[ ]+cfcmovb %ecx,0x123\(%r8,%rax,4\)
+[ ]*[a-f0-9]+:[ ]*62 5c fc 08 42 ff[ ]+cfcmovb %r31,%r15
+[ ]*[a-f0-9]+:[ ]*62 5c a4 1c 42 ff[ ]+cfcmovb %r31,%r15,%r11
+[ ]*[a-f0-9]+:[ ]*62 44 fc 0c 42 bc 80 23 01 00 00[ ]+cfcmovb %r31,0x123\(%r8,%rax,4\)
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 08 42 94 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%dx
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 1c 42 94 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 08 42 8c 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%ecx
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 1c 42 8c 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%ecx,%edx
+[ ]*[a-f0-9]+:[ ]*62 44 fc 08 42 bc 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%r31
+[ ]*[a-f0-9]+:[ ]*62 44 84 1c 42 bc 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%r31,%r15
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 18 42 d1[ ]+cmovb %ecx,%edx,%r10d
+[ ]*[a-f0-9]+:[ ]*62 5c a4 18 42 ff[ ]+cmovb %r31,%r15,%r11
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 18 42 94 80 23 01 00 00[ ]+cmovb 0x123\(%r8,%rax,4\),%dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 18 42 8c 80 23 01 00 00[ ]+cmovb 0x123\(%r8,%rax,4\),%ecx,%edx
+[ ]*[a-f0-9]+:[ ]*62 44 84 18 42 bc 80 23 01 00 00[ ]+cmovb 0x123\(%r8,%rax,4\),%r31,%r15
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 40 c2[ ]+cfcmovo %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 40 c2[ ]+cmovo %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 41 c2[ ]+cfcmovno %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 41 c2[ ]+cmovno %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 48 c2[ ]+cfcmovs %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 48 c2[ ]+cmovs %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 49 c2[ ]+cfcmovns %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 49 c2[ ]+cmovns %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 14 42 c2[ ]+cfcmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 0c 42 94 80 23 01 00 00[ ]+cfcmovb %dx,0x123\(%r8,%rax,4\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 42 d1[ ]+cfcmovb %ecx,%edx
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 1c 42 d1[ ]+cfcmovb %ecx,%edx,%r10d
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 0c 42 8c 80 23 01 00 00[ ]+cfcmovb %ecx,0x123\(%r8,%rax,4\)
+[ ]*[a-f0-9]+:[ ]*62 5c fc 08 42 ff[ ]+cfcmovb %r31,%r15
+[ ]*[a-f0-9]+:[ ]*62 5c a4 1c 42 ff[ ]+cfcmovb %r31,%r15,%r11
+[ ]*[a-f0-9]+:[ ]*62 44 fc 0c 42 bc 80 23 01 00 00[ ]+cfcmovb %r31,0x123\(%r8,%rax,4\)
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 08 42 94 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%dx
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 1c 42 94 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 d4 7c 08 42 8c 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%ecx
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 1c 42 8c 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%ecx,%edx
+[ ]*[a-f0-9]+:[ ]*62 44 fc 08 42 bc 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%r31
+[ ]*[a-f0-9]+:[ ]*62 44 84 1c 42 bc 80 23 01 00 00[ ]+cfcmovb 0x123\(%r8,%rax,4\),%r31,%r15
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 2c 18 42 d1[ ]+cmovb %ecx,%edx,%r10d
+[ ]*[a-f0-9]+:[ ]*62 5c a4 18 42 ff[ ]+cmovb %r31,%r15,%r11
+[ ]*[a-f0-9]+:[ ]*62 d4 7d 18 42 94 80 23 01 00 00[ ]+cmovb 0x123\(%r8,%rax,4\),%dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 d4 6c 18 42 8c 80 23 01 00 00[ ]+cmovb 0x123\(%r8,%rax,4\),%ecx,%edx
+[ ]*[a-f0-9]+:[ ]*62 44 84 18 42 bc 80 23 01 00 00[ ]+cmovb 0x123\(%r8,%rax,4\),%r31,%r15
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 40 c2[ ]+cfcmovo %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 40 c2[ ]+cmovo %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 41 c2[ ]+cfcmovno %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 41 c2[ ]+cmovno %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 42 c2[ ]+cfcmovb %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 42 c2[ ]+cmovb %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 43 c2[ ]+cfcmovae %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 43 c2[ ]+cmovae %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 44 c2[ ]+cfcmove %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 44 c2[ ]+cmove %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 45 c2[ ]+cfcmovne %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 45 c2[ ]+cmovne %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 46 c2[ ]+cfcmovbe %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 46 c2[ ]+cmovbe %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 47 c2[ ]+cfcmova %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 47 c2[ ]+cmova %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 48 c2[ ]+cfcmovs %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 48 c2[ ]+cmovs %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 49 c2[ ]+cfcmovns %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 49 c2[ ]+cmovns %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4a c2[ ]+cfcmovp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4a c2[ ]+cmovp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4b c2[ ]+cfcmovnp %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4b c2[ ]+cmovnp %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4c c2[ ]+cfcmovl %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4c c2[ ]+cmovl %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4d c2[ ]+cfcmovge %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4d c2[ ]+cmovge %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4e c2[ ]+cfcmovle %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4e c2[ ]+cmovle %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg %dx,%ax,%r31w
+[ ]*[a-f0-9]+:[ ]*62 f4 7d 08 4f c2[ ]+cfcmovg %dx,%ax
+[ ]*[a-f0-9]+:[ ]*62 f4 05 10 4f c2[ ]+cmovg %dx,%ax,%r31w
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
new file mode 100644
index 0000000..b36bca5
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-apx-cfcmov.s
@@ -0,0 +1,58 @@
+# Check 64bit EVEX-promoted CMOVcc instructions
+
+ .text
+_start:
+ cfcmovb %dx,%ax
+ cfcmovb %dx,%ax,%r31w
+ cfcmovb %dx,291(%r8,%rax,4)
+ cfcmovb %ecx,%edx
+ cfcmovb %ecx,%edx,%r10d
+ cfcmovb %ecx,291(%r8,%rax,4)
+ cfcmovb %r31,%r15
+ cfcmovb %r31,%r15,%r11
+ cfcmovb %r31,291(%r8,%rax,4)
+ cfcmovb 291(%r8,%rax,4),%dx
+ cfcmovb 291(%r8,%rax,4),%dx,%ax
+ cfcmovb 291(%r8,%rax,4),%ecx
+ cfcmovb 291(%r8,%rax,4),%ecx,%edx
+ cfcmovb 291(%r8,%rax,4),%r31
+ cfcmovb 291(%r8,%rax,4),%r31,%r15
+ cmovb %dx,%ax,%r31w
+ cmovb %ecx,%edx,%r10d
+ cmovb %r31,%r15,%r11
+ cmovb 291(%r8,%rax,4),%dx,%ax
+ cmovb 291(%r8,%rax,4),%ecx,%edx
+ cmovb 291(%r8,%rax,4),%r31,%r15
+
+ .irp m, o, no, b, nae, nb, ae, e, z, ne, nz, be, na, nbe, a, s, ns, p, pe, np, po, l, nge, nl, ge, le, ng, nle, g
+ cfcmov\m %dx,%ax
+ cmov\m %dx,%ax,%r31w
+ .endr
+
+ .intel_syntax noprefix
+ cfcmovb ax,dx
+ cfcmovb r31w,ax,dx
+ cfcmovb WORD PTR [r8+rax*4+291],dx
+ cfcmovb edx,ecx
+ cfcmovb r10d,edx,ecx
+ cfcmovb DWORD PTR [r8+rax*4+291],ecx
+ cfcmovb r15,r31
+ cfcmovb r11,r15,r31
+ cfcmovb QWORD PTR [r8+rax*4+291],r31
+ cfcmovb dx,WORD PTR [r8+rax*4+291]
+ cfcmovb ax,dx,WORD PTR [r8+rax*4+291]
+ cfcmovb ecx,DWORD PTR [r8+rax*4+291]
+ cfcmovb edx,ecx,DWORD PTR [r8+rax*4+291]
+ cfcmovb r31,QWORD PTR [r8+rax*4+291]
+ cfcmovb r15,r31,QWORD PTR [r8+rax*4+291]
+ cmovb r31w,ax,dx
+ cmovb r10d,edx,ecx
+ cmovb r11,r15,r31
+ cmovb ax,dx,WORD PTR [r8+rax*4+291]
+ cmovb edx,ecx,DWORD PTR [r8+rax*4+291]
+ cmovb r15,r31,QWORD PTR [r8+rax*4+291]
+
+ .irp m, o, no, b, nae, nb, ae, e, z, ne, nz, be, na, nbe, a, s, ns, p, pe, np, po, l, nge, nl, ge, le, ng, nle, g
+ cfcmov\m ax,dx
+ cmov\m r31w,ax,dx
+ .endr
diff --git a/gas/testsuite/gas/i386/x86-64-apx-inval.l b/gas/testsuite/gas/i386/x86-64-apx-inval.l
index a15f6b8..7249923 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-apx-inval.l
@@ -10,8 +10,11 @@
.*:11: Error: \{nf\} unsupported for `push2'
.*:12: Error: \{nf\} unsupported for `adcx'
.*:13: Error: \{nf\} unsupported for `mulx'
-.*:14: Error: \{nf\} cannot be combined with \{vex\}/\{vex3\}
-.*:15: Error: \{nf\} cannot be combined with \{vex\}/\{vex3\}
-.*:16: Error: can't encode register '%ah' in an instruction requiring EVEX prefix
-.*:17: Error: can't encode register '%ah' in an instruction requiring EVEX prefix
+.*:14: Error: \{nf\} unsupported for `cfcmovl'
+.*:15: Error: \{nf\} unsupported for `cfcmovl'
+.*:16: Error: \{nf\} unsupported for `cfcmovb'
+.*:17: Error: \{nf\} cannot be combined with \{vex\}/\{vex3\}
+.*:18: Error: \{nf\} cannot be combined with \{vex\}/\{vex3\}
+.*:19: Error: can't encode register '%ah' in an instruction requiring EVEX prefix
+.*:20: Error: can't encode register '%ah' in an instruction requiring EVEX prefix
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-inval.s b/gas/testsuite/gas/i386/x86-64-apx-inval.s
index 3d69dea..281478e 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-inval.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-inval.s
@@ -11,6 +11,9 @@
{nf} push2 %rbx, %rax
{nf} adcx %r15,%r15
{nf} mulx %r15,%r15,%r11
+ {nf} cfcmovl %dx,291(%r8,%rax,4)
+ {nf} cfcmovl 291(%r8,%rax,4),%dx
+ {nf} cfcmovb %dx,%ax,%r31w
{nf} {vex} bextr %ecx, %edx, %r10d
{vex} {nf} bextr %ecx, %edx, %r10d
{nf} add %dl,%ah
diff --git a/gas/testsuite/gas/i386/x86-64-bundle.s b/gas/testsuite/gas/i386/x86-64-bundle.s
index f8381ab..a4ebb2c 100644
--- a/gas/testsuite/gas/i386/x86-64-bundle.s
+++ b/gas/testsuite/gas/i386/x86-64-bundle.s
@@ -5,7 +5,7 @@
.macro offset_insn insn_name, offset
.p2align 5
-\insn_name\()_offset_\offset\():
+\insn_name\()_offset_\offset:
.if \offset
.space \offset, 0xf4
.endif
@@ -109,7 +109,7 @@ test_offsets test_13
.macro jmp_2
jmp jmp_2_\@
movl $0xdeadbeef,%eax
-jmp_2_\@\():
+jmp_2_\@:
movl $0xb00b,%eax
.endm
.macro jmp_5
@@ -117,14 +117,14 @@ jmp_2_\@\():
.rept 128
clc
.endr
-jmp_5_\@\():
+jmp_5_\@:
movl $0xb00b,%eax
.endm
.macro cjmp_2
jz cjmp_2_\@
movl $0xdeadbeef,%eax
-cjmp_2_\@\():
+cjmp_2_\@:
movl $0xb00b,%eax
.endm
.macro cjmp_6
@@ -132,14 +132,14 @@ cjmp_2_\@\():
.rept 128
clc
.endr
-cjmp_6_\@\():
+cjmp_6_\@:
movl $0xb00b,%eax
.endm
.macro pjmp_3
jz,pt pjmp_3_\@
movl $0xdeadbeef,%eax
-pjmp_3_\@\():
+pjmp_3_\@:
movl $0xb00b,%eax
.endm
.macro pjmp_7
@@ -147,7 +147,7 @@ pjmp_3_\@\():
.rept 128
clc
.endr
-pjmp_7_\@\():
+pjmp_7_\@:
movl $0xb00b,%eax
.endm
diff --git a/gas/testsuite/gas/i386/x86-64-gottpoff.d b/gas/testsuite/gas/i386/x86-64-gottpoff.d
index 5d0dd58..8f1c10f 100644
--- a/gas/testsuite/gas/i386/x86-64-gottpoff.d
+++ b/gas/testsuite/gas/i386/x86-64-gottpoff.d
@@ -24,4 +24,8 @@ Disassembly of section .text:
+[a-f0-9]+: 62 f4 9c 18 03 05 00 00 00 00 add 0x0\(%rip\),%rax,%r12 # 78 <_start\+0x78> 74: R_X86_64_CODE_6_GOTTPOFF foo-0x4
+[a-f0-9]+: 62 74 fc 14 01 05 00 00 00 00 \{nf\} add %r8,0x0\(%rip\),%r16 # 82 <_start\+0x82> 7e: R_X86_64_CODE_6_GOTTPOFF foo-0x4
+[a-f0-9]+: 62 f4 9c 1c 03 05 00 00 00 00 \{nf\} add 0x0\(%rip\),%rax,%r12 # 8c <_start\+0x8c> 88: R_X86_64_CODE_6_GOTTPOFF foo-0x4
+ +[a-f0-9]+: 62 f4 fc 0c 03 05 00 00 00 00 \{nf\} add 0x0\(%rip\),%rax # 96 <_start\+0x96> 92: R_X86_64_CODE_6_GOTTPOFF foo-0x4
+ +[a-f0-9]+: 62 e4 fc 0c 03 05 00 00 00 00 \{nf\} add 0x0\(%rip\),%r16 # a0 <_start\+0xa0> 9c: R_X86_64_CODE_6_GOTTPOFF foo-0x4
+ +[a-f0-9]+: 62 f4 fc 0c 03 05 00 00 00 00 \{nf\} add 0x0\(%rip\),%rax # aa <_start\+0xaa> a6: R_X86_64_CODE_6_GOTTPOFF foo-0x4
+ +[a-f0-9]+: 62 e4 fc 0c 03 05 00 00 00 00 \{nf\} add 0x0\(%rip\),%r16 # b4 <_start\+0xb4> b0: R_X86_64_CODE_6_GOTTPOFF foo-0x4
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-gottpoff.s b/gas/testsuite/gas/i386/x86-64-gottpoff.s
index d1f5501..48d8a59 100644
--- a/gas/testsuite/gas/i386/x86-64-gottpoff.s
+++ b/gas/testsuite/gas/i386/x86-64-gottpoff.s
@@ -27,3 +27,13 @@ _start:
add r12, rax, QWORD PTR [rip + foo@GOTTPOFF]
{nf} add r16, QWORD PTR [rip + foo@GOTTPOFF], r8
{nf} add r12, rax, QWORD PTR [rip + foo@GOTTPOFF]
+
+ .att_syntax prefix
+
+ {nf} addq foo@GOTTPOFF(%rip), %rax
+ {nf} addq foo@GOTTPOFF(%rip), %r16
+
+ .intel_syntax noprefix
+
+ {nf} add rax, QWORD PTR [rip + foo@GOTTPOFF]
+ {nf} add r16, QWORD PTR [rip + foo@GOTTPOFF]
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos-apx.d b/gas/testsuite/gas/i386/x86-64-pseudos-apx.d
new file mode 100644
index 0000000..345289b
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-pseudos-apx.d
@@ -0,0 +1,177 @@
+#as:
+#objdump: -dw -Msuffix
+#name: APX x86-64 pseudo prefixes
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <_start>:
+[ ]*[a-f0-9]+:[ ]*d5 11 89 cf[ ]+movl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 8b f9[ ]+movl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 89 cf[ ]+movl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 8b 39[ ]+movl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 89 39[ ]+movl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 11 cf[ ]+adcl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 13 f9[ ]+adcl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 11 cf[ ]+adcl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 13 39[ ]+adcl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 11 39[ ]+adcl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 01 cf[ ]+addl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 03 f9[ ]+addl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 01 cf[ ]+addl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 03 39[ ]+addl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 01 39[ ]+addl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 21 cf[ ]+andl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 23 f9[ ]+andl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 21 cf[ ]+andl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 23 39[ ]+andl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 21 39[ ]+andl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 39 cf[ ]+cmpl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 3b f9[ ]+cmpl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 39 cf[ ]+cmpl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 3b 39[ ]+cmpl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 39 39[ ]+cmpl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 09 cf[ ]+orl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 0b f9[ ]+orl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 09 cf[ ]+orl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 0b 39[ ]+orl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 09 39[ ]+orl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 19 cf[ ]+sbbl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 1b f9[ ]+sbbl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 19 cf[ ]+sbbl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 1b 39[ ]+sbbl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 19 39[ ]+sbbl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 29 cf[ ]+subl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 2b f9[ ]+subl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 29 cf[ ]+subl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 2b 39[ ]+subl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 29 39[ ]+subl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 85 cf[ ]+testl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 85 f9[ ]+testl %r31d,%ecx
+[ ]*[a-f0-9]+:[ ]*d5 11 85 cf[ ]+testl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 85 39[ ]+testl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*67 d5 44 85 39[ ]+testl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 31 cf[ ]+xorl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 33 f9[ ]+xorl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 11 31 cf[ ]+xorl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 33 39[ ]+xorl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 31 39[ ]+xorl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 11 87 cf[ ]+xchgl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*d5 44 87 f9[ ]+xchgl %r31d,%ecx
+[ ]*[a-f0-9]+:[ ]*d5 11 87 cf[ ]+xchgl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 d5 44 87 39[ ]+xchgl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*67 d5 44 87 39[ ]+xchgl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*d5 91 28 17[ ]+movaps \(%r31\),%xmm2
+[ ]*[a-f0-9]+:[ ]*d5 91 28 17[ ]+movaps \(%r31\),%xmm2
+[ ]*[a-f0-9]+:[ ]*d5 91 29 17[ ]+movaps %xmm2,\(%r31\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 11 cf[ ]+adcl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 7c 08 13 f9[ ]+adcl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 11 cf[ ]+adcl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 13 39[ ]+adcl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 11 39[ ]+adcl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 01 cf[ ]+addl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 7c 08 03 f9[ ]+addl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 01 cf[ ]+addl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 03 39[ ]+addl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 01 39[ ]+addl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 21 cf[ ]+andl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 7c 08 23 f9[ ]+andl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 21 cf[ ]+andl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 23 39[ ]+andl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 21 39[ ]+andl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 04 0a 39 cf[ ]+ccmptl \{dfv=\} %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 04 0a 3b f9[ ]+ccmptl.s \{dfv=\} %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 04 0a 39 cf[ ]+ccmptl \{dfv=\} %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 04 0a 3b 39[ ]+ccmptl \{dfv=\} \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 04 0a 39 39[ ]+ccmptl \{dfv=\} %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 09 cf[ ]+orl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 7c 08 0b f9[ ]+orl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 09 cf[ ]+orl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 0b 39[ ]+orl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 09 39[ ]+orl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 19 cf[ ]+sbbl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 7c 08 1b f9[ ]+sbbl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 19 cf[ ]+sbbl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 1b 39[ ]+sbbl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 19 39[ ]+sbbl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 29 cf[ ]+subl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 7c 08 2b f9[ ]+subl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 29 cf[ ]+subl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 2b 39[ ]+subl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 29 39[ ]+subl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 04 0a 85 cf[ ]+ctesttl \{dfv=\} %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 04 0a 85 f9[ ]+ctesttl \{dfv=\} %r31d,%ecx
+[ ]*[a-f0-9]+:[ ]*62 dc 04 0a 85 cf[ ]+ctesttl \{dfv=\} %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 04 0a 85 39[ ]+ctesttl \{dfv=\} %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*67 62 64 04 0a 85 39[ ]+ctesttl \{dfv=\} %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 31 cf[ ]+xorl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 64 7c 08 33 f9[ ]+xorl.s %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 08 31 cf[ ]+xorl %ecx,%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 33 39[ ]+xorl \(%ecx\),%r31d
+[ ]*[a-f0-9]+:[ ]*67 62 64 7c 08 31 39[ ]+xorl %r31d,\(%ecx\)
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 11 cf[ ]+adcl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 64 7c 18 13 f9[ ]+adcl.s %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 11 cf[ ]+adcl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 11 38[ ]+adcq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 13 38[ ]+adcq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 11 38[ ]+adcq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 13 38[ ]+adcq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 01 cf[ ]+addl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 64 7c 18 03 f9[ ]+addl.s %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 01 cf[ ]+addl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 01 38[ ]+addq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 03 38[ ]+addq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 01 38[ ]+addq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 03 38[ ]+addq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 21 cf[ ]+andl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 64 7c 18 23 f9[ ]+andl.s %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 21 cf[ ]+andl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 21 38[ ]+andq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 23 38[ ]+andq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 21 38[ ]+andq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 23 38[ ]+andq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 09 cf[ ]+orl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 64 7c 18 0b f9[ ]+orl.s %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 09 cf[ ]+orl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 09 38[ ]+orq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 0b 38[ ]+orq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 09 38[ ]+orq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 0b 38[ ]+orq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 19 cf[ ]+sbbl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 64 7c 18 1b f9[ ]+sbbl.s %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 19 cf[ ]+sbbl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 19 38[ ]+sbbq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 1b 38[ ]+sbbq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 19 38[ ]+sbbq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 1b 38[ ]+sbbq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 29 cf[ ]+subl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 64 7c 18 2b f9[ ]+subl.s %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 29 cf[ ]+subl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 29 38[ ]+subq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 2b 38[ ]+subq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 29 38[ ]+subq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 2b 38[ ]+subq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 31 cf[ ]+xorl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 64 7c 18 33 f9[ ]+xorl.s %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 dc 7c 18 31 cf[ ]+xorl %ecx,%r31d,%eax
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 31 38[ ]+xorq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 33 38[ ]+xorq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 31 38[ ]+xorq %r31,\(%r8\),%r16
+[ ]*[a-f0-9]+:[ ]*62 44 fc 10 33 38[ ]+xorq \(%r8\),%r31,%r16
+[ ]*[a-f0-9]+:[ ]*62 f4 04 02 39 d0[ ]+ccmpbl \{dfv=\} %edx,%eax
+[ ]*[a-f0-9]+:[ ]*62 f4 04 02 3b c2[ ]+ccmpbl.s \{dfv=\} %edx,%eax
+[ ]*[a-f0-9]+:[ ]*62 f4 04 02 39 d0[ ]+ccmpbl \{dfv=\} %edx,%eax
+[ ]*[a-f0-9]+:[ ]*67 62 f4 04 02 3b 02[ ]+ccmpbl \{dfv=\} \(%edx\),%eax
+[ ]*[a-f0-9]+:[ ]*67 62 f4 04 02 39 02[ ]+ccmpbl \{dfv=\} %eax,\(%edx\)
+[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 42 c2[ ]+cfcmovbl %edx,%eax
+[ ]*[a-f0-9]+:[ ]*62 f4 7c 08 42 c2[ ]+cfcmovbl %edx,%eax
+[ ]*[a-f0-9]+:[ ]*62 f4 7c 0c 42 d0[ ]+cfcmovbl.s %edx,%eax
+[ ]*[a-f0-9]+:[ ]*67 62 f4 7c 08 42 02[ ]+cfcmovbl \(%edx\),%eax
+[ ]*[a-f0-9]+:[ ]*67 62 f4 7c 0c 42 02[ ]+cfcmovbl %eax,\(%edx\)
+[ ]*[a-f0-9]+:[ ]*62 f4 04 02 85 d0[ ]+ctestbl \{dfv=\} %edx,%eax
+[ ]*[a-f0-9]+:[ ]*62 f4 04 02 85 c2[ ]+ctestbl \{dfv=\} %eax,%edx
+[ ]*[a-f0-9]+:[ ]*62 f4 04 02 85 d0[ ]+ctestbl \{dfv=\} %edx,%eax
+[ ]*[a-f0-9]+:[ ]*67 62 f4 04 02 85 02[ ]+ctestbl \{dfv=\} %eax,\(%edx\)
+[ ]*[a-f0-9]+:[ ]*67 62 f4 04 02 85 02[ ]+ctestbl \{dfv=\} %eax,\(%edx\)
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos-apx.s b/gas/testsuite/gas/i386/x86-64-pseudos-apx.s
new file mode 100644
index 0000000..0e8287d
--- /dev/null
+++ b/gas/testsuite/gas/i386/x86-64-pseudos-apx.s
@@ -0,0 +1,45 @@
+# Check 64bit APX instructions with pseudo prefixes for encoding
+
+.text
+_start:
+ #APX REX2
+ .irp m, mov, adc, add, and, cmp, or, sbb, sub, test, xor, xchg
+ \m %ecx, %r31d
+ {load} \m %ecx, %r31d
+ {store} \m %ecx, %r31d
+ {load} \m (%ecx), %r31d
+ {store} \m %r31d, (%ecx)
+ .endr
+
+ movaps (%r31),%xmm2
+ {load} movaps (%r31),%xmm2
+ {store} movaps %xmm2, (%r31)
+
+ #APX EVEX promoted from legacy
+ .irp m, adc, add, and, cmp, or, sbb, sub, test, xor
+ {evex} \m %ecx, %r31d
+ {evex} {load} \m %ecx, %r31d
+ {evex} {store} \m %ecx, %r31d
+ {evex} {load} \m (%ecx), %r31d
+ {evex} {store} \m %r31d, (%ecx)
+ .endr
+
+ #APX NDD
+ .irp m, adc, add, and, or, sbb, sub, xor
+ \m %ecx, %r31d, %eax
+ {load} \m %ecx, %r31d, %eax
+ {store} \m %ecx, %r31d, %eax
+ {load} \m %r31,(%r8),%r16
+ {load} \m (%r8),%r31,%r16
+ {store} \m %r31,(%r8),%r16
+ {store} \m (%r8),%r31,%r16
+ .endr
+
+ #APX News.
+ .irp m, ccmpb, cfcmovb, ctestb
+ \m %edx, %eax
+ {load} \m %edx, %eax
+ {store} \m %edx, %eax
+ {load} \m (%edx), %eax
+ {store} \m %eax, (%edx)
+ .endr
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index 8974a46..95b26ab 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -134,6 +134,7 @@ run_dump_test "noreg64-rex64"
run_dump_test "noreg-intel64"
run_list_test "noreg-intel64" "-I${srcdir}/$subdir -mintel64"
run_dump_test "noreg64-evex"
+run_dump_test "noreg64-evex-data16"
run_list_test "movx64" "-al"
run_list_test "cvtsi2sX"
run_list_test "x86-64-nosse2" "-al"
@@ -356,6 +357,8 @@ run_list_test "x86-64-apx-push2pop2-inval"
run_dump_test "x86-64-apx-ccmp-ctest"
run_dump_test "x86-64-apx-ccmp-ctest-intel"
run_list_test "x86-64-apx-ccmp-ctest-inval"
+run_dump_test "x86-64-apx-cfcmov"
+run_dump_test "x86-64-apx-cfcmov-intel"
run_dump_test "x86-64-apx-pushp-popp"
run_dump_test "x86-64-apx-pushp-popp-intel"
run_list_test "x86-64-apx-pushp-popp-inval"
@@ -557,6 +560,7 @@ run_dump_test "x86-64-cet-intel"
run_list_test "x86-64-cet-ibt-inval"
run_list_test "x86-64-cet-shstk-inval"
run_dump_test "x86-64-pseudos"
+run_dump_test "x86-64-pseudos-apx"
run_list_test "x86-64-pseudos-bad"
run_list_test "x86-64-inval-pseudo" "-al"
run_dump_test "x86-64-notrack"
diff --git a/gas/testsuite/gas/ia64/pcrel.s b/gas/testsuite/gas/ia64/pcrel.s
index d63130a..b14e324 100644
--- a/gas/testsuite/gas/ia64/pcrel.s
+++ b/gas/testsuite/gas/ia64/pcrel.s
@@ -13,27 +13,27 @@ _&n:
_e&n:
.endm
-.macro m1 op, opnd1
+.macro m1 op, opnd1:vararg
.align 16
op opnd1 _e&op - _&op
.endm
-.macro m2 op, opnd1
+.macro m2 op, opnd1:vararg
.align 16
op opnd1 @pcrel(esym)
.endm
-.macro m3 op, opnd1
+.macro m3 op, opnd1:vararg
.align 16
op opnd1 esym - _&op
.endm
-.macro m4 op, opnd1
+.macro m4 op, opnd1:vararg
.align 16
op opnd1 esym - .
.endm
-.macro m5 op, opnd1
+.macro m5 op, opnd1:vararg
.align 16
op opnd1 esym - _e&op
.endm
-.macro m6 op, opnd1
+.macro m6 op, opnd1:vararg
.align 16
op opnd1 0
.endm
diff --git a/gas/testsuite/gas/mips/allegrex@div-trap.d b/gas/testsuite/gas/mips/allegrex@div-trap.d
new file mode 100644
index 0000000..2000416
--- /dev/null
+++ b/gas/testsuite/gas/mips/allegrex@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS div with traps
+#source: div.s
+#dump: div.d
diff --git a/gas/testsuite/gas/mips/allegrex@mul-trap.d b/gas/testsuite/gas/mips/allegrex@mul-trap.d
new file mode 100644
index 0000000..e9b8b2e
--- /dev/null
+++ b/gas/testsuite/gas/mips/allegrex@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS mul with traps
+#source: mul.s
+#dump: allegrex@mul.d
diff --git a/gas/testsuite/gas/mips/mul-ilocks.d b/gas/testsuite/gas/mips/allegrex@mul.d
index 9450a04..7479f0b 100644
--- a/gas/testsuite/gas/mips/mul-ilocks.d
+++ b/gas/testsuite/gas/mips/allegrex@mul.d
@@ -1,6 +1,6 @@
+#as: -32
#objdump: -dr --prefix-addresses
-#name: MIPS mul-ilocks
-#as: -march=r4000 -mtune=r4000
+#name: MIPS mul
#source: mul.s
# Test the mul macro.
@@ -59,23 +59,4 @@ Disassembly of section .text:
0+00c0 <[^>]*> beqz at,0+cc <foo\+(0x|)cc>
0+00c4 <[^>]*> nop
0+00c8 <[^>]*> break (0x0,0x6|0x6)
-0+00cc <[^>]*> dmultu a1,a2
-0+00d0 <[^>]*> mflo a0
-0+00d4 <[^>]*> li at,1
-0+00d8 <[^>]*> dmult a1,at
-0+00dc <[^>]*> mflo a0
-0+00e0 <[^>]*> dmult a1,a2
-0+00e4 <[^>]*> mflo a0
-0+00e8 <[^>]*> dsra32 a0,a0,0x1f
-0+00ec <[^>]*> mfhi at
-0+00f0 <[^>]*> beq a0,at,0+fc <foo\+(0x|)fc>
-0+00f4 <[^>]*> nop
-0+00f8 <[^>]*> break (0x0,0x6|0x6)
-0+00fc <[^>]*> mflo a0
-0+0100 <[^>]*> dmultu a1,a2
-0+0104 <[^>]*> mfhi at
-0+0108 <[^>]*> mflo a0
-0+010c <[^>]*> beqz at,0+118 <foo\+(0x|)118>
-0+0110 <[^>]*> nop
-0+0114 <[^>]*> break (0x0,0x6|0x6)
...
diff --git a/gas/testsuite/gas/mips/allegrex@trap-opt.d b/gas/testsuite/gas/mips/allegrex@trap-opt.d
new file mode 100644
index 0000000..c6e7d67
--- /dev/null
+++ b/gas/testsuite/gas/mips/allegrex@trap-opt.d
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --trap
+#as: -32 --trap
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+#dump: mips1@trap-opt.d
diff --git a/gas/testsuite/gas/mips/break-opt.d b/gas/testsuite/gas/mips/break-opt.d
new file mode 100644
index 0000000..86e0639
--- /dev/null
+++ b/gas/testsuite/gas/mips/break-opt.d
@@ -0,0 +1,115 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --break
+#as: -32 --break
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410004 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 14810002 bne a0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 10c10002 beq a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 10200002 beqz at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410004 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 14810002 bne a0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 10c10002 beq a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 10200002 beqz at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410004 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 14810002 bne a0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 10c10002 beq a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 10200002 beqz at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/brtr-opt.l b/gas/testsuite/gas/mips/brtr-opt.l
new file mode 100644
index 0000000..7f7cc0a
--- /dev/null
+++ b/gas/testsuite/gas/mips/brtr-opt.l
@@ -0,0 +1,7 @@
+.*: Assembler messages:
+.*:9: Warning: divide by zero
+.*:10: Warning: divide by zero
+.*:21: Warning: divide by zero
+.*:22: Warning: divide by zero
+.*:33: Warning: divide by zero
+.*:34: Warning: divide by zero
diff --git a/gas/testsuite/gas/mips/brtr-opt.s b/gas/testsuite/gas/mips/brtr-opt.s
new file mode 100644
index 0000000..0b06277
--- /dev/null
+++ b/gas/testsuite/gas/mips/brtr-opt.s
@@ -0,0 +1,46 @@
+# We use XOR placeholders to avoid implicit NOPs causing output variation.
+ .text
+ .set nodsp
+ .set noeva
+ .set nomips16e2
+ .set nomt
+ .set novirt
+foo:
+ div $6, $4, $0
+ divu $6, $4, 0
+ rem $6, $4, $2
+ xor $16, $16
+ remu $6, $4, $2
+ xor $16, $16
+ xor $17, $17
+ mulo $6, $4, $2
+ xor $16, $16
+ mulou $6, $4, 2
+
+ .set mips1
+ div $6, $4, $0
+ divu $6, $4, 0
+ rem $6, $4, $2
+ xor $16, $16
+ remu $6, $4, $2
+ xor $16, $16
+ xor $17, $17
+ mulo $6, $4, $2
+ xor $16, $16
+ mulou $6, $4, 2
+
+ .set mips2
+ div $6, $4, $0
+ divu $6, $4, 0
+ rem $6, $4, $2
+ xor $16, $16
+ remu $6, $4, $2
+ xor $16, $16
+ xor $17, $17
+ mulo $6, $4, $2
+ xor $16, $16
+ mulou $6, $4, 2
+
+# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 4, 0
+ .space 16
diff --git a/gas/testsuite/gas/mips/div-ilocks.d b/gas/testsuite/gas/mips/div-ilocks.d
deleted file mode 100644
index a3ff94b..0000000
--- a/gas/testsuite/gas/mips/div-ilocks.d
+++ /dev/null
@@ -1,110 +0,0 @@
-#objdump: -dr --prefix-addresses -mmips:4000
-#name: MIPS div
-#source: div.s
-
-# Test the div macro.
-
-.*: +file format .*mips.*
-
-Disassembly of section .text:
-0+0000 <[^>]*> div zero,a0,a1
-0+0004 <[^>]*> bnez a1,0+0010 <foo\+0x10>
-0+0008 <[^>]*> div zero,a0,a1
-0+000c <[^>]*> break (0x0,0x7|0x7)
-0+0010 <[^>]*> li at,-1
-0+0014 <[^>]*> bne a1,at,0+0028 <foo\+0x28>
-0+0018 <[^>]*> lui at,0x8000
-0+001c <[^>]*> bne a0,at,0+0028 <foo\+0x28>
-0+0020 <[^>]*> nop
-0+0024 <[^>]*> break (0x0,0x6|0x6)
-0+0028 <[^>]*> mflo a0
-0+002c <[^>]*> bnez a2,0+0038 <foo\+0x38>
-0+0030 <[^>]*> div zero,a1,a2
-0+0034 <[^>]*> break (0x0,0x7|0x7)
-0+0038 <[^>]*> li at,-1
-0+003c <[^>]*> bne a2,at,0+0050 <foo\+0x50>
-0+0040 <[^>]*> lui at,0x8000
-0+0044 <[^>]*> bne a1,at,0+0050 <foo\+0x50>
-0+0048 <[^>]*> nop
-0+004c <[^>]*> break (0x0,0x6|0x6)
-0+0050 <[^>]*> mflo a0
-0+0054 <[^>]*> move a0,a0
-0+0058 <[^>]*> move a0,a1
-0+005c <[^>]*> neg a0,a0
-0+0060 <[^>]*> neg a0,a1
-0+0064 <[^>]*> li at,2
-0+0068 <[^>]*> div zero,a0,at
-0+006c <[^>]*> mflo a0
-0+0070 <[^>]*> li at,2
-0+0074 <[^>]*> div zero,a1,at
-0+0078 <[^>]*> mflo a0
-0+007c <[^>]*> li at,0x8000
-0+0080 <[^>]*> div zero,a0,at
-0+0084 <[^>]*> mflo a0
-0+0088 <[^>]*> li at,0x8000
-0+008c <[^>]*> div zero,a1,at
-0+0090 <[^>]*> mflo a0
-0+0094 <[^>]*> li at,-32768
-0+0098 <[^>]*> div zero,a0,at
-0+009c <[^>]*> mflo a0
-0+00a0 <[^>]*> li at,-32768
-0+00a4 <[^>]*> div zero,a1,at
-0+00a8 <[^>]*> mflo a0
-0+00ac <[^>]*> lui at,0x1
-0+00b0 <[^>]*> div zero,a0,at
-0+00b4 <[^>]*> mflo a0
-0+00b8 <[^>]*> lui at,0x1
-0+00bc <[^>]*> div zero,a1,at
-0+00c0 <[^>]*> mflo a0
-0+00c4 <[^>]*> lui at,0x1
-0+00c8 <[^>]*> ori at,at,0xa5a5
-0+00cc <[^>]*> div zero,a0,at
-0+00d0 <[^>]*> mflo a0
-0+00d4 <[^>]*> lui at,0x1
-0+00d8 <[^>]*> ori at,at,0xa5a5
-0+00dc <[^>]*> div zero,a1,at
-0+00e0 <[^>]*> mflo a0
-0+00e4 <[^>]*> divu zero,a0,a1
-0+00e8 <[^>]*> bnez a1,0+0f4 <foo\+0xf4>
-0+00ec <[^>]*> divu zero,a0,a1
-0+00f0 <[^>]*> break (0x0,0x7|0x7)
-0+00f4 <[^>]*> mflo a0
-0+00f8 <[^>]*> bnez a2,0+0104 <foo\+0x104>
-0+00fc <[^>]*> divu zero,a1,a2
-0+0100 <[^>]*> break (0x0,0x7|0x7)
-0+0104 <[^>]*> mflo a0
-0+0108 <[^>]*> move a0,a0
-0+010c <[^>]*> bnez a2,0+0118 <foo\+0x118>
-0+0110 <[^>]*> div zero,a1,a2
-0+0114 <[^>]*> break (0x0,0x7|0x7)
-0+0118 <[^>]*> li at,-1
-0+011c <[^>]*> bne a2,at,0+0130 <foo\+0x130>
-0+0120 <[^>]*> lui at,0x8000
-0+0124 <[^>]*> bne a1,at,0+0130 <foo\+0x130>
-0+0128 <[^>]*> nop
-0+012c <[^>]*> break (0x0,0x6|0x6)
-0+0130 <[^>]*> mfhi a0
-0+0134 <[^>]*> li at,2
-0+0138 <[^>]*> divu zero,a1,at
-0+013c <[^>]*> mfhi a0
-0+0140 <[^>]*> bnez a2,0+014c <foo\+0x14c>
-0+0144 <[^>]*> ddiv zero,a1,a2
-0+0148 <[^>]*> break (0x0,0x7|0x7)
-0+014c <[^>]*> daddiu at,zero,-1
-0+0150 <[^>]*> bne a2,at,0+0168 <foo\+0x168>
-0+0154 <[^>]*> daddiu at,zero,1
-0+0158 <[^>]*> dsll32 at,at,0x1f
-0+015c <[^>]*> bne a1,at,0+0168 <foo\+0x168>
-0+0160 <[^>]*> nop
-0+0164 <[^>]*> break (0x0,0x6|0x6)
-0+0168 <[^>]*> mflo a0
-0+016c <[^>]*> li at,2
-0+0170 <[^>]*> ddivu zero,a1,at
-0+0174 <[^>]*> mflo a0
-0+0178 <[^>]*> li at,0x8000
-0+017c <[^>]*> ddiv zero,a1,at
-0+0180 <[^>]*> mfhi a0
-0+0184 <[^>]*> li at,-32768
-0+0188 <[^>]*> ddivu zero,a1,at
-0+018c <[^>]*> mfhi a0
- ...
diff --git a/gas/testsuite/gas/mips/div-trap.d b/gas/testsuite/gas/mips/div-trap.d
new file mode 100644
index 0000000..5a76586
--- /dev/null
+++ b/gas/testsuite/gas/mips/div-trap.d
@@ -0,0 +1,80 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+[0-9a-f]+ <[^>]*> 0085001a div zero,a0,a1
+[0-9a-f]+ <[^>]*> 00a001f4 teq a1,zero,0x7
+[0-9a-f]+ <[^>]*> 0085001a div zero,a0,a1
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14a10002 bne a1,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 008101b4 teq a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001a div zero,a1,a2
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14c10002 bne a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 00a101b4 teq a1,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00802025 move a0,a0
+[0-9a-f]+ <[^>]*> 00a02025 move a0,a1
+[0-9a-f]+ <[^>]*> 00042022 neg a0,a0
+[0-9a-f]+ <[^>]*> 00052022 neg a0,a1
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 0085001b divu zero,a0,a1
+[0-9a-f]+ <[^>]*> 00a001f4 teq a1,zero,0x7
+[0-9a-f]+ <[^>]*> 0085001b divu zero,a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001b divu zero,a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00802025 move a0,a0
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001a div zero,a1,a2
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14c10002 bne a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 00a101b4 teq a1,at,0x6
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00a1001b divu zero,a1,at
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/div.d b/gas/testsuite/gas/mips/div.d
index 869c0fd..465633d 100644
--- a/gas/testsuite/gas/mips/div.d
+++ b/gas/testsuite/gas/mips/div.d
@@ -1,5 +1,5 @@
-#as: -march=r4000 -mtune=r4000
-#objdump: -dr --prefix-addresses -mmips:4000
+#as: -32
+#objdump: -dr --prefix-addresses
#name: MIPS div
# Test the div macro.
@@ -18,108 +18,73 @@ Disassembly of section .text:
0+0020 <[^>]*> nop
0+0024 <[^>]*> break (0x0,0x6|0x6)
0+0028 <[^>]*> mflo a0
-0+002c <[^>]*> nop
-0+0030 <[^>]*> bnez a2,0+003c <foo\+0x3c>
-0+0034 <[^>]*> div zero,a1,a2
-0+0038 <[^>]*> break (0x0,0x7|0x7)
-0+003c <[^>]*> li at,-1
-0+0040 <[^>]*> bne a2,at,0+0054 <foo\+0x54>
-0+0044 <[^>]*> lui at,0x8000
-0+0048 <[^>]*> bne a1,at,0+0054 <foo\+0x54>
-0+004c <[^>]*> nop
-0+0050 <[^>]*> break (0x0,0x6|0x6)
-0+0054 <[^>]*> mflo a0
-0+0058 <[^>]*> move a0,a0
-0+005c <[^>]*> move a0,a1
-0+0060 <[^>]*> neg a0,a0
-0+0064 <[^>]*> neg a0,a1
-0+0068 <[^>]*> li at,2
-0+006c <[^>]*> div zero,a0,at
-0+0070 <[^>]*> mflo a0
-0+0074 <[^>]*> li at,2
-0+0078 <[^>]*> nop
-0+007c <[^>]*> div zero,a1,at
-0+0080 <[^>]*> mflo a0
-0+0084 <[^>]*> li at,0x8000
-0+0088 <[^>]*> nop
-0+008c <[^>]*> div zero,a0,at
+0+002c <[^>]*> bnez a2,0+0038 <foo\+0x38>
+0+0030 <[^>]*> div zero,a1,a2
+0+0034 <[^>]*> break (0x0,0x7|0x7)
+0+0038 <[^>]*> li at,-1
+0+003c <[^>]*> bne a2,at,0+0050 <foo\+0x50>
+0+0040 <[^>]*> lui at,0x8000
+0+0044 <[^>]*> bne a1,at,0+0050 <foo\+0x50>
+0+0048 <[^>]*> nop
+0+004c <[^>]*> break (0x0,0x6|0x6)
+0+0050 <[^>]*> mflo a0
+0+0054 <[^>]*> move a0,a0
+0+0058 <[^>]*> move a0,a1
+0+005c <[^>]*> neg a0,a0
+0+0060 <[^>]*> neg a0,a1
+0+0064 <[^>]*> li at,2
+0+0068 <[^>]*> div zero,a0,at
+0+006c <[^>]*> mflo a0
+0+0070 <[^>]*> li at,2
+0+0074 <[^>]*> div zero,a1,at
+0+0078 <[^>]*> mflo a0
+0+007c <[^>]*> li at,0x8000
+0+0080 <[^>]*> div zero,a0,at
+0+0084 <[^>]*> mflo a0
+0+0088 <[^>]*> li at,0x8000
+0+008c <[^>]*> div zero,a1,at
0+0090 <[^>]*> mflo a0
-0+0094 <[^>]*> li at,0x8000
-0+0098 <[^>]*> nop
-0+009c <[^>]*> div zero,a1,at
-0+00a0 <[^>]*> mflo a0
-0+00a4 <[^>]*> li at,-32768
-0+00a8 <[^>]*> nop
-0+00ac <[^>]*> div zero,a0,at
-0+00b0 <[^>]*> mflo a0
-0+00b4 <[^>]*> li at,-32768
-0+00b8 <[^>]*> nop
+0+0094 <[^>]*> li at,-32768
+0+0098 <[^>]*> div zero,a0,at
+0+009c <[^>]*> mflo a0
+0+00a0 <[^>]*> li at,-32768
+0+00a4 <[^>]*> div zero,a1,at
+0+00a8 <[^>]*> mflo a0
+0+00ac <[^>]*> lui at,0x1
+0+00b0 <[^>]*> div zero,a0,at
+0+00b4 <[^>]*> mflo a0
+0+00b8 <[^>]*> lui at,0x1
0+00bc <[^>]*> div zero,a1,at
0+00c0 <[^>]*> mflo a0
0+00c4 <[^>]*> lui at,0x1
-0+00c8 <[^>]*> nop
+0+00c8 <[^>]*> ori at,at,0xa5a5
0+00cc <[^>]*> div zero,a0,at
0+00d0 <[^>]*> mflo a0
0+00d4 <[^>]*> lui at,0x1
-0+00d8 <[^>]*> nop
+0+00d8 <[^>]*> ori at,at,0xa5a5
0+00dc <[^>]*> div zero,a1,at
0+00e0 <[^>]*> mflo a0
-0+00e4 <[^>]*> lui at,0x1
-0+00e8 <[^>]*> ori at,at,0xa5a5
-0+00ec <[^>]*> div zero,a0,at
-0+00f0 <[^>]*> mflo a0
-0+00f4 <[^>]*> lui at,0x1
-0+00f8 <[^>]*> ori at,at,0xa5a5
-0+00fc <[^>]*> div zero,a1,at
-0+0100 <[^>]*> mflo a0
- ...
-0+010c <[^>]*> divu zero,a0,a1
-0+0110 <[^>]*> bnez a1,0+011c <foo\+0x11c>
-0+0114 <[^>]*> divu zero,a0,a1
-0+0118 <[^>]*> break (0x0,0x7|0x7)
-0+011c <[^>]*> mflo a0
-0+0120 <[^>]*> nop
-0+0124 <[^>]*> bnez a2,0+0130 <foo\+0x130>
-0+0128 <[^>]*> divu zero,a1,a2
-0+012c <[^>]*> break (0x0,0x7|0x7)
-0+0130 <[^>]*> mflo a0
-0+0134 <[^>]*> move a0,a0
-0+0138 <[^>]*> bnez a2,0+0144 <foo\+0x144>
-0+013c <[^>]*> div zero,a1,a2
-0+0140 <[^>]*> break (0x0,0x7|0x7)
-0+0144 <[^>]*> li at,-1
-0+0148 <[^>]*> bne a2,at,0+015c <foo\+0x15c>
-0+014c <[^>]*> lui at,0x8000
-0+0150 <[^>]*> bne a1,at,0+015c <foo\+0x15c>
-0+0154 <[^>]*> nop
-0+0158 <[^>]*> break (0x0,0x6|0x6)
-0+015c <[^>]*> mfhi a0
-0+0160 <[^>]*> li at,2
-0+0164 <[^>]*> nop
-0+0168 <[^>]*> divu zero,a1,at
-0+016c <[^>]*> mfhi a0
-0+0170 <[^>]*> nop
-0+0174 <[^>]*> bnez a2,0+0180 <foo\+0x180>
-0+0178 <[^>]*> ddiv zero,a1,a2
-0+017c <[^>]*> break (0x0,0x7|0x7)
-0+0180 <[^>]*> (daddiu at,zero,-1|li at,-1)
-0+0184 <[^>]*> bne a2,at,0+019c <foo\+0x19c>
-0+0188 <[^>]*> (daddiu at,zero,1|li at,1)
-0+018c <[^>]*> dsll32 at,at,0x1f
-0+0190 <[^>]*> bne a1,at,0+019c <foo\+0x19c>
-0+0194 <[^>]*> nop
-0+0198 <[^>]*> break (0x0,0x6|0x6)
-0+019c <[^>]*> mflo a0
-0+01a0 <[^>]*> li at,2
-0+01a4 <[^>]*> nop
-0+01a8 <[^>]*> ddivu zero,a1,at
-0+01ac <[^>]*> mflo a0
-0+01b0 <[^>]*> li at,0x8000
-0+01b4 <[^>]*> nop
-0+01b8 <[^>]*> ddiv zero,a1,at
-0+01bc <[^>]*> mfhi a0
-0+01c0 <[^>]*> li at,-32768
-0+01c4 <[^>]*> nop
-0+01c8 <[^>]*> ddivu zero,a1,at
-0+01cc <[^>]*> mfhi a0
+0+00e4 <[^>]*> divu zero,a0,a1
+0+00e8 <[^>]*> bnez a1,0+0f4 <foo\+0xf4>
+0+00ec <[^>]*> divu zero,a0,a1
+0+00f0 <[^>]*> break (0x0,0x7|0x7)
+0+00f4 <[^>]*> mflo a0
+0+00f8 <[^>]*> bnez a2,0+0104 <foo\+0x104>
+0+00fc <[^>]*> divu zero,a1,a2
+0+0100 <[^>]*> break (0x0,0x7|0x7)
+0+0104 <[^>]*> mflo a0
+0+0108 <[^>]*> move a0,a0
+0+010c <[^>]*> bnez a2,0+0118 <foo\+0x118>
+0+0110 <[^>]*> div zero,a1,a2
+0+0114 <[^>]*> break (0x0,0x7|0x7)
+0+0118 <[^>]*> li at,-1
+0+011c <[^>]*> bne a2,at,0+0130 <foo\+0x130>
+0+0120 <[^>]*> lui at,0x8000
+0+0124 <[^>]*> bne a1,at,0+0130 <foo\+0x130>
+0+0128 <[^>]*> nop
+0+012c <[^>]*> break (0x0,0x6|0x6)
+0+0130 <[^>]*> mfhi a0
+0+0134 <[^>]*> li at,2
+0+0138 <[^>]*> divu zero,a1,at
+0+013c <[^>]*> mfhi a0
...
diff --git a/gas/testsuite/gas/mips/div.s b/gas/testsuite/gas/mips/div.s
index 6d99906..c9aabae 100644
--- a/gas/testsuite/gas/mips/div.s
+++ b/gas/testsuite/gas/mips/div.s
@@ -29,13 +29,7 @@ foo:
rem $4,$5,$6
remu $4,$5,2
-# Sanity check the 64 bit versions.
- .set mips3
- ddiv $4,$5,$6
- ddivu $4,$5,2
- drem $4,$5,0x8000
- dremu $4,$5,-0x8000
-
# force some padding, to make objdump consistently report that there's some
# here...
- .space 8
+ .align 4, 0
+ .space 16
diff --git a/gas/testsuite/gas/mips/div64-trap.d b/gas/testsuite/gas/mips/div64-trap.d
new file mode 100644
index 0000000..eab1975
--- /dev/null
+++ b/gas/testsuite/gas/mips/div64-trap.d
@@ -0,0 +1,28 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div with traps
+#source: div64.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001e ddiv zero,a1,a2
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14c10003 bne a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00010ffc dsll32 at,at,0x1f
+[0-9a-f]+ <[^>]*> 00a101b4 teq a1,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00a1001f ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00a1001e ddiv zero,a1,at
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00a1001f ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/div64.d b/gas/testsuite/gas/mips/div64.d
new file mode 100644
index 0000000..3a02205
--- /dev/null
+++ b/gas/testsuite/gas/mips/div64.d
@@ -0,0 +1,30 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit div
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> bnez a2,0+000c <foo\+0xc>
+0+0004 <[^>]*> ddiv zero,a1,a2
+0+0008 <[^>]*> break (0x0,0x7|0x7)
+0+000c <[^>]*> (daddiu at,zero,-1|li at,-1)
+0+0010 <[^>]*> bne a2,at,0+0028 <foo\+0x28>
+0+0014 <[^>]*> (daddiu at,zero,1|li at,1)
+0+0018 <[^>]*> dsll32 at,at,0x1f
+0+001c <[^>]*> bne a1,at,0+0028 <foo\+0x28>
+0+0020 <[^>]*> nop
+0+0024 <[^>]*> break (0x0,0x6|0x6)
+0+0028 <[^>]*> mflo a0
+0+002c <[^>]*> li at,2
+0+0030 <[^>]*> ddivu zero,a1,at
+0+0034 <[^>]*> mflo a0
+0+0038 <[^>]*> li at,0x8000
+0+003c <[^>]*> ddiv zero,a1,at
+0+0040 <[^>]*> mfhi a0
+0+0044 <[^>]*> li at,-32768
+0+0048 <[^>]*> ddivu zero,a1,at
+0+004c <[^>]*> mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/div64.s b/gas/testsuite/gas/mips/div64.s
new file mode 100644
index 0000000..65acbea
--- /dev/null
+++ b/gas/testsuite/gas/mips/div64.s
@@ -0,0 +1,10 @@
+# Sanity check the 64 bit div macro versions.
+foo:
+ ddiv $4,$5,$6
+ ddivu $4,$5,2
+ drem $4,$5,0x8000
+ dremu $4,$5,-0x8000
+
+# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 4, 0
+ .space 16
diff --git a/gas/testsuite/gas/mips/micromips@break-opt.d b/gas/testsuite/gas/mips/micromips@break-opt.d
new file mode 100644
index 0000000..0516b5e
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@break-opt.d
@@ -0,0 +1,134 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --break
+#as: -32 --break
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <[^>]*> b402 fffe bnez v0,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 0044 ab3c div zero,a0,v0
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_0> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b422 fffe bne v0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> b424 fffe bne a0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_1> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> b402 fffe bnez v0,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_2
+[0-9a-f]+ <[^>]*> 0044 bb3c divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_2> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 4449 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 0044 8b3c mult a0,v0
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 00c6 f880 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 9426 fffe beq a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_3
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_3> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 9b3c multu a0,at
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 9401 fffe beqz at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_4
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_4> 4687 break 0x7
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <[^>]*> b402 fffe bnez v0,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_5
+[0-9a-f]+ <[^>]*> 0044 ab3c div zero,a0,v0
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_5> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b422 fffe bne v0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_6
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> b424 fffe bne a0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_6
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_6> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> b402 fffe bnez v0,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_7
+[0-9a-f]+ <[^>]*> 0044 bb3c divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_7> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 4449 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 0044 8b3c mult a0,v0
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 00c6 f880 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 9426 fffe beq a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_8
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_8> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 9b3c multu a0,at
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 9401 fffe beqz at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_9
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_9> 4687 break 0x7
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <[^>]*> b402 fffe bnez v0,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_10
+[0-9a-f]+ <[^>]*> 0044 ab3c div zero,a0,v0
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_10> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b422 fffe bne v0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_11
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> b424 fffe bne a0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_11
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_11> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> b402 fffe bnez v0,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_12
+[0-9a-f]+ <[^>]*> 0044 bb3c divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_12> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 4449 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 0044 8b3c mult a0,v0
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 00c6 f880 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 9426 fffe beq a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_13
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_13> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 9b3c multu a0,at
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 9401 fffe beqz at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_14
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+ \.\.\.
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@div-trap.d b/gas/testsuite/gas/mips/micromips@div-trap.d
new file mode 100644
index 0000000..bd157bd
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@div-trap.d
@@ -0,0 +1,83 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a4 ab3c div zero,a0,a1
+[0-9a-f]+ <[^>]*> 0005 703c teq a1,zero,0x7
+[0-9a-f]+ <[^>]*> 00a4 ab3c div zero,a0,a1
+[0-9a-f]+ <[^>]*> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b425 fffe bne a1,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 0024 603c teq a0,at,0x6
+[0-9a-f]+ <\.L\^_0> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0006 703c teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00c5 ab3c div zero,a1,a2
+[0-9a-f]+ <[^>]*> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b426 fffe bne a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 0025 603c teq a1,at,0x6
+[0-9a-f]+ <\.L\^_1> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0c84 move a0,a0
+[0-9a-f]+ <[^>]*> 0c85 move a0,a1
+[0-9a-f]+ <[^>]*> 0080 2190 neg a0,a0
+[0-9a-f]+ <[^>]*> 00a0 2190 neg a0,a1
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00a4 bb3c divu zero,a0,a1
+[0-9a-f]+ <[^>]*> 0005 703c teq a1,zero,0x7
+[0-9a-f]+ <[^>]*> 00a4 bb3c divu zero,a0,a1
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0006 703c teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00c5 bb3c divu zero,a1,a2
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0c84 move a0,a0
+[0-9a-f]+ <[^>]*> 0006 703c teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00c5 ab3c div zero,a1,a2
+[0-9a-f]+ <[^>]*> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b426 fffe bne a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_2
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 0025 603c teq a1,at,0x6
+[0-9a-f]+ <\.L\^_2> 4604 mfhi a0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0025 bb3c divu zero,a1,at
+[0-9a-f]+ <[^>]*> 4604 mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@div.d b/gas/testsuite/gas/mips/micromips@div.d
new file mode 100644
index 0000000..e670c7a
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@div.d
@@ -0,0 +1,102 @@
+#as: -32
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS div
+#source: div.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a4 ab3c div zero,a0,a1
+[0-9a-f]+ <[^>]*> b405 fffe bnez a1,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 00a4 ab3c div zero,a0,a1
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_0> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b425 fffe bne a1,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> b424 fffe bne a0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_1> 4644 mflo a0
+[0-9a-f]+ <[^>]*> b406 fffe bnez a2,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_2
+[0-9a-f]+ <[^>]*> 00c5 ab3c div zero,a1,a2
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_2> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b426 fffe bne a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_3
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> b425 fffe bne a1,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_3
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_3> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0c84 move a0,a0
+[0-9a-f]+ <[^>]*> 0c85 move a0,a1
+[0-9a-f]+ <[^>]*> 0080 2190 neg a0,a0
+[0-9a-f]+ <[^>]*> 00a0 2190 neg a0,a1
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0024 ab3c div zero,a0,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0025 ab3c div zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00a4 bb3c divu zero,a0,a1
+[0-9a-f]+ <[^>]*> b405 fffe bnez a1,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_4
+[0-9a-f]+ <[^>]*> 00a4 bb3c divu zero,a0,a1
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_4> 4644 mflo a0
+[0-9a-f]+ <[^>]*> b406 fffe bnez a2,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_5
+[0-9a-f]+ <[^>]*> 00c5 bb3c divu zero,a1,a2
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_5> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0c84 move a0,a0
+[0-9a-f]+ <[^>]*> b406 fffe bnez a2,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_6
+[0-9a-f]+ <[^>]*> 00c5 ab3c div zero,a1,a2
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_6> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b426 fffe bne a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_7
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> b425 fffe bne a1,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_7
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_7> 4604 mfhi a0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0025 bb3c divu zero,a1,at
+[0-9a-f]+ <[^>]*> 4604 mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@div64-trap.d b/gas/testsuite/gas/mips/micromips@div64-trap.d
new file mode 100644
index 0000000..e4e5e68
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@div64-trap.d
@@ -0,0 +1,29 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div with traps
+#source: div64.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 0006 703c teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 58c5 ab3c ddiv zero,a1,a2
+[0-9a-f]+ <[^>]*> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b426 fffe bne a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 3020 0001 li at,1
+[0-9a-f]+ <[^>]*> 5821 f808 dsll32 at,at,0x1f
+[0-9a-f]+ <[^>]*> 0025 603c teq a1,at,0x6
+[0-9a-f]+ <\.L\^_0> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 5825 bb3c ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 5825 ab3c ddiv zero,a1,at
+[0-9a-f]+ <[^>]*> 4604 mfhi a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 5825 bb3c ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 4604 mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@div64.d b/gas/testsuite/gas/mips/micromips@div64.d
new file mode 100644
index 0000000..07abe64
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@div64.d
@@ -0,0 +1,34 @@
+#as: -32
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div
+#source: div64.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> b406 fffe bnez a2,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 58c5 ab3c ddiv zero,a1,a2
+[0-9a-f]+ <[^>]*> 4687 break 0x7
+[0-9a-f]+ <\.L\^_0> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b426 fffe bne a2,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 3020 0001 li at,1
+[0-9a-f]+ <[^>]*> 5821 f808 dsll32 at,at,0x1f
+[0-9a-f]+ <[^>]*> b425 fffe bne a1,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_1> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 5825 bb3c ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 5825 ab3c ddiv zero,a1,at
+[0-9a-f]+ <[^>]*> 4604 mfhi a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 5825 bb3c ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 4604 mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@mul-trap.d b/gas/testsuite/gas/mips/micromips@mul-trap.d
new file mode 100644
index 0000000..1ae42bc
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@mul-trap.d
@@ -0,0 +1,52 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a4 2210 mul a0,a0,a1
+[0-9a-f]+ <[^>]*> 00c5 2210 mul a0,a1,a2
+[0-9a-f]+ <[^>]*> 3020 0000 li at,0
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0001 li at,1
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00a4 8b3c mult a0,a1
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0084 f880 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 0024 6c3c tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00c5 8b3c mult a1,a2
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0084 f880 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 0024 6c3c tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00a4 9b3c multu a0,a1
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0001 6c3c tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00c5 9b3c multu a1,a2
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0001 6c3c tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@mul.d b/gas/testsuite/gas/mips/micromips@mul.d
new file mode 100644
index 0000000..c940bd5
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@mul.d
@@ -0,0 +1,65 @@
+#as: -32
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS mul
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a4 2210 mul a0,a0,a1
+[0-9a-f]+ <[^>]*> 00c5 2210 mul a0,a1,a2
+[0-9a-f]+ <[^>]*> 3020 0000 li at,0
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0001 li at,1
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5020 8000 li at,0x8000
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 8000 li at,-32768
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 41a1 0001 lui at,0x1
+[0-9a-f]+ <[^>]*> 5021 a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0025 8b3c mult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00a4 8b3c mult a0,a1
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0084 f880 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_0> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00c5 8b3c mult a1,a2
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0084 f880 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_1> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 00a4 9b3c multu a0,a1
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 9401 fffe beqz at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_2
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_2> 00c5 9b3c multu a1,a2
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 9401 fffe beqz at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_3
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+ \.\.\.
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@mul64-trap.d b/gas/testsuite/gas/mips/micromips@mul64-trap.d
new file mode 100644
index 0000000..54359d1
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@mul64-trap.d
@@ -0,0 +1,26 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 58c5 9b3c dmultu a1,a2
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0001 li at,1
+[0-9a-f]+ <[^>]*> 5825 8b3c dmult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 58c5 8b3c dmult a1,a2
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5884 f888 dsra32 a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 0024 6c3c tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 58c5 9b3c dmultu a1,a2
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 0001 6c3c tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@mul64.d b/gas/testsuite/gas/mips/micromips@mul64.d
new file mode 100644
index 0000000..0075c43
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@mul64.d
@@ -0,0 +1,33 @@
+#as: -32
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 58c5 9b3c dmultu a1,a2
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 3020 0001 li at,1
+[0-9a-f]+ <[^>]*> 5825 8b3c dmult a1,at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 58c5 8b3c dmult a1,a2
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 5884 f888 dsra32 a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 9424 fffe beq a0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+[0-9a-f]+ <\.L\^_0> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 58c5 9b3c dmultu a1,a2
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4644 mflo a0
+[0-9a-f]+ <[^>]*> 9401 fffe beqz at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 0c00 nop
+[0-9a-f]+ <[^>]*> 4686 break 0x6
+ \.\.\.
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/micromips@trap-opt.d b/gas/testsuite/gas/mips/micromips@trap-opt.d
new file mode 100644
index 0000000..dcf2a5a
--- /dev/null
+++ b/gas/testsuite/gas/mips/micromips@trap-opt.d
@@ -0,0 +1,94 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --trap
+#as: -32 --trap
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 0000 703c teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 0000 703c teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 0002 703c teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0044 ab3c div zero,a0,v0
+[0-9a-f]+ <[^>]*> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b422 fffe bne v0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_0
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 0024 603c teq a0,at,0x6
+[0-9a-f]+ <\.L\^_0> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 0002 703c teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0044 bb3c divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 4449 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 0044 8b3c mult a0,v0
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 00c6 f880 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 0026 6c3c tne a2,at,0x6
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 9b3c multu a0,at
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 0001 6c3c tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 0000 703c teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 0000 703c teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 0002 703c teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0044 ab3c div zero,a0,v0
+[0-9a-f]+ <[^>]*> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b422 fffe bne v0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_1
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 0024 603c teq a0,at,0x6
+[0-9a-f]+ <\.L\^_1> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 0002 703c teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0044 bb3c divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 4449 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 0044 8b3c mult a0,v0
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 00c6 f880 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 0026 6c3c tne a2,at,0x6
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 9b3c multu a0,at
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 0001 6c3c tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 0000 703c teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 0000 703c teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 0002 703c teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0044 ab3c div zero,a0,v0
+[0-9a-f]+ <[^>]*> 3020 ffff li at,-1
+[0-9a-f]+ <[^>]*> b422 fffe bne v0,at,[0-9a-f]+ <[^>]*>
+ [0-9a-f]+: R_MICROMIPS_PC16_S1 \.L\^_2
+[0-9a-f]+ <[^>]*> 41a1 8000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 0024 603c teq a0,at,0x6
+[0-9a-f]+ <\.L\^_2> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 0002 703c teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0044 bb3c divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 4606 mfhi a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 4449 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 0044 8b3c mult a0,v0
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 00c6 f880 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 0026 6c3c tne a2,at,0x6
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 4440 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 3020 0002 li at,2
+[0-9a-f]+ <[^>]*> 0024 9b3c multu a0,at
+[0-9a-f]+ <[^>]*> 4601 mfhi at
+[0-9a-f]+ <[^>]*> 4646 mflo a2
+[0-9a-f]+ <[^>]*> 0001 6c3c tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index acb7fb8..108f6db 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -519,6 +519,11 @@ mips_arch_create allegrex 32 mips2 { ror singlefloat oddspreg } \
{ -mmips:allegrex }
mips_arch_create r4000 64 mips3 {} \
{ -march=r4000 -mtune=r4000 } { -mmips:4000 }
+mips_arch_create r5900 64 mips3 { gpr_ilocks singlefloat nollsc } \
+ { -march=r5900 -mtune=r5900 } { -mmips:5900 } \
+ { mipsr5900el-*-* mips64r5900el-*-* }
+mips_arch_create r10000 64 mips4 {} \
+ { -march=r10000 -mtune=r10000 } { -mmips:10000 }
mips_arch_create vr5400 64 mips4 { ror } \
{ -march=vr5400 -mtune=vr5400 } { -mmips:5400 }
mips_arch_create interaptiv-mr2 32 mips32r3 {} \
@@ -541,9 +546,6 @@ mips_arch_create octeon3 64 octeon2 { oddspreg } \
{ }
mips_arch_create xlr 64 mips64 { oddspreg } \
{ -march=xlr -mtune=xlr } { -mmips:xlr }
-mips_arch_create r5900 64 mips3 { gpr_ilocks singlefloat nollsc } \
- { -march=r5900 -mtune=r5900 } { -mmips:5900 } \
- { mipsr5900el-*-* mips64r5900el-*-* }
mips_arch_create mips16e2-interaptiv-mr2 32 mips16e2-32 {} \
{ -march=interaptiv-mr2 -mips16 } \
{ -mmips:interaptiv-mr2 }
@@ -723,7 +725,14 @@ if { [istarget mips*-*-vxworks*] } {
run_list_test "compact-eh-err1"
run_list_test "compact-eh-err2"
- run_dump_test "div"
+ run_dump_test_arches "div" [mips_arch_list_matching mips1 \
+ !mips32r6]
+ run_dump_test_arches "div-trap" [mips_arch_list_matching mips1 \
+ !mips32r6]
+ run_dump_test_arches "div64" [mips_arch_list_matching mips3 !r5900 \
+ !mips64r6]
+ run_dump_test_arches "div64-trap" [mips_arch_list_matching mips3 !r5900 \
+ !mips64r6]
if { !$addr32 && $has_newabi } {
run_dump_test_arches "dli" [mips_arch_list_matching mips3]
@@ -879,7 +888,14 @@ if { [istarget mips*-*-vxworks*] } {
[mips_arch_list_matching fpisa5]
run_dump_test_arches "mips5-fp" "-mabi=o64" \
[mips_arch_list_matching fpisa5 gpr64]
- run_dump_test "mul"
+ run_dump_test_arches "mul" [mips_arch_list_matching mips1 \
+ !mips32r6]
+ run_dump_test_arches "mul-trap" [mips_arch_list_matching mips1 \
+ !mips32r6]
+ run_dump_test_arches "mul64" [mips_arch_list_matching mips3 !r5900 \
+ !mips64r6]
+ run_dump_test_arches "mul64-trap" [mips_arch_list_matching mips3 !r5900 \
+ !mips64r6]
run_dump_test_arches "rol" [mips_arch_list_matching mips1 !ror]
run_dump_test_arches "rol-hw" [mips_arch_list_matching ror]
@@ -1476,7 +1492,8 @@ if { [istarget mips*-*-vxworks*] } {
!octeon]
run_dump_test_arches "mips32-dspr3" [mips_arch_list_matching mips32r6]
run_dump_test "mips64-dsp"
- run_dump_test "mips32-mt"
+ run_dump_test_arches "mips32-mt" [mips_arch_list_matching mips32r2 \
+ !octeon !micromips]
run_dump_test_arches "save" [lsort -dictionary -unique [concat \
[mips_arch_list_matching mips16e-32] \
@@ -2180,4 +2197,9 @@ if { [istarget mips*-*-vxworks*] } {
if [istarget *-*-irix*] {
run_dump_test "irix-no-pdr"
}
+
+ run_dump_test_arches "break-opt" [mips_arch_list_matching mips1 \
+ !mips32r6]
+ run_dump_test_arches "trap-opt" [mips_arch_list_matching mips1 \
+ !mips32r6]
}
diff --git a/gas/testsuite/gas/mips/mips16-32@mips16-insn-e.l b/gas/testsuite/gas/mips/mips16-32@mips16-insn-e.l
index d0a305d..45b31d6 100644
--- a/gas/testsuite/gas/mips/mips16-32@mips16-insn-e.l
+++ b/gas/testsuite/gas/mips/mips16-32@mips16-insn-e.l
@@ -25,7 +25,7 @@
.*:50: Warning: extended operand requested but not required
.*:51: Error: opcode not supported on this processor: mips1 \(mips1\) `restore\.e 128'
.*:52: Error: opcode not supported on this processor: mips1 \(mips1\) `save\.e 128'
-.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e '
+.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e'
.*:54: Error: unrecognized extended version of MIPS16 opcode `move\.e \$0,\$16'
.*:55: Error: unrecognized extended version of MIPS16 opcode `move\.e \$16,\$0'
.*:57: Warning: extended operand requested but not required
@@ -71,7 +71,7 @@
.*:123: Error: unrecognized extended version of MIPS16 opcode `srav\.e \$16,\$16'
.*:124: Error: operand 2 must be an immediate expression `sra\.e \$16,\$16'
.*:125: Error: opcode not supported on this processor: mips1 \(mips1\) `dsrl\.e \$16,8'
-.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e '
+.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e'
.*:127: Error: unrecognized extended version of MIPS16 opcode `entry\.e \$31'
.*:128: Error: unrecognized extended version of MIPS16 opcode `exit\.e \$f0'
.*:129: Error: unrecognized extended version of MIPS16 opcode `exit\.e'
diff --git a/gas/testsuite/gas/mips/mips16-64@mips16-insn-e.l b/gas/testsuite/gas/mips/mips16-64@mips16-insn-e.l
index 62f3979..97f3c49 100644
--- a/gas/testsuite/gas/mips/mips16-64@mips16-insn-e.l
+++ b/gas/testsuite/gas/mips/mips16-64@mips16-insn-e.l
@@ -25,7 +25,7 @@
.*:50: Warning: extended operand requested but not required
.*:51: Error: opcode not supported on this processor: mips3 \(mips3\) `restore\.e 128'
.*:52: Error: opcode not supported on this processor: mips3 \(mips3\) `save\.e 128'
-.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e '
+.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e'
.*:54: Error: unrecognized extended version of MIPS16 opcode `move\.e \$0,\$16'
.*:55: Error: unrecognized extended version of MIPS16 opcode `move\.e \$16,\$0'
.*:57: Warning: extended operand requested but not required
@@ -71,7 +71,7 @@
.*:123: Error: unrecognized extended version of MIPS16 opcode `srav\.e \$16,\$16'
.*:124: Error: operand 2 must be an immediate expression `sra\.e \$16,\$16'
.*:125: Warning: extended operand requested but not required
-.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e '
+.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e'
.*:127: Error: unrecognized extended version of MIPS16 opcode `entry\.e \$31'
.*:128: Error: unrecognized extended version of MIPS16 opcode `exit\.e \$f0'
.*:129: Error: unrecognized extended version of MIPS16 opcode `exit\.e'
diff --git a/gas/testsuite/gas/mips/mips16-insn-e.l b/gas/testsuite/gas/mips/mips16-insn-e.l
index 0527389..32aa003 100644
--- a/gas/testsuite/gas/mips/mips16-insn-e.l
+++ b/gas/testsuite/gas/mips/mips16-insn-e.l
@@ -23,7 +23,7 @@
.*:48: Warning: extended operand requested but not required
.*:49: Warning: extended operand requested but not required
.*:50: Warning: extended operand requested but not required
-.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e '
+.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e'
.*:54: Error: unrecognized extended version of MIPS16 opcode `move\.e \$0,\$16'
.*:55: Error: unrecognized extended version of MIPS16 opcode `move\.e \$16,\$0'
.*:57: Warning: extended operand requested but not required
@@ -69,7 +69,7 @@
.*:123: Error: unrecognized extended version of MIPS16 opcode `srav\.e \$16,\$16'
.*:124: Error: operand 2 must be an immediate expression `sra\.e \$16,\$16'
.*:125: Warning: extended operand requested but not required
-.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e '
+.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e'
.*:127: Error: unrecognized extended version of MIPS16 opcode `entry\.e \$31'
.*:128: Error: unrecognized extended version of MIPS16 opcode `exit\.e \$f0'
.*:129: Error: unrecognized extended version of MIPS16 opcode `exit\.e'
diff --git a/gas/testsuite/gas/mips/mips16e-32@mips16-insn-e.l b/gas/testsuite/gas/mips/mips16e-32@mips16-insn-e.l
index 4ec4797..a66cc35 100644
--- a/gas/testsuite/gas/mips/mips16e-32@mips16-insn-e.l
+++ b/gas/testsuite/gas/mips/mips16e-32@mips16-insn-e.l
@@ -23,7 +23,7 @@
.*:48: Warning: extended operand requested but not required
.*:49: Warning: extended operand requested but not required
.*:50: Warning: extended operand requested but not required
-.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e '
+.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e'
.*:54: Error: unrecognized extended version of MIPS16 opcode `move\.e \$0,\$16'
.*:55: Error: unrecognized extended version of MIPS16 opcode `move\.e \$16,\$0'
.*:57: Warning: extended operand requested but not required
@@ -69,7 +69,7 @@
.*:123: Error: unrecognized extended version of MIPS16 opcode `srav\.e \$16,\$16'
.*:124: Error: operand 2 must be an immediate expression `sra\.e \$16,\$16'
.*:125: Error: opcode not supported on this processor: mips32 \(mips32\) `dsrl\.e \$16,8'
-.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e '
+.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e'
.*:127: Error: unrecognized extended version of MIPS16 opcode `entry\.e \$31'
.*:128: Error: unrecognized extended version of MIPS16 opcode `exit\.e \$f0'
.*:129: Error: unrecognized extended version of MIPS16 opcode `exit\.e'
diff --git a/gas/testsuite/gas/mips/mips16e2-32@mips16-insn-e.l b/gas/testsuite/gas/mips/mips16e2-32@mips16-insn-e.l
index 474110c..095e0b0 100644
--- a/gas/testsuite/gas/mips/mips16e2-32@mips16-insn-e.l
+++ b/gas/testsuite/gas/mips/mips16e2-32@mips16-insn-e.l
@@ -23,7 +23,7 @@
.*:48: Warning: extended operand requested but not required
.*:49: Warning: extended operand requested but not required
.*:50: Warning: extended operand requested but not required
-.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e '
+.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e'
.*:54: Error: unrecognized extended version of MIPS16 opcode `move\.e \$0,\$16'
.*:55: Error: unrecognized extended version of MIPS16 opcode `move\.e \$16,\$0'
.*:57: Warning: extended operand requested but not required
@@ -69,7 +69,7 @@
.*:123: Error: unrecognized extended version of MIPS16 opcode `srav\.e \$16,\$16'
.*:124: Error: operand 2 must be an immediate expression `sra\.e \$16,\$16'
.*:125: Error: opcode not supported on this processor: mips32r2 \(mips32r2\) `dsrl\.e \$16,8'
-.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e '
+.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e'
.*:127: Error: unrecognized extended version of MIPS16 opcode `entry\.e \$31'
.*:128: Error: unrecognized extended version of MIPS16 opcode `exit\.e \$f0'
.*:129: Error: unrecognized extended version of MIPS16 opcode `exit\.e'
diff --git a/gas/testsuite/gas/mips/mips16e2-interaptiv-mr2@mips16-insn-e.l b/gas/testsuite/gas/mips/mips16e2-interaptiv-mr2@mips16-insn-e.l
index 3fd6457..a0c55df 100644
--- a/gas/testsuite/gas/mips/mips16e2-interaptiv-mr2@mips16-insn-e.l
+++ b/gas/testsuite/gas/mips/mips16e2-interaptiv-mr2@mips16-insn-e.l
@@ -23,7 +23,7 @@
.*:48: Warning: extended operand requested but not required
.*:49: Warning: extended operand requested but not required
.*:50: Warning: extended operand requested but not required
-.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e '
+.*:53: Error: unrecognized extended version of MIPS16 opcode `nop\.e'
.*:54: Error: unrecognized extended version of MIPS16 opcode `move\.e \$0,\$16'
.*:55: Error: unrecognized extended version of MIPS16 opcode `move\.e \$16,\$0'
.*:57: Warning: extended operand requested but not required
@@ -69,7 +69,7 @@
.*:123: Error: unrecognized extended version of MIPS16 opcode `srav\.e \$16,\$16'
.*:124: Error: operand 2 must be an immediate expression `sra\.e \$16,\$16'
.*:125: Error: opcode not supported on this processor: interaptiv-mr2 \(mips32r3\) `dsrl\.e \$16,8'
-.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e '
+.*:126: Error: unrecognized extended version of MIPS16 opcode `entry\.e'
.*:127: Error: unrecognized extended version of MIPS16 opcode `entry\.e \$31'
.*:128: Error: unrecognized extended version of MIPS16 opcode `exit\.e \$f0'
.*:129: Error: unrecognized extended version of MIPS16 opcode `exit\.e'
diff --git a/gas/testsuite/gas/mips/mips1@div-trap.d b/gas/testsuite/gas/mips/mips1@div-trap.d
new file mode 100644
index 0000000..bca128d
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips1@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS div with traps
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/mips1@div.d b/gas/testsuite/gas/mips/mips1@div.d
new file mode 100644
index 0000000..72fd3e5
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips1@div.d
@@ -0,0 +1,102 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> div zero,a0,a1
+0+0004 <[^>]*> bnez a1,0+0010 <foo\+0x10>
+0+0008 <[^>]*> div zero,a0,a1
+0+000c <[^>]*> break (0x0,0x7|0x7)
+0+0010 <[^>]*> li at,-1
+0+0014 <[^>]*> bne a1,at,0+0028 <foo\+0x28>
+0+0018 <[^>]*> lui at,0x8000
+0+001c <[^>]*> bne a0,at,0+0028 <foo\+0x28>
+0+0020 <[^>]*> nop
+0+0024 <[^>]*> break (0x0,0x6|0x6)
+0+0028 <[^>]*> mflo a0
+0+002c <[^>]*> nop
+0+0030 <[^>]*> bnez a2,0+003c <foo\+0x3c>
+0+0034 <[^>]*> div zero,a1,a2
+0+0038 <[^>]*> break (0x0,0x7|0x7)
+0+003c <[^>]*> li at,-1
+0+0040 <[^>]*> bne a2,at,0+0054 <foo\+0x54>
+0+0044 <[^>]*> lui at,0x8000
+0+0048 <[^>]*> bne a1,at,0+0054 <foo\+0x54>
+0+004c <[^>]*> nop
+0+0050 <[^>]*> break (0x0,0x6|0x6)
+0+0054 <[^>]*> mflo a0
+0+0058 <[^>]*> move a0,a0
+0+005c <[^>]*> move a0,a1
+0+0060 <[^>]*> neg a0,a0
+0+0064 <[^>]*> neg a0,a1
+0+0068 <[^>]*> li at,2
+0+006c <[^>]*> div zero,a0,at
+0+0070 <[^>]*> mflo a0
+0+0074 <[^>]*> li at,2
+0+0078 <[^>]*> nop
+0+007c <[^>]*> div zero,a1,at
+0+0080 <[^>]*> mflo a0
+0+0084 <[^>]*> li at,0x8000
+0+0088 <[^>]*> nop
+0+008c <[^>]*> div zero,a0,at
+0+0090 <[^>]*> mflo a0
+0+0094 <[^>]*> li at,0x8000
+0+0098 <[^>]*> nop
+0+009c <[^>]*> div zero,a1,at
+0+00a0 <[^>]*> mflo a0
+0+00a4 <[^>]*> li at,-32768
+0+00a8 <[^>]*> nop
+0+00ac <[^>]*> div zero,a0,at
+0+00b0 <[^>]*> mflo a0
+0+00b4 <[^>]*> li at,-32768
+0+00b8 <[^>]*> nop
+0+00bc <[^>]*> div zero,a1,at
+0+00c0 <[^>]*> mflo a0
+0+00c4 <[^>]*> lui at,0x1
+0+00c8 <[^>]*> nop
+0+00cc <[^>]*> div zero,a0,at
+0+00d0 <[^>]*> mflo a0
+0+00d4 <[^>]*> lui at,0x1
+0+00d8 <[^>]*> nop
+0+00dc <[^>]*> div zero,a1,at
+0+00e0 <[^>]*> mflo a0
+0+00e4 <[^>]*> lui at,0x1
+0+00e8 <[^>]*> ori at,at,0xa5a5
+0+00ec <[^>]*> div zero,a0,at
+0+00f0 <[^>]*> mflo a0
+0+00f4 <[^>]*> lui at,0x1
+0+00f8 <[^>]*> ori at,at,0xa5a5
+0+00fc <[^>]*> div zero,a1,at
+0+0100 <[^>]*> mflo a0
+ ...
+0+010c <[^>]*> divu zero,a0,a1
+0+0110 <[^>]*> bnez a1,0+011c <foo\+0x11c>
+0+0114 <[^>]*> divu zero,a0,a1
+0+0118 <[^>]*> break (0x0,0x7|0x7)
+0+011c <[^>]*> mflo a0
+0+0120 <[^>]*> nop
+0+0124 <[^>]*> bnez a2,0+0130 <foo\+0x130>
+0+0128 <[^>]*> divu zero,a1,a2
+0+012c <[^>]*> break (0x0,0x7|0x7)
+0+0130 <[^>]*> mflo a0
+0+0134 <[^>]*> move a0,a0
+0+0138 <[^>]*> bnez a2,0+0144 <foo\+0x144>
+0+013c <[^>]*> div zero,a1,a2
+0+0140 <[^>]*> break (0x0,0x7|0x7)
+0+0144 <[^>]*> li at,-1
+0+0148 <[^>]*> bne a2,at,0+015c <foo\+0x15c>
+0+014c <[^>]*> lui at,0x8000
+0+0150 <[^>]*> bne a1,at,0+015c <foo\+0x15c>
+0+0154 <[^>]*> nop
+0+0158 <[^>]*> break (0x0,0x6|0x6)
+0+015c <[^>]*> mfhi a0
+0+0160 <[^>]*> li at,2
+0+0164 <[^>]*> nop
+0+0168 <[^>]*> divu zero,a1,at
+0+016c <[^>]*> mfhi a0
+ ...
diff --git a/gas/testsuite/gas/mips/mips1@mul-trap.d b/gas/testsuite/gas/mips/mips1@mul-trap.d
new file mode 100644
index 0000000..597c1a9
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips1@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS mul with traps
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips1@mul.d b/gas/testsuite/gas/mips/mips1@mul.d
new file mode 100644
index 0000000..8cbd1da
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips1@mul.d
@@ -0,0 +1,71 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> multu a0,a1
+0+0004 <[^>]*> mflo a0
+ ...
+0+0010 <[^>]*> multu a1,a2
+0+0014 <[^>]*> mflo a0
+0+0018 <[^>]*> li at,0
+0+001c <[^>]*> nop
+0+0020 <[^>]*> mult a1,at
+0+0024 <[^>]*> mflo a0
+0+0028 <[^>]*> li at,1
+0+002c <[^>]*> nop
+0+0030 <[^>]*> mult a1,at
+0+0034 <[^>]*> mflo a0
+0+0038 <[^>]*> li at,0x8000
+0+003c <[^>]*> nop
+0+0040 <[^>]*> mult a1,at
+0+0044 <[^>]*> mflo a0
+0+0048 <[^>]*> li at,-32768
+0+004c <[^>]*> nop
+0+0050 <[^>]*> mult a1,at
+0+0054 <[^>]*> mflo a0
+0+0058 <[^>]*> lui at,0x1
+0+005c <[^>]*> nop
+0+0060 <[^>]*> mult a1,at
+0+0064 <[^>]*> mflo a0
+0+0068 <[^>]*> lui at,0x1
+0+006c <[^>]*> ori at,at,0xa5a5
+0+0070 <[^>]*> mult a1,at
+0+0074 <[^>]*> mflo a0
+ ...
+0+0080 <[^>]*> mult a0,a1
+0+0084 <[^>]*> mflo a0
+0+0088 <[^>]*> sra a0,a0,0x1f
+0+008c <[^>]*> mfhi at
+0+0090 <[^>]*> beq a0,at,0+9c <foo\+(0x|)9c>
+0+0094 <[^>]*> nop
+0+0098 <[^>]*> break (0x0,0x6|0x6)
+0+009c <[^>]*> mflo a0
+ ...
+0+00a8 <[^>]*> mult a1,a2
+0+00ac <[^>]*> mflo a0
+0+00b0 <[^>]*> sra a0,a0,0x1f
+0+00b4 <[^>]*> mfhi at
+0+00b8 <[^>]*> beq a0,at,0+c4 <foo\+(0x|)c4>
+0+00bc <[^>]*> nop
+0+00c0 <[^>]*> break (0x0,0x6|0x6)
+0+00c4 <[^>]*> mflo a0
+ ...
+0+00d0 <[^>]*> multu a0,a1
+0+00d4 <[^>]*> mfhi at
+0+00d8 <[^>]*> mflo a0
+0+00dc <[^>]*> beqz at,0+e8 <foo\+(0x|)e8>
+0+00e0 <[^>]*> nop
+0+00e4 <[^>]*> break (0x0,0x6|0x6)
+0+00e8 <[^>]*> multu a1,a2
+0+00ec <[^>]*> mfhi at
+0+00f0 <[^>]*> mflo a0
+0+00f4 <[^>]*> beqz at,0+100 <foo\+(0x|)100>
+0+00f8 <[^>]*> nop
+0+00fc <[^>]*> break (0x0,0x6|0x6)
+ ...
diff --git a/gas/testsuite/gas/mips/mips1@trap-opt.d b/gas/testsuite/gas/mips/mips1@trap-opt.d
new file mode 100644
index 0000000..e484636
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips1@trap-opt.d
@@ -0,0 +1,107 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --trap
+#as: -32 --trap
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410004 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 14810002 bne a0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 10c10002 beq a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 10200002 beqz at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410004 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 14810002 bne a0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 10c10002 beq a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 10200002 beqz at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 000001f4 \.word 0x1f4
+[0-9a-f]+ <[^>]*> 000001f4 \.word 0x1f4
+[0-9a-f]+ <[^>]*> 004001f4 \.word 0x4001f4
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410002 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 008101b4 \.word 0x8101b4
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 004001f4 \.word 0x4001f4
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00c101b6 \.word 0xc101b6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 002001b6 \.word 0x2001b6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips2@div-trap.d b/gas/testsuite/gas/mips/mips2@div-trap.d
new file mode 100644
index 0000000..f5b411c
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips2@div-trap.d
@@ -0,0 +1,98 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 0085001a div zero,a0,a1
+[0-9a-f]+ <[^>]*> 00a001f4 teq a1,zero,0x7
+[0-9a-f]+ <[^>]*> 0085001a div zero,a0,a1
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14a10002 bne a1,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 008101b4 teq a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001a div zero,a1,a2
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14c10002 bne a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 00a101b4 teq a1,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00802025 move a0,a0
+[0-9a-f]+ <[^>]*> 00a02025 move a0,a1
+[0-9a-f]+ <[^>]*> 00042022 neg a0,a0
+[0-9a-f]+ <[^>]*> 00052022 neg a0,a1
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 0081001a div zero,a0,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 00a1001a div zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0085001b divu zero,a0,a1
+[0-9a-f]+ <[^>]*> 00a001f4 teq a1,zero,0x7
+[0-9a-f]+ <[^>]*> 0085001b divu zero,a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001b divu zero,a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00802025 move a0,a0
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001a div zero,a1,a2
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14c10002 bne a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 00a101b4 teq a1,at,0x6
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001b divu zero,a1,at
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
diff --git a/gas/testsuite/gas/mips/mips2@div.d b/gas/testsuite/gas/mips/mips2@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips2@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/mips2@mul-trap.d b/gas/testsuite/gas/mips/mips2@mul-trap.d
new file mode 100644
index 0000000..45405a8
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips2@mul-trap.d
@@ -0,0 +1,74 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a60019 multu a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010000 li at,0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00850018 mult a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a60018 mult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a60019 multu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
diff --git a/gas/testsuite/gas/mips/mips2@mul.d b/gas/testsuite/gas/mips/mips2@mul.d
new file mode 100644
index 0000000..fd1ce2f
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips2@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips32-mt.d b/gas/testsuite/gas/mips/mips32-mt.d
index b514021..ec01879 100644
--- a/gas/testsuite/gas/mips/mips32-mt.d
+++ b/gas/testsuite/gas/mips/mips32-mt.d
@@ -1,6 +1,6 @@
#objdump: -dr --prefix-addresses --show-raw-insn -M cp0-names=mips32
#name: MIPS MT ASE for MIPS32
-#as: -mmt -mips32r2 -32
+#as: -mmt -32
# Check MIPS MT ASE for MIPS32 Instruction Assembly
@@ -574,30 +574,30 @@ Disassembly of section .text:
0+08d0 <[^>]*> 410e6805 mftc0 t5,\$14,5
0+08d4 <[^>]*> 410e6806 mftc0 t5,\$14,6
0+08d8 <[^>]*> 410e6807 mftc0 t5,\$14,7
-0+08dc <[^>]*> 410e6810 mftr t5,t6,0,0,1
-0+08e0 <[^>]*> 410e6811 mftr t5,t6,0,1,1
-0+08e4 <[^>]*> 410e6812 mftr t5,t6,0,2,1
-0+08e8 <[^>]*> 410e6813 mftr t5,t6,0,3,1
-0+08ec <[^>]*> 410e6814 mftr t5,t6,0,4,1
-0+08f0 <[^>]*> 410e6815 mftr t5,t6,0,5,1
-0+08f4 <[^>]*> 410e6816 mftr t5,t6,0,6,1
-0+08f8 <[^>]*> 410e6817 mftr t5,t6,0,7,1
+0+08dc <[^>]*> 410e6810 mftr t5,\$14,0,0,1
+0+08e0 <[^>]*> 410e6811 mftr t5,\$14,0,1,1
+0+08e4 <[^>]*> 410e6812 mftr t5,\$14,0,2,1
+0+08e8 <[^>]*> 410e6813 mftr t5,\$14,0,3,1
+0+08ec <[^>]*> 410e6814 mftr t5,\$14,0,4,1
+0+08f0 <[^>]*> 410e6815 mftr t5,\$14,0,5,1
+0+08f4 <[^>]*> 410e6816 mftr t5,\$14,0,6,1
+0+08f8 <[^>]*> 410e6817 mftr t5,\$14,0,7,1
0+08fc <[^>]*> 410e6820 mftgpr t5,t6
0+0900 <[^>]*> 410e6821 mftacx t5,\$ac3
0+0904 <[^>]*> 410e6822 mftc1 t5,\$f14
0+0908 <[^>]*> 410e6823 cftc1 t5,\$14
0+090c <[^>]*> 410e6824 mftc2 t5,\$14
0+0910 <[^>]*> 410e6825 cftc2 t5,\$14
-0+0914 <[^>]*> 410e6826 mftr t5,t6,1,6,0
-0+0918 <[^>]*> 410e6827 mftr t5,t6,1,7,0
-0+091c <[^>]*> 410e6830 mftr t5,t6,1,0,1
-0+0920 <[^>]*> 410e6831 mftr t5,t6,1,1,1
+0+0914 <[^>]*> 410e6826 mftr t5,\$14,1,6,0
+0+0918 <[^>]*> 410e6827 mftr t5,\$14,1,7,0
+0+091c <[^>]*> 410e6830 mftr t5,\$14,1,0,1
+0+0920 <[^>]*> 410e6831 mftr t5,\$14,1,1,1
0+0924 <[^>]*> 410e6832 mfthc1 t5,\$f14
-0+0928 <[^>]*> 410e6833 mftr t5,t6,1,3,1
+0+0928 <[^>]*> 410e6833 mftr t5,\$14,1,3,1
0+092c <[^>]*> 410e6834 mfthc2 t5,\$14
-0+0930 <[^>]*> 410e6835 mftr t5,t6,1,5,1
-0+0934 <[^>]*> 410e6836 mftr t5,t6,1,6,1
-0+0938 <[^>]*> 410e6837 mftr t5,t6,1,7,1
+0+0930 <[^>]*> 410e6835 mftr t5,\$14,1,5,1
+0+0934 <[^>]*> 410e6836 mftr t5,\$14,1,6,1
+0+0938 <[^>]*> 410e6837 mftr t5,\$14,1,7,1
0+093c <[^>]*> 418d7000 mttc0 t5,c0_epc
0+0940 <[^>]*> 418d7001 mttc0 t5,\$14,1
0+0944 <[^>]*> 418d7002 mttc0 t5,\$14,2
@@ -606,29 +606,29 @@ Disassembly of section .text:
0+0950 <[^>]*> 418d7005 mttc0 t5,\$14,5
0+0954 <[^>]*> 418d7006 mttc0 t5,\$14,6
0+0958 <[^>]*> 418d7007 mttc0 t5,\$14,7
-0+095c <[^>]*> 418d7010 mttr t5,t6,0,0,1
-0+0960 <[^>]*> 418d7011 mttr t5,t6,0,1,1
-0+0964 <[^>]*> 418d7012 mttr t5,t6,0,2,1
-0+0968 <[^>]*> 418d7013 mttr t5,t6,0,3,1
-0+096c <[^>]*> 418d7014 mttr t5,t6,0,4,1
-0+0970 <[^>]*> 418d7015 mttr t5,t6,0,5,1
-0+0974 <[^>]*> 418d7016 mttr t5,t6,0,6,1
-0+0978 <[^>]*> 418d7017 mttr t5,t6,0,7,1
+0+095c <[^>]*> 418d7010 mttr t5,\$14,0,0,1
+0+0960 <[^>]*> 418d7011 mttr t5,\$14,0,1,1
+0+0964 <[^>]*> 418d7012 mttr t5,\$14,0,2,1
+0+0968 <[^>]*> 418d7013 mttr t5,\$14,0,3,1
+0+096c <[^>]*> 418d7014 mttr t5,\$14,0,4,1
+0+0970 <[^>]*> 418d7015 mttr t5,\$14,0,5,1
+0+0974 <[^>]*> 418d7016 mttr t5,\$14,0,6,1
+0+0978 <[^>]*> 418d7017 mttr t5,\$14,0,7,1
0+097c <[^>]*> 418d7020 mttgpr t5,t6
0+0980 <[^>]*> 418d7021 mttacx t5,\$ac3
0+0984 <[^>]*> 418d7022 mttc1 t5,\$f14
0+0988 <[^>]*> 418d7023 cttc1 t5,\$14
0+098c <[^>]*> 418d7024 mttc2 t5,\$14
0+0990 <[^>]*> 418d7025 cttc2 t5,\$14
-0+0994 <[^>]*> 418d7026 mttr t5,t6,1,6,0
-0+0998 <[^>]*> 418d7027 mttr t5,t6,1,7,0
-0+099c <[^>]*> 418d7030 mttr t5,t6,1,0,1
-0+09a0 <[^>]*> 418d7031 mttr t5,t6,1,1,1
+0+0994 <[^>]*> 418d7026 mttr t5,\$14,1,6,0
+0+0998 <[^>]*> 418d7027 mttr t5,\$14,1,7,0
+0+099c <[^>]*> 418d7030 mttr t5,\$14,1,0,1
+0+09a0 <[^>]*> 418d7031 mttr t5,\$14,1,1,1
0+09a4 <[^>]*> 418d7032 mtthc1 t5,\$f14
-0+09a8 <[^>]*> 418d7033 mttr t5,t6,1,3,1
+0+09a8 <[^>]*> 418d7033 mttr t5,\$14,1,3,1
0+09ac <[^>]*> 418d7034 mtthc2 t5,\$14
-0+09b0 <[^>]*> 418d7035 mttr t5,t6,1,5,1
-0+09b4 <[^>]*> 418d7036 mttr t5,t6,1,6,1
-0+09b8 <[^>]*> 418d7037 mttr t5,t6,1,7,1
+0+09b0 <[^>]*> 418d7035 mttr t5,\$14,1,5,1
+0+09b4 <[^>]*> 418d7036 mttr t5,\$14,1,6,1
+0+09b8 <[^>]*> 418d7037 mttr t5,\$14,1,7,1
0+09bc <[^>]*> 00000140 pause
\.\.\.
diff --git a/gas/testsuite/gas/mips/mips3@div-trap.d b/gas/testsuite/gas/mips/mips3@div-trap.d
new file mode 100644
index 0000000..9086b22
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+#dump: mips2@div-trap.d
diff --git a/gas/testsuite/gas/mips/mips3@div.d b/gas/testsuite/gas/mips/mips3@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/mips3@div64-trap.d b/gas/testsuite/gas/mips/mips3@div64-trap.d
new file mode 100644
index 0000000..568fbd4
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@div64-trap.d
@@ -0,0 +1,31 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div with traps
+#source: div64.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00c001f4 teq a2,zero,0x7
+[0-9a-f]+ <[^>]*> 00a6001e ddiv zero,a1,a2
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14c10003 bne a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00010ffc dsll32 at,at,0x1f
+[0-9a-f]+ <[^>]*> 00a101b4 teq a1,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001f ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001e ddiv zero,a1,at
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001f ddivu zero,a1,at
+[0-9a-f]+ <[^>]*> 00002010 mfhi a0
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mips3@div64.d b/gas/testsuite/gas/mips/mips3@div64.d
new file mode 100644
index 0000000..1ca95a3
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@div64.d
@@ -0,0 +1,34 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit div
+#source: div64.s
+
+# Test the div macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> bnez a2,0+000c <foo\+0xc>
+0+0004 <[^>]*> ddiv zero,a1,a2
+0+0008 <[^>]*> break (0x0,0x7|0x7)
+0+000c <[^>]*> (daddiu at,zero,-1|li at,-1)
+0+0010 <[^>]*> bne a2,at,0+0028 <foo\+0x28>
+0+0014 <[^>]*> (daddiu at,zero,1|li at,1)
+0+0018 <[^>]*> dsll32 at,at,0x1f
+0+001c <[^>]*> bne a1,at,0+0028 <foo\+0x28>
+0+0020 <[^>]*> nop
+0+0024 <[^>]*> break (0x0,0x6|0x6)
+0+0028 <[^>]*> mflo a0
+0+002c <[^>]*> li at,2
+0+0030 <[^>]*> nop
+0+0034 <[^>]*> ddivu zero,a1,at
+0+0038 <[^>]*> mflo a0
+0+003c <[^>]*> li at,0x8000
+0+0040 <[^>]*> nop
+0+0044 <[^>]*> ddiv zero,a1,at
+0+0048 <[^>]*> mfhi a0
+0+004c <[^>]*> li at,-32768
+0+0050 <[^>]*> nop
+0+0054 <[^>]*> ddivu zero,a1,at
+0+0058 <[^>]*> mfhi a0
+ ...
diff --git a/gas/testsuite/gas/mips/mips3@mul-trap.d b/gas/testsuite/gas/mips/mips3@mul-trap.d
new file mode 100644
index 0000000..2b9dfee
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+#dump: mips2@mul-trap.d
diff --git a/gas/testsuite/gas/mips/mips3@mul.d b/gas/testsuite/gas/mips/mips3@mul.d
new file mode 100644
index 0000000..fd1ce2f
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips3@mul64-trap.d b/gas/testsuite/gas/mips/mips3@mul64-trap.d
new file mode 100644
index 0000000..54f08dd
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@mul64-trap.d
@@ -0,0 +1,38 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a6001d dmultu a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a1001c dmult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a6001c dmult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427ff dsra32 a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a6001d dmultu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
diff --git a/gas/testsuite/gas/mips/mips3@mul64.d b/gas/testsuite/gas/mips/mips3@mul64.d
new file mode 100644
index 0000000..7ca7bdb
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips3@mul64.d
@@ -0,0 +1,33 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> dmultu a1,a2
+0+0004 <[^>]*> mflo a0
+0+0008 <[^>]*> li at,1
+0+000c <[^>]*> nop
+0+0010 <[^>]*> dmult a1,at
+0+0014 <[^>]*> mflo a0
+ ...
+0+0020 <[^>]*> dmult a1,a2
+0+0024 <[^>]*> mflo a0
+0+0028 <[^>]*> dsra32 a0,a0,0x1f
+0+002c <[^>]*> mfhi at
+0+0030 <[^>]*> beq a0,at,0+3c <foo\+(0x|)3c>
+0+0034 <[^>]*> nop
+0+0038 <[^>]*> break (0x0,0x6|0x6)
+0+003c <[^>]*> mflo a0
+ ...
+0+0048 <[^>]*> dmultu a1,a2
+0+004c <[^>]*> mfhi at
+0+0050 <[^>]*> mflo a0
+0+0054 <[^>]*> beqz at,0+60 <foo\+(0x|)60>
+0+0058 <[^>]*> nop
+0+005c <[^>]*> break (0x0,0x6|0x6)
+ ...
diff --git a/gas/testsuite/gas/mips/mips4@div-trap.d b/gas/testsuite/gas/mips/mips4@div-trap.d
new file mode 100644
index 0000000..9086b22
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+#dump: mips2@div-trap.d
diff --git a/gas/testsuite/gas/mips/mips4@div.d b/gas/testsuite/gas/mips/mips4@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/mips4@div64-trap.d b/gas/testsuite/gas/mips/mips4@div64-trap.d
new file mode 100644
index 0000000..ad9bada
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@div64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div with traps
+#source: div64.s
+#dump: mips3@div64-trap.d
diff --git a/gas/testsuite/gas/mips/mips4@div64.d b/gas/testsuite/gas/mips/mips4@div64.d
new file mode 100644
index 0000000..9849e85
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@div64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit div
+#source: div64.s
+#dump: mips3@div64.d
diff --git a/gas/testsuite/gas/mips/mips4@mul-trap.d b/gas/testsuite/gas/mips/mips4@mul-trap.d
new file mode 100644
index 0000000..2b9dfee
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+#dump: mips2@mul-trap.d
diff --git a/gas/testsuite/gas/mips/mips4@mul.d b/gas/testsuite/gas/mips/mips4@mul.d
new file mode 100644
index 0000000..fd1ce2f
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips4@mul64-trap.d b/gas/testsuite/gas/mips/mips4@mul64-trap.d
new file mode 100644
index 0000000..8032f97
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@mul64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+#dump: mips3@mul64-trap.d
diff --git a/gas/testsuite/gas/mips/mips4@mul64.d b/gas/testsuite/gas/mips/mips4@mul64.d
new file mode 100644
index 0000000..5e6d8ac
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips4@mul64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+#dump: mips3@mul64.d
diff --git a/gas/testsuite/gas/mips/mips5@div-trap.d b/gas/testsuite/gas/mips/mips5@div-trap.d
new file mode 100644
index 0000000..9086b22
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+#dump: mips2@div-trap.d
diff --git a/gas/testsuite/gas/mips/mips5@div.d b/gas/testsuite/gas/mips/mips5@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/mips5@div64-trap.d b/gas/testsuite/gas/mips/mips5@div64-trap.d
new file mode 100644
index 0000000..ad9bada
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@div64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div with traps
+#source: div64.s
+#dump: mips3@div64-trap.d
diff --git a/gas/testsuite/gas/mips/mips5@div64.d b/gas/testsuite/gas/mips/mips5@div64.d
new file mode 100644
index 0000000..9849e85
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@div64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit div
+#source: div64.s
+#dump: mips3@div64.d
diff --git a/gas/testsuite/gas/mips/mips5@mul-trap.d b/gas/testsuite/gas/mips/mips5@mul-trap.d
new file mode 100644
index 0000000..2b9dfee
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+#dump: mips2@mul-trap.d
diff --git a/gas/testsuite/gas/mips/mips5@mul.d b/gas/testsuite/gas/mips/mips5@mul.d
new file mode 100644
index 0000000..fd1ce2f
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/mips5@mul64-trap.d b/gas/testsuite/gas/mips/mips5@mul64-trap.d
new file mode 100644
index 0000000..8032f97
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@mul64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+#dump: mips3@mul64-trap.d
diff --git a/gas/testsuite/gas/mips/mips5@mul64.d b/gas/testsuite/gas/mips/mips5@mul64.d
new file mode 100644
index 0000000..5e6d8ac
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips5@mul64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+#dump: mips3@mul64.d
diff --git a/gas/testsuite/gas/mips/mul-trap.d b/gas/testsuite/gas/mips/mul-trap.d
new file mode 100644
index 0000000..9cd619d
--- /dev/null
+++ b/gas/testsuite/gas/mips/mul-trap.d
@@ -0,0 +1,52 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 70852002 mul a0,a0,a1
+[0-9a-f]+ <[^>]*> 70a62002 mul a0,a1,a2
+[0-9a-f]+ <[^>]*> 24010000 li at,0
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00850018 mult a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a60018 mult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00a60019 multu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mul.d b/gas/testsuite/gas/mips/mul.d
index 1c4f784..ffd866a 100644
--- a/gas/testsuite/gas/mips/mul.d
+++ b/gas/testsuite/gas/mips/mul.d
@@ -1,92 +1,59 @@
-#objdump: -dr --prefix-addresses -mmips:4000
-#as: -march=r4000 -mtune=r4000
+#as: -32
+#objdump: -dr --prefix-addresses
#name: MIPS mul
# Test the mul macro.
.*: +file format .*mips.*
-Disassembly of section .text:
-0+0000 <[^>]*> multu a0,a1
-0+0004 <[^>]*> mflo a0
- ...
-0+0010 <[^>]*> multu a1,a2
-0+0014 <[^>]*> mflo a0
-0+0018 <[^>]*> li at,0
-0+001c <[^>]*> nop
-0+0020 <[^>]*> mult a1,at
-0+0024 <[^>]*> mflo a0
-0+0028 <[^>]*> li at,1
-0+002c <[^>]*> nop
+Disassembly of section \.text:
+0+0000 <[^>]*> mul a0,a0,a1
+0+0004 <[^>]*> mul a0,a1,a2
+0+0008 <[^>]*> li at,0
+0+000c <[^>]*> mult a1,at
+0+0010 <[^>]*> mflo a0
+0+0014 <[^>]*> li at,1
+0+0018 <[^>]*> mult a1,at
+0+001c <[^>]*> mflo a0
+0+0020 <[^>]*> li at,0x8000
+0+0024 <[^>]*> mult a1,at
+0+0028 <[^>]*> mflo a0
+0+002c <[^>]*> li at,-32768
0+0030 <[^>]*> mult a1,at
0+0034 <[^>]*> mflo a0
-0+0038 <[^>]*> li at,0x8000
-0+003c <[^>]*> nop
-0+0040 <[^>]*> mult a1,at
-0+0044 <[^>]*> mflo a0
-0+0048 <[^>]*> li at,-32768
-0+004c <[^>]*> nop
-0+0050 <[^>]*> mult a1,at
-0+0054 <[^>]*> mflo a0
-0+0058 <[^>]*> lui at,0x1
-0+005c <[^>]*> nop
-0+0060 <[^>]*> mult a1,at
-0+0064 <[^>]*> mflo a0
-0+0068 <[^>]*> lui at,0x1
-0+006c <[^>]*> ori at,at,0xa5a5
-0+0070 <[^>]*> mult a1,at
-0+0074 <[^>]*> mflo a0
- ...
-0+0080 <[^>]*> mult a0,a1
-0+0084 <[^>]*> mflo a0
-0+0088 <[^>]*> sra a0,a0,0x1f
-0+008c <[^>]*> mfhi at
-0+0090 <[^>]*> beq a0,at,0+9c <foo\+(0x|)9c>
-0+0094 <[^>]*> nop
-0+0098 <[^>]*> break (0x0,0x6|0x6)
+0+0038 <[^>]*> lui at,0x1
+0+003c <[^>]*> mult a1,at
+0+0040 <[^>]*> mflo a0
+0+0044 <[^>]*> lui at,0x1
+0+0048 <[^>]*> ori at,at,0xa5a5
+0+004c <[^>]*> mult a1,at
+0+0050 <[^>]*> mflo a0
+0+0054 <[^>]*> mult a0,a1
+0+0058 <[^>]*> mflo a0
+0+005c <[^>]*> sra a0,a0,0x1f
+0+0060 <[^>]*> mfhi at
+0+0064 <[^>]*> beq a0,at,0+70 <foo\+(0x|)70>
+0+0068 <[^>]*> nop
+0+006c <[^>]*> break (0x0,0x6|0x6)
+0+0070 <[^>]*> mflo a0
+0+0074 <[^>]*> mult a1,a2
+0+0078 <[^>]*> mflo a0
+0+007c <[^>]*> sra a0,a0,0x1f
+0+0080 <[^>]*> mfhi at
+0+0084 <[^>]*> beq a0,at,0+90 <foo\+(0x|)90>
+0+0088 <[^>]*> nop
+0+008c <[^>]*> break (0x0,0x6|0x6)
+0+0090 <[^>]*> mflo a0
+0+0094 <[^>]*> multu a0,a1
+0+0098 <[^>]*> mfhi at
0+009c <[^>]*> mflo a0
- ...
-0+00a8 <[^>]*> mult a1,a2
-0+00ac <[^>]*> mflo a0
-0+00b0 <[^>]*> sra a0,a0,0x1f
-0+00b4 <[^>]*> mfhi at
-0+00b8 <[^>]*> beq a0,at,0+c4 <foo\+(0x|)c4>
+0+00a0 <[^>]*> beqz at,0+ac <foo\+(0x|)ac>
+0+00a4 <[^>]*> nop
+0+00a8 <[^>]*> break (0x0,0x6|0x6)
+0+00ac <[^>]*> multu a1,a2
+0+00b0 <[^>]*> mfhi at
+0+00b4 <[^>]*> mflo a0
+0+00b8 <[^>]*> beqz at,0+c4 <foo\+(0x|)c4>
0+00bc <[^>]*> nop
0+00c0 <[^>]*> break (0x0,0x6|0x6)
-0+00c4 <[^>]*> mflo a0
- ...
-0+00d0 <[^>]*> multu a0,a1
-0+00d4 <[^>]*> mfhi at
-0+00d8 <[^>]*> mflo a0
-0+00dc <[^>]*> beqz at,0+e8 <foo\+(0x|)e8>
-0+00e0 <[^>]*> nop
-0+00e4 <[^>]*> break (0x0,0x6|0x6)
-0+00e8 <[^>]*> multu a1,a2
-0+00ec <[^>]*> mfhi at
-0+00f0 <[^>]*> mflo a0
-0+00f4 <[^>]*> beqz at,0+100 <foo\+(0x|)100>
-0+00f8 <[^>]*> nop
-0+00fc <[^>]*> break (0x0,0x6|0x6)
-0+0100 <[^>]*> dmultu a1,a2
-0+0104 <[^>]*> mflo a0
-0+0108 <[^>]*> li at,1
-0+010c <[^>]*> nop
-0+0110 <[^>]*> dmult a1,at
-0+0114 <[^>]*> mflo a0
- ...
-0+0120 <[^>]*> dmult a1,a2
-0+0124 <[^>]*> mflo a0
-0+0128 <[^>]*> dsra32 a0,a0,0x1f
-0+012c <[^>]*> mfhi at
-0+0130 <[^>]*> beq a0,at,0+13c <foo\+(0x|)13c>
-0+0134 <[^>]*> nop
-0+0138 <[^>]*> break (0x0,0x6|0x6)
-0+013c <[^>]*> mflo a0
- ...
-0+0148 <[^>]*> dmultu a1,a2
-0+014c <[^>]*> mfhi at
-0+0150 <[^>]*> mflo a0
-0+0154 <[^>]*> beqz at,0+160 <foo\+(0x|)160>
-0+0158 <[^>]*> nop
-0+015c <[^>]*> break (0x0,0x6|0x6)
- ...
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mul.s b/gas/testsuite/gas/mips/mul.s
index b29e369..75f665d 100644
--- a/gas/testsuite/gas/mips/mul.s
+++ b/gas/testsuite/gas/mips/mul.s
@@ -17,11 +17,5 @@ foo:
mulou $4,$5
mulou $4,$5,$6
-# Sanity check the 64 bit versions.
- .set mips3
- dmul $4,$5,$6
- dmul $4,$5,1
- dmulo $4,$5,$6
- dmulou $4,$5,$6
-
- .space 8
+ .align 4, 0
+ .space 16
diff --git a/gas/testsuite/gas/mips/mul64-trap.d b/gas/testsuite/gas/mips/mul64-trap.d
new file mode 100644
index 0000000..d60ec9d
--- /dev/null
+++ b/gas/testsuite/gas/mips/mul64-trap.d
@@ -0,0 +1,26 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a6001d dmultu a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00a1001c dmult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a6001c dmult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427ff dsra32 a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a6001d dmultu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mul64.d b/gas/testsuite/gas/mips/mul64.d
new file mode 100644
index 0000000..16a77d7
--- /dev/null
+++ b/gas/testsuite/gas/mips/mul64.d
@@ -0,0 +1,29 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> dmultu a1,a2
+0+0004 <[^>]*> mflo a0
+0+0008 <[^>]*> li at,1
+0+000c <[^>]*> dmult a1,at
+0+0010 <[^>]*> mflo a0
+0+0014 <[^>]*> dmult a1,a2
+0+0018 <[^>]*> mflo a0
+0+001c <[^>]*> dsra32 a0,a0,0x1f
+0+0020 <[^>]*> mfhi at
+0+0024 <[^>]*> beq a0,at,0+30 <foo\+(0x|)30>
+0+0028 <[^>]*> nop
+0+002c <[^>]*> break (0x0,0x6|0x6)
+0+0030 <[^>]*> mflo a0
+0+0034 <[^>]*> dmultu a1,a2
+0+0038 <[^>]*> mfhi at
+0+003c <[^>]*> mflo a0
+0+0040 <[^>]*> beqz at,0+4c <foo\+(0x|)4c>
+0+0044 <[^>]*> nop
+0+0048 <[^>]*> break (0x0,0x6|0x6)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/mul64.s b/gas/testsuite/gas/mips/mul64.s
new file mode 100644
index 0000000..407e990
--- /dev/null
+++ b/gas/testsuite/gas/mips/mul64.s
@@ -0,0 +1,10 @@
+# Sanity check the 64 bit mul macro versions.
+
+foo:
+ dmul $4,$5,$6
+ dmul $4,$5,1
+ dmulo $4,$5,$6
+ dmulou $4,$5,$6
+
+ .align 4, 0
+ .space 16
diff --git a/gas/testsuite/gas/mips/octeon@mul64-trap.d b/gas/testsuite/gas/mips/octeon@mul64-trap.d
new file mode 100644
index 0000000..fb45789
--- /dev/null
+++ b/gas/testsuite/gas/mips/octeon@mul64-trap.d
@@ -0,0 +1,25 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 70a62003 dmul a0,a1,a2
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00a1001c dmult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a6001c dmult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427ff dsra32 a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a6001d dmultu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/octeon@mul64.d b/gas/testsuite/gas/mips/octeon@mul64.d
new file mode 100644
index 0000000..2cd37a9
--- /dev/null
+++ b/gas/testsuite/gas/mips/octeon@mul64.d
@@ -0,0 +1,29 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> dmul a0,a1,a2
+0+0004 <[^>]*> li at,1
+0+0008 <[^>]*> dmult a1,at
+0+000c <[^>]*> mflo a0
+0+0010 <[^>]*> dmult a1,a2
+0+0014 <[^>]*> mflo a0
+0+0018 <[^>]*> dsra32 a0,a0,0x1f
+0+001c <[^>]*> mfhi at
+0+0020 <[^>]*> beq a0,at,0+2c <foo\+(0x|)2c>
+0+0024 <[^>]*> nop
+0+0028 <[^>]*> break (0x0,0x6|0x6)
+0+002c <[^>]*> mflo a0
+0+0030 <[^>]*> dmultu a1,a2
+0+0034 <[^>]*> mfhi at
+0+0038 <[^>]*> mflo a0
+0+003c <[^>]*> beqz at,0+48 <foo\+(0x|)48>
+0+0040 <[^>]*> nop
+0+0044 <[^>]*> break (0x0,0x6|0x6)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r10000@c0.d b/gas/testsuite/gas/mips/r10000@c0.d
new file mode 100644
index 0000000..7771a42
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@c0.d
@@ -0,0 +1,5 @@
+#objdump: -d --prefix-addresses --show-raw-insn
+#name: MIPS C0/COP0 instructions
+#as: -32
+#source: c0.s
+#dump: mips3@c0.d
diff --git a/gas/testsuite/gas/mips/r10000@c1.d b/gas/testsuite/gas/mips/r10000@c1.d
new file mode 100644
index 0000000..e445db9
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@c1.d
@@ -0,0 +1,5 @@
+#objdump: -d --prefix-addresses --show-raw-insn
+#name: MIPS C1/COP1 instructions
+#as: -32
+#source: c1.s
+#dump: mips4@c1.d
diff --git a/gas/testsuite/gas/mips/r10000@cp0c.d b/gas/testsuite/gas/mips/r10000@cp0c.d
new file mode 100644
index 0000000..cf8dc94
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@cp0c.d
@@ -0,0 +1,5 @@
+#objdump: -d --prefix-addresses --show-raw-insn
+#name: MIPS CP0 control register move instructions
+#as: -32
+#source: cp0c.s
+#dump: mips1@cp0c.d
diff --git a/gas/testsuite/gas/mips/r10000@mul-trap.d b/gas/testsuite/gas/mips/r10000@mul-trap.d
new file mode 100644
index 0000000..244ee3c
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@mul-trap.d
@@ -0,0 +1,54 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a60019 multu a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010000 li at,0
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00850018 mult a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a60018 mult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00a60019 multu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r10000@mul.d b/gas/testsuite/gas/mips/r10000@mul.d
new file mode 100644
index 0000000..9990e36
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: allegrex@mul.d
diff --git a/gas/testsuite/gas/mips/r10000@mul64-trap.d b/gas/testsuite/gas/mips/r10000@mul64-trap.d
new file mode 100644
index 0000000..d60ec9d
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@mul64-trap.d
@@ -0,0 +1,26 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00a6001d dmultu a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00a1001c dmult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a6001c dmult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427ff dsra32 a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a6001d dmultu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r10000@mul64.d b/gas/testsuite/gas/mips/r10000@mul64.d
new file mode 100644
index 0000000..4227e42
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@mul64.d
@@ -0,0 +1,30 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> dmultu a1,a2
+0+0004 <[^>]*> mflo a0
+0+0008 <[^>]*> li at,1
+0+000c <[^>]*> dmult a1,at
+0+0010 <[^>]*> mflo a0
+0+0014 <[^>]*> dmult a1,a2
+0+0018 <[^>]*> mflo a0
+0+001c <[^>]*> dsra32 a0,a0,0x1f
+0+0020 <[^>]*> mfhi at
+0+0024 <[^>]*> beq a0,at,0+30 <foo\+(0x|)30>
+0+0028 <[^>]*> nop
+0+002c <[^>]*> break (0x0,0x6|0x6)
+0+0030 <[^>]*> mflo a0
+0+0034 <[^>]*> dmultu a1,a2
+0+0038 <[^>]*> mfhi at
+0+003c <[^>]*> mflo a0
+0+0040 <[^>]*> beqz at,0+4c <foo\+(0x|)4c>
+0+0044 <[^>]*> nop
+0+0048 <[^>]*> break (0x0,0x6|0x6)
+ ...
diff --git a/gas/testsuite/gas/mips/r10000@save-sub.d b/gas/testsuite/gas/mips/r10000@save-sub.d
new file mode 100644
index 0000000..047d323
--- /dev/null
+++ b/gas/testsuite/gas/mips/r10000@save-sub.d
@@ -0,0 +1,5 @@
+#objdump: -dr
+#as: -32 -I$srcdir/$subdir
+#name: SAVE/RESTORE instruction subset disassembly
+#source: save-sub.s
+#dump: mips1@save-sub.d
diff --git a/gas/testsuite/gas/mips/r3000@div-trap.d b/gas/testsuite/gas/mips/r3000@div-trap.d
new file mode 100644
index 0000000..bca128d
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3000@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS div with traps
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/r3000@div.d b/gas/testsuite/gas/mips/r3000@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3000@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/r3000@mul-trap.d b/gas/testsuite/gas/mips/r3000@mul-trap.d
new file mode 100644
index 0000000..597c1a9
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3000@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS mul with traps
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r3000@mul.d b/gas/testsuite/gas/mips/r3000@mul.d
new file mode 100644
index 0000000..fd1ce2f
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3000@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r3000@trap-opt.d b/gas/testsuite/gas/mips/r3000@trap-opt.d
new file mode 100644
index 0000000..c6e7d67
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3000@trap-opt.d
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --trap
+#as: -32 --trap
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+#dump: mips1@trap-opt.d
diff --git a/gas/testsuite/gas/mips/r3900@div-trap.d b/gas/testsuite/gas/mips/r3900@div-trap.d
new file mode 100644
index 0000000..bca128d
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3900@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS div with traps
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/r3900@div.d b/gas/testsuite/gas/mips/r3900@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3900@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/r3900@mul-trap.d b/gas/testsuite/gas/mips/r3900@mul-trap.d
new file mode 100644
index 0000000..597c1a9
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3900@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses
+#name: MIPS mul with traps
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r3900@mul.d b/gas/testsuite/gas/mips/r3900@mul.d
new file mode 100644
index 0000000..fd1ce2f
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3900@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r3900@trap-opt.d b/gas/testsuite/gas/mips/r3900@trap-opt.d
new file mode 100644
index 0000000..c6e7d67
--- /dev/null
+++ b/gas/testsuite/gas/mips/r3900@trap-opt.d
@@ -0,0 +1,6 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --trap
+#as: -32 --trap
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+#dump: mips1@trap-opt.d
diff --git a/gas/testsuite/gas/mips/r4000@div-trap.d b/gas/testsuite/gas/mips/r4000@div-trap.d
new file mode 100644
index 0000000..9086b22
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+#dump: mips2@div-trap.d
diff --git a/gas/testsuite/gas/mips/r4000@div.d b/gas/testsuite/gas/mips/r4000@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/r4000@div64-trap.d b/gas/testsuite/gas/mips/r4000@div64-trap.d
new file mode 100644
index 0000000..ad9bada
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@div64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div with traps
+#source: div64.s
+#dump: mips3@div64-trap.d
diff --git a/gas/testsuite/gas/mips/r4000@div64.d b/gas/testsuite/gas/mips/r4000@div64.d
new file mode 100644
index 0000000..9849e85
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@div64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit div
+#source: div64.s
+#dump: mips3@div64.d
diff --git a/gas/testsuite/gas/mips/r4000@mul-trap.d b/gas/testsuite/gas/mips/r4000@mul-trap.d
new file mode 100644
index 0000000..2b9dfee
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@mul-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+#dump: mips2@mul-trap.d
diff --git a/gas/testsuite/gas/mips/r4000@mul.d b/gas/testsuite/gas/mips/r4000@mul.d
new file mode 100644
index 0000000..fd1ce2f
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@mul.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+#dump: mips1@mul.d
diff --git a/gas/testsuite/gas/mips/r4000@mul64-trap.d b/gas/testsuite/gas/mips/r4000@mul64-trap.d
new file mode 100644
index 0000000..8032f97
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@mul64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+#dump: mips3@mul64-trap.d
diff --git a/gas/testsuite/gas/mips/r4000@mul64.d b/gas/testsuite/gas/mips/r4000@mul64.d
new file mode 100644
index 0000000..5e6d8ac
--- /dev/null
+++ b/gas/testsuite/gas/mips/r4000@mul64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+#dump: mips3@mul64.d
diff --git a/gas/testsuite/gas/mips/r5900@mul-trap.d b/gas/testsuite/gas/mips/r5900@mul-trap.d
new file mode 100644
index 0000000..487da0f
--- /dev/null
+++ b/gas/testsuite/gas/mips/r5900@mul-trap.d
@@ -0,0 +1,52 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00852019 multu a0,a0,a1
+[0-9a-f]+ <[^>]*> 00a62019 multu a0,a1,a2
+[0-9a-f]+ <[^>]*> 24010000 li at,0
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00850018 mult a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00a60018 mult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00a60019 multu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/r5900@mul.d b/gas/testsuite/gas/mips/r5900@mul.d
new file mode 100644
index 0000000..1d643fd
--- /dev/null
+++ b/gas/testsuite/gas/mips/r5900@mul.d
@@ -0,0 +1,60 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> multu a0,a0,a1
+0+0004 <[^>]*> multu a0,a1,a2
+0+0008 <[^>]*> li at,0
+0+000c <[^>]*> mult a1,at
+0+0010 <[^>]*> mflo a0
+0+0014 <[^>]*> li at,1
+0+0018 <[^>]*> mult a1,at
+0+001c <[^>]*> mflo a0
+0+0020 <[^>]*> li at,0x8000
+0+0024 <[^>]*> mult a1,at
+0+0028 <[^>]*> mflo a0
+0+002c <[^>]*> li at,-32768
+0+0030 <[^>]*> mult a1,at
+0+0034 <[^>]*> mflo a0
+0+0038 <[^>]*> lui at,0x1
+0+003c <[^>]*> mult a1,at
+0+0040 <[^>]*> mflo a0
+0+0044 <[^>]*> lui at,0x1
+0+0048 <[^>]*> ori at,at,0xa5a5
+0+004c <[^>]*> mult a1,at
+0+0050 <[^>]*> mflo a0
+0+0054 <[^>]*> mult a0,a1
+0+0058 <[^>]*> mflo a0
+0+005c <[^>]*> sra a0,a0,0x1f
+0+0060 <[^>]*> mfhi at
+0+0064 <[^>]*> beq a0,at,0+70 <foo\+(0x|)70>
+0+0068 <[^>]*> nop
+0+006c <[^>]*> break (0x0,0x6|0x6)
+0+0070 <[^>]*> mflo a0
+0+0074 <[^>]*> mult a1,a2
+0+0078 <[^>]*> mflo a0
+0+007c <[^>]*> sra a0,a0,0x1f
+0+0080 <[^>]*> mfhi at
+0+0084 <[^>]*> beq a0,at,0+90 <foo\+(0x|)90>
+0+0088 <[^>]*> nop
+0+008c <[^>]*> break (0x0,0x6|0x6)
+0+0090 <[^>]*> mflo a0
+0+0094 <[^>]*> multu a0,a1
+0+0098 <[^>]*> mfhi at
+0+009c <[^>]*> mflo a0
+0+00a0 <[^>]*> beqz at,0+ac <foo\+(0x|)ac>
+0+00a4 <[^>]*> nop
+0+00a8 <[^>]*> break (0x0,0x6|0x6)
+0+00ac <[^>]*> multu a1,a2
+0+00b0 <[^>]*> mfhi at
+0+00b4 <[^>]*> mflo a0
+0+00b8 <[^>]*> beqz at,0+c4 <foo\+(0x|)c4>
+0+00bc <[^>]*> nop
+0+00c0 <[^>]*> break (0x0,0x6|0x6)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/trap-opt.d b/gas/testsuite/gas/mips/trap-opt.d
new file mode 100644
index 0000000..58754ec
--- /dev/null
+++ b/gas/testsuite/gas/mips/trap-opt.d
@@ -0,0 +1,99 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS divide and multiply macros with --trap
+#as: -32 --trap
+#warning_output: brtr-opt.l
+#source: brtr-opt.s
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 000001f4 teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 000001f4 teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 004001f4 teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410002 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 008101b4 teq a0,at,0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 004001f4 teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00c101b6 tne a2,at,0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410004 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 14810002 bne a0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 14400002 bnez v0,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 0007000d break 0x7
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 10c10002 beq a2,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 10200002 beqz at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 0006000d break 0x6
+[0-9a-f]+ <[^>]*> 000001f4 teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 000001f4 teq zero,zero,0x7
+[0-9a-f]+ <[^>]*> 004001f4 teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0082001a div zero,a0,v0
+[0-9a-f]+ <[^>]*> 2401ffff li at,-1
+[0-9a-f]+ <[^>]*> 14410002 bne v0,at,[0-9a-f]+ <[^>]*>
+[0-9a-f]+ <[^>]*> 3c018000 lui at,0x8000
+[0-9a-f]+ <[^>]*> 008101b4 teq a0,at,0x6
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 004001f4 teq v0,zero,0x7
+[0-9a-f]+ <[^>]*> 0082001b divu zero,a0,v0
+[0-9a-f]+ <[^>]*> 00003010 mfhi a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 02318826 xor s1,s1,s1
+[0-9a-f]+ <[^>]*> 00820018 mult a0,v0
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 000637c3 sra a2,a2,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00c101b6 tne a2,at,0x6
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 02108026 xor s0,s0,s0
+[0-9a-f]+ <[^>]*> 24010002 li at,2
+[0-9a-f]+ <[^>]*> 00810019 multu a0,at
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00003012 mflo a2
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/unaligned-branch-1.s b/gas/testsuite/gas/mips/unaligned-branch-1.s
index bc976a2..b99a63e 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-1.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-1.s
@@ -116,7 +116,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -127,7 +127,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-2.s b/gas/testsuite/gas/mips/unaligned-branch-2.s
index 2f892c7..9a60d27 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-2.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-2.s
@@ -117,7 +117,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -129,7 +129,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-micromips-1.s b/gas/testsuite/gas/mips/unaligned-branch-micromips-1.s
index bec74ed..ada5283 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-micromips-1.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-micromips-1.s
@@ -181,7 +181,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -192,7 +192,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-micromips-2.s b/gas/testsuite/gas/mips/unaligned-branch-micromips-2.s
index e65601e..f3f3980 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-micromips-2.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-micromips-2.s
@@ -182,7 +182,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -194,7 +194,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-mips16-1.s b/gas/testsuite/gas/mips/unaligned-branch-mips16-1.s
index d4fad96..6bc8b29 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-mips16-1.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-mips16-1.s
@@ -85,7 +85,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -96,7 +96,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-mips16-2.s b/gas/testsuite/gas/mips/unaligned-branch-mips16-2.s
index 0a6e553..5476cae 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-mips16-2.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-mips16-2.s
@@ -86,7 +86,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -98,7 +98,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-r6-1.s b/gas/testsuite/gas/mips/unaligned-branch-r6-1.s
index 1e5960c..0e48b29 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-r6-1.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-r6-1.s
@@ -118,7 +118,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -129,7 +129,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-r6-2.s b/gas/testsuite/gas/mips/unaligned-branch-r6-2.s
index dc89ea0..c160701 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-r6-2.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-r6-2.s
@@ -118,7 +118,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -129,7 +129,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-r6-3.s b/gas/testsuite/gas/mips/unaligned-branch-r6-3.s
index beb5912..62adac2 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-r6-3.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-r6-3.s
@@ -119,7 +119,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -131,7 +131,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-branch-r6-4.s b/gas/testsuite/gas/mips/unaligned-branch-r6-4.s
index 26a905a..cb5ef69 100644
--- a/gas/testsuite/gas/mips/unaligned-branch-r6-4.s
+++ b/gas/testsuite/gas/mips/unaligned-branch-r6-4.s
@@ -119,7 +119,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -131,7 +131,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-jump-1.s b/gas/testsuite/gas/mips/unaligned-jump-1.s
index bfdd0d3..13f85c7 100644
--- a/gas/testsuite/gas/mips/unaligned-jump-1.s
+++ b/gas/testsuite/gas/mips/unaligned-jump-1.s
@@ -116,7 +116,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -127,7 +127,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-jump-2.s b/gas/testsuite/gas/mips/unaligned-jump-2.s
index f6a951d..b2a60ab 100644
--- a/gas/testsuite/gas/mips/unaligned-jump-2.s
+++ b/gas/testsuite/gas/mips/unaligned-jump-2.s
@@ -117,7 +117,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -129,7 +129,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-jump-micromips-1.s b/gas/testsuite/gas/mips/unaligned-jump-micromips-1.s
index 07d0a58..4ecfc6f 100644
--- a/gas/testsuite/gas/mips/unaligned-jump-micromips-1.s
+++ b/gas/testsuite/gas/mips/unaligned-jump-micromips-1.s
@@ -149,7 +149,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -160,7 +160,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-jump-micromips-2.s b/gas/testsuite/gas/mips/unaligned-jump-micromips-2.s
index 9865f2e..9dff6a1 100644
--- a/gas/testsuite/gas/mips/unaligned-jump-micromips-2.s
+++ b/gas/testsuite/gas/mips/unaligned-jump-micromips-2.s
@@ -150,7 +150,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -162,7 +162,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-jump-mips16-1.s b/gas/testsuite/gas/mips/unaligned-jump-mips16-1.s
index 3292640..bed5ded 100644
--- a/gas/testsuite/gas/mips/unaligned-jump-mips16-1.s
+++ b/gas/testsuite/gas/mips/unaligned-jump-mips16-1.s
@@ -85,7 +85,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -96,7 +96,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/unaligned-jump-mips16-2.s b/gas/testsuite/gas/mips/unaligned-jump-mips16-2.s
index c2b15aa..d6dd5ee 100644
--- a/gas/testsuite/gas/mips/unaligned-jump-mips16-2.s
+++ b/gas/testsuite/gas/mips/unaligned-jump-mips16-2.s
@@ -86,7 +86,7 @@ bar\@ :
.byte 0
.size bar\@, . - bar\@
.if \n - 1
- obj \n - 1
+ obj (\n - 1)
.endif
.endm
@@ -98,7 +98,7 @@ bar\@ :
.hword 0
.size bar\@, . - bar\@
.if \n - 1
- fun \n - 1
+ fun (\n - 1)
.endif
.endm
diff --git a/gas/testsuite/gas/mips/vr5400@div-trap.d b/gas/testsuite/gas/mips/vr5400@div-trap.d
new file mode 100644
index 0000000..9086b22
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@div-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS div with traps
+#source: div.s
+#dump: mips2@div-trap.d
diff --git a/gas/testsuite/gas/mips/vr5400@div.d b/gas/testsuite/gas/mips/vr5400@div.d
new file mode 100644
index 0000000..f89764b
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@div.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS div
+#source: div.s
+#dump: mips1@div.d
diff --git a/gas/testsuite/gas/mips/vr5400@div64-trap.d b/gas/testsuite/gas/mips/vr5400@div64-trap.d
new file mode 100644
index 0000000..ad9bada
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@div64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit div with traps
+#source: div64.s
+#dump: mips3@div64-trap.d
diff --git a/gas/testsuite/gas/mips/vr5400@div64.d b/gas/testsuite/gas/mips/vr5400@div64.d
new file mode 100644
index 0000000..9849e85
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@div64.d
@@ -0,0 +1,5 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit div
+#source: div64.s
+#dump: mips3@div64.d
diff --git a/gas/testsuite/gas/mips/vr5400@mul-trap.d b/gas/testsuite/gas/mips/vr5400@mul-trap.d
new file mode 100644
index 0000000..ee2f942
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@mul-trap.d
@@ -0,0 +1,70 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS mul with traps
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a62058 mul a0,a1,a2
+[0-9a-f]+ <[^>]*> 24010000 li at,0
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24010001 li at,1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 34018000 li at,0x8000
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 24018000 li at,-32768
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 3c010001 lui at,0x1
+[0-9a-f]+ <[^>]*> 3421a5a5 ori at,at,0xa5a5
+[0-9a-f]+ <[^>]*> 00a10018 mult a1,at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00850018 mult a0,a1
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a60018 mult a1,a2
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 000427c3 sra a0,a0,0x1f
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 008101b6 tne a0,at,0x6
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00850019 multu a0,a1
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00a60019 multu a1,a2
+[0-9a-f]+ <[^>]*> 00000810 mfhi at
+[0-9a-f]+ <[^>]*> 00002012 mflo a0
+[0-9a-f]+ <[^>]*> 002001b6 tne at,zero,0x6
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
+[0-9a-f]+ <[^>]*> 00000000 nop
diff --git a/gas/testsuite/gas/mips/vr5400@mul.d b/gas/testsuite/gas/mips/vr5400@mul.d
new file mode 100644
index 0000000..0e49a04
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@mul.d
@@ -0,0 +1,69 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS mul
+#source: mul.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> multu a0,a1
+0+0004 <[^>]*> mflo a0
+ \.\.\.
+0+0010 <[^>]*> mul a0,a1,a2
+0+0014 <[^>]*> li at,0
+0+0018 <[^>]*> mult a1,at
+0+001c <[^>]*> mflo a0
+0+0020 <[^>]*> li at,1
+0+0024 <[^>]*> nop
+0+0028 <[^>]*> mult a1,at
+0+002c <[^>]*> mflo a0
+0+0030 <[^>]*> li at,0x8000
+0+0034 <[^>]*> nop
+0+0038 <[^>]*> mult a1,at
+0+003c <[^>]*> mflo a0
+0+0040 <[^>]*> li at,-32768
+0+0044 <[^>]*> nop
+0+0048 <[^>]*> mult a1,at
+0+004c <[^>]*> mflo a0
+0+0050 <[^>]*> lui at,0x1
+0+0054 <[^>]*> nop
+0+0058 <[^>]*> mult a1,at
+0+005c <[^>]*> mflo a0
+0+0060 <[^>]*> lui at,0x1
+0+0064 <[^>]*> ori at,at,0xa5a5
+0+0068 <[^>]*> mult a1,at
+0+006c <[^>]*> mflo a0
+ \.\.\.
+0+0078 <[^>]*> mult a0,a1
+0+007c <[^>]*> mflo a0
+0+0080 <[^>]*> sra a0,a0,0x1f
+0+0084 <[^>]*> mfhi at
+0+0088 <[^>]*> beq a0,at,0+94 <foo\+(0x|)94>
+0+008c <[^>]*> nop
+0+0090 <[^>]*> break (0x0,0x6|0x6)
+0+0094 <[^>]*> mflo a0
+ \.\.\.
+0+00a0 <[^>]*> mult a1,a2
+0+00a4 <[^>]*> mflo a0
+0+00a8 <[^>]*> sra a0,a0,0x1f
+0+00ac <[^>]*> mfhi at
+0+00b0 <[^>]*> beq a0,at,0+bc <foo\+(0x|)bc>
+0+00b4 <[^>]*> nop
+0+00b8 <[^>]*> break (0x0,0x6|0x6)
+0+00bc <[^>]*> mflo a0
+ \.\.\.
+0+00c8 <[^>]*> multu a0,a1
+0+00cc <[^>]*> mfhi at
+0+00d0 <[^>]*> mflo a0
+0+00d4 <[^>]*> beqz at,0+e0 <foo\+(0x|)e0>
+0+00d8 <[^>]*> nop
+0+00dc <[^>]*> break (0x0,0x6|0x6)
+0+00e0 <[^>]*> multu a1,a2
+0+00e4 <[^>]*> mfhi at
+0+00e8 <[^>]*> mflo a0
+0+00ec <[^>]*> beqz at,0+f8 <foo\+(0x|)f8>
+0+00f0 <[^>]*> nop
+0+00f4 <[^>]*> break (0x0,0x6|0x6)
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/vr5400@mul64-trap.d b/gas/testsuite/gas/mips/vr5400@mul64-trap.d
new file mode 100644
index 0000000..8032f97
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@mul64-trap.d
@@ -0,0 +1,5 @@
+#as: -32 -trap
+#objdump: -drz --prefix-addresses --show-raw-insn
+#name: MIPS 64-bit mul with traps
+#source: mul64.s
+#dump: mips3@mul64-trap.d
diff --git a/gas/testsuite/gas/mips/vr5400@mul64.d b/gas/testsuite/gas/mips/vr5400@mul64.d
new file mode 100644
index 0000000..0594ee2
--- /dev/null
+++ b/gas/testsuite/gas/mips/vr5400@mul64.d
@@ -0,0 +1,33 @@
+#as: -32
+#objdump: -dr --prefix-addresses
+#name: MIPS 64-bit mul
+#source: mul64.s
+
+# Test the mul macro.
+
+.*: +file format .*mips.*
+
+Disassembly of section \.text:
+0+0000 <[^>]*> dmultu a1,a2
+0+0004 <[^>]*> mflo a0
+0+0008 <[^>]*> li at,1
+0+000c <[^>]*> nop
+0+0010 <[^>]*> dmult a1,at
+0+0014 <[^>]*> mflo a0
+ \.\.\.
+0+0020 <[^>]*> dmult a1,a2
+0+0024 <[^>]*> mflo a0
+0+0028 <[^>]*> dsra32 a0,a0,0x1f
+0+002c <[^>]*> mfhi at
+0+0030 <[^>]*> beq a0,at,0+3c <foo\+(0x|)3c>
+0+0034 <[^>]*> nop
+0+0038 <[^>]*> break (0x0,0x6|0x6)
+0+003c <[^>]*> mflo a0
+ \.\.\.
+0+0048 <[^>]*> dmultu a1,a2
+0+004c <[^>]*> mfhi at
+0+0050 <[^>]*> mflo a0
+0+0054 <[^>]*> beqz at,0+60 <foo\+(0x|)60>
+0+0058 <[^>]*> nop
+0+005c <[^>]*> break (0x0,0x6|0x6)
+ \.\.\.
diff --git a/gas/testsuite/gas/riscv/fixup-local-norelax.d b/gas/testsuite/gas/riscv/fixup-local-norelax.d
index 3169c69..8b29860 100644
--- a/gas/testsuite/gas/riscv/fixup-local-norelax.d
+++ b/gas/testsuite/gas/riscv/fixup-local-norelax.d
@@ -1,22 +1,45 @@
#as: -march=rv64i -mno-relax
#source: fixup-local.s
-#objdump: -dr
+#objdump: -dr -Mno-aliases
.*:[ ]+file format .*
+
Disassembly of section .text:
0+0000 <foo>:
[ ]+0:[ ]+00000517[ ]+auipc[ ]+a0,0x0
-[ ]+4:[ ]+00850513[ ]+addi[ ]+a0,a0,8 # 8 <foo\+0x8>
+[ ]+4:[ ]+01850513[ ]+addi[ ]+a0,a0,24 # 18 <foo\+0x18>
[ ]+8:[ ]+00000517[ ]+auipc[ ]+a0,0x0
-[ ]+8:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
-[ ]+c:[ ]+00050513[ ]+mv[ ]+a0,a0
-[ ]+c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+c:[ ]+01051503[ ]+lh[ ]+a0,16\(a0\) # 18 <foo\+0x18>
[ ]+10:[ ]+00000517[ ]+auipc[ ]+a0,0x0
-[ ]+10:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
-[ ]+14:[ ]+00050513[ ]+mv[ ]+a0,a0
-[ ]+14:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
-[ ]+18:[ ]+00000517[ ]+auipc[ ]a0,0x0
-[ ]+1c:[ ]+00852503[ ]+lw[ ]+a0,8\(a0\) # 20 <foo\+0x20>
-[ ]+20:[ ]+00008067[ ]+ret
+[ ]+14:[ ]+00a51423[ ]+sh[ ]+a0,8\(a0\) # 18 <foo\+0x18>
+[ ]+18:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+18:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
+[ ]+1c:[ ]+00050513[ ]+addi[ ]+a0,a0,0 # 18 <foo\+0x18>
+[ ]+1c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+20:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+20:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
+[ ]+24:[ ]+00051503[ ]+lh[ ]+a0,0\(a0\) # 20 <foo\+0x20>
+[ ]+24:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+28:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+28:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
+[ ]+2c:[ ]+00a51023[ ]+sh[ ]+a0,0\(a0\) # 28 <foo\+0x28>
+[ ]+2c:[ ]+R_RISCV_PCREL_LO12_S[ ]+.L0.*
+[ ]+30:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+30:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
+[ ]+34:[ ]+00050513[ ]+addi[ ]+a0,a0,0 # 30 <foo\+0x30>
+[ ]+34:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+38:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+38:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
+[ ]+3c:[ ]+00051503[ ]+lh[ ]+a0,0\(a0\) # 38 <foo\+0x38>
+[ ]+3c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+40:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+40:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
+[ ]+44:[ ]+00a51023[ ]+sh[ ]+a0,0\(a0\) # 40 <foo\+0x40>
+[ ]+44:[ ]+R_RISCV_PCREL_LO12_S[ ]+.L0.*
+[ ]+48:[ ]+00000517[ ]+auipc[ ]a0,0x0
+[ ]+4c:[ ]+01052503[ ]+lw[ ]+a0,16\(a0\) # 58 <foo\+0x58>
+[ ]+50:[ ]+00000517[ ]+auipc[ ]a0,0x0
+[ ]+54:[ ]+00a52823[ ]+sw[ ]+a0,16\(a0\) # 60 <foo\+0x60>
+[ ]+58:[ ]+00008067[ ]+jalr[ ]+zero,0\(ra\)
diff --git a/gas/testsuite/gas/riscv/fixup-local-relax.d b/gas/testsuite/gas/riscv/fixup-local-relax.d
index 3738de1..13ba70c 100644
--- a/gas/testsuite/gas/riscv/fixup-local-relax.d
+++ b/gas/testsuite/gas/riscv/fixup-local-relax.d
@@ -1,6 +1,6 @@
#as: -march=rv64i -mrelax
#source: fixup-local.s
-#objdump: -dr
+#objdump: -dr -Mno-aliases
.*:[ ]+file format .*
@@ -11,31 +11,73 @@ Disassembly of section .text:
[ ]+0:[ ]+00000517[ ]+auipc[ ]+a0,0x0
[ ]+0:[ ]+R_RISCV_PCREL_HI20[ ]+.LL0.*
[ ]+0:[ ]+R_RISCV_RELAX.*
-[ ]+4:[ ]+00850513[ ]+addi[ ]+a0,a0,8 # 8 <.LL0>
+[ ]+4:[ ]+01850513[ ]+addi[ ]+a0,a0,24 # 18 <.LL0>
[ ]+4:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
[ ]+4:[ ]+R_RISCV_RELAX.*
-
-0+0008 <.LL0>:
[ ]+8:[ ]+00000517[ ]+auipc[ ]+a0,0x0
-[ ]+8:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
+[ ]+8:[ ]+R_RISCV_PCREL_HI20[ ]+.LL0.*
[ ]+8:[ ]+R_RISCV_RELAX.*
-[ ]+c:[ ]+00050513[ ]+mv[ ]+a0,a0
+[ ]+c:[ ]+01051503[ ]+lh[ ]+a0,16\(a0\) # 18 <.LL0>
[ ]+c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
[ ]+c:[ ]+R_RISCV_RELAX.*
[ ]+10:[ ]+00000517[ ]+auipc[ ]+a0,0x0
-[ ]+10:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
+[ ]+10:[ ]+R_RISCV_PCREL_HI20[ ]+.LL0.*
[ ]+10:[ ]+R_RISCV_RELAX.*
-[ ]+14:[ ]+00050513[ ]+mv[ ]+a0,a0
-[ ]+14:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+14:[ ]+00a51423[ ]+sh[ ]+a0,8\(a0\) # 18 <.LL0>
+[ ]+14:[ ]+R_RISCV_PCREL_LO12_S[ ]+.L0.*
[ ]+14:[ ]+R_RISCV_RELAX.*
-0+0018 <.LL1>:
-[ ]+18:[ ]+00000517[ ]+auipc[ ]a0,0x0
-[ ]+18:[ ]+R_RISCV_PCREL_HI20[ ]+.LL2.*
-[ ]+18:[ ]R_RISCV_RELAX.*
-[ ]+1c:[ ]+00852503[ ]+lw[ ]+a0,8\(a0\) # 20 <.LL2>
-[ ]+1c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.LL1.*
+0+0018 <.LL0>:
+[ ]+18:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+18:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
+[ ]+18:[ ]+R_RISCV_RELAX.*
+[ ]+1c:[ ]+00050513[ ]+addi[ ]+a0,a0,0 # 18 <.LL0>
+[ ]+1c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
[ ]+1c:[ ]+R_RISCV_RELAX.*
+[ ]+20:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+20:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
+[ ]+20:[ ]+R_RISCV_RELAX.*
+[ ]+24:[ ]+00051503[ ]+lh[ ]+a0,0\(a0\) # 20 <.LL0\+0x8>
+[ ]+24:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+24:[ ]+R_RISCV_RELAX.*
+[ ]+28:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+28:[ ]+R_RISCV_PCREL_HI20[ ]+bar.*
+[ ]+28:[ ]+R_RISCV_RELAX.*
+[ ]+2c:[ ]+00a51023[ ]+sh[ ]+a0,0\(a0\) # 28 <.LL0\+0x10>
+[ ]+2c:[ ]+R_RISCV_PCREL_LO12_S[ ]+.L0.*
+[ ]+2c:[ ]+R_RISCV_RELAX.*
+[ ]+30:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+30:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
+[ ]+30:[ ]+R_RISCV_RELAX.*
+[ ]+34:[ ]+00050513[ ]+addi[ ]+a0,a0,0 # 30 <.LL0\+0x18>
+[ ]+34:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+34:[ ]+R_RISCV_RELAX.*
+[ ]+38:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+38:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
+[ ]+38:[ ]+R_RISCV_RELAX.*
+[ ]+3c:[ ]+00051503[ ]+lh[ ]+a0,0\(a0\) # 38 <.LL0\+0x20>
+[ ]+3c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.L0.*
+[ ]+3c:[ ]+R_RISCV_RELAX.*
+[ ]+40:[ ]+00000517[ ]+auipc[ ]+a0,0x0
+[ ]+40:[ ]+R_RISCV_PCREL_HI20[ ]+foo.*
+[ ]+40:[ ]+R_RISCV_RELAX.*
+[ ]+44:[ ]+00a51023[ ]+sh[ ]+a0,0\(a0\) # 40 <.LL0\+0x28>
+[ ]+44:[ ]+R_RISCV_PCREL_LO12_S[ ]+.L0.*
+[ ]+44:[ ]+R_RISCV_RELAX.*
+
+0+0048 <.LL1>:
+[ ]+48:[ ]+00000517[ ]+auipc[ ]a0,0x0
+[ ]+48:[ ]+R_RISCV_PCREL_HI20[ ]+.LL3.*
+[ ]+48:[ ]+R_RISCV_RELAX.*
+[ ]+4c:[ ]+01052503[ ]+lw[ ]+a0,16\(a0\) # 58 <.LL3>
+[ ]+4c:[ ]+R_RISCV_PCREL_LO12_I[ ]+.LL1.*
+[ ]+4c:[ ]+R_RISCV_RELAX.*
+[ ]+50:[ ]+00000517[ ]+auipc[ ]a0,0x0
+[ ]+50:[ ]+R_RISCV_PCREL_HI20[ ]+.LL3.*
+[ ]+50:[ ]+R_RISCV_RELAX.*
+[ ]+54:[ ]+00a52823[ ]+sw[ ]+a0,16\(a0\) # 60 <.LL3\+0x8>
+[ ]+54:[ ]+R_RISCV_PCREL_LO12_S[ ]+.LL1.*
+[ ]+54:[ ]+R_RISCV_RELAX.*
-0+0020 <.LL2>:
-[ ]+20:[ ]+00008067[ ]+ret
+0+0058 <.LL3>:
+[ ]+58:[ ]+00008067[ ]+jalr[ ]+zero,0\(ra\)
diff --git a/gas/testsuite/gas/riscv/fixup-local.s b/gas/testsuite/gas/riscv/fixup-local.s
index 44b4731..04e7c7f 100644
--- a/gas/testsuite/gas/riscv/fixup-local.s
+++ b/gas/testsuite/gas/riscv/fixup-local.s
@@ -1,13 +1,19 @@
-.global foo
-.global bar
+ .global foo
+ .global bar
foo:
- la a0, .LL0
+ la a0, .LL0
+ lh a0, .LL0
+ sh a0, .LL0, a0
.LL0:
- la a0, bar
- la a0, foo
-.LL1:
- auipc a0, %pcrel_hi(.LL2)
- lw a0, %pcrel_lo(.LL1)(a0)
-
-.LL2:
- ret
+ la a0, bar
+ lh a0, bar
+ sh a0, bar, a0
+ la a0, foo
+ lh a0, foo
+ sh a0, foo, a0
+.LL1: auipc a0, %pcrel_hi(.LL3)
+ lw a0, %pcrel_lo(.LL1)(a0)
+.LL2: auipc a0, %pcrel_hi(.LL3)
+ sw a0, %pcrel_lo(.LL1)(a0)
+.LL3:
+ ret
diff --git a/gas/testsuite/gas/riscv/march-imply-i2p0-02.d b/gas/testsuite/gas/riscv/imply-zicsr-zifencei-i2p0-misa-spec-2p2.d
index 7686296..2f5ed99 100644
--- a/gas/testsuite/gas/riscv/march-imply-i2p0-02.d
+++ b/gas/testsuite/gas/riscv/imply-zicsr-zifencei-i2p0-misa-spec-2p2.d
@@ -1,6 +1,6 @@
#as: -march=rv32i -march-attr -misa-spec=2.2
#readelf: -A
-#source: march-imply-i.s
+#source: imply-zicsr-zifencei.s
Attribute Section: riscv
File Attributes
Tag_RISCV_arch: "rv32i2p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-i2p1-01.l b/gas/testsuite/gas/riscv/imply-zicsr-zifencei-i2p1-misa-spec-20191213.d
index 7fbee14..80630f4 100644
--- a/gas/testsuite/gas/riscv/march-imply-i2p1-01.l
+++ b/gas/testsuite/gas/riscv/imply-zicsr-zifencei-i2p1-misa-spec-20191213.d
@@ -1,4 +1,6 @@
-.*Assembler messages:
+#as: -march=rv32i -march-attr -misa-spec=20191213
+#source: imply-zicsr-zifencei.s
+#error: .*Assembler messages:
.*Error: unrecognized opcode `csrr t0,ustatus', extension `zicsr' required
.*Error: unrecognized opcode `csrwi ustatus,0x0', extension `zicsr' required
.*Error: unrecognized opcode `csrsi ustatus,0x0', extension `zicsr' required
diff --git a/gas/testsuite/gas/riscv/march-imply-i.s b/gas/testsuite/gas/riscv/imply-zicsr-zifencei.s
index b65c3c3..b65c3c3 100644
--- a/gas/testsuite/gas/riscv/march-imply-i.s
+++ b/gas/testsuite/gas/riscv/imply-zicsr-zifencei.s
diff --git a/gas/testsuite/gas/riscv/imply.d b/gas/testsuite/gas/riscv/imply.d
new file mode 100644
index 0000000..0c726d3
--- /dev/null
+++ b/gas/testsuite/gas/riscv/imply.d
@@ -0,0 +1,94 @@
+#source: imply.s
+#as: -misa-spec=20191213
+#objdump: --syms --special-syms
+
+.*file format.*riscv.*
+
+SYMBOL TABLE:
+[0-9a-f]+ l d .text 0+000 .text
+[0-9a-f]+ l d .data 0+000 .data
+[0-9a-f]+ l d .bss 0+000 .bss
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_m2p0_a2p1_f2p2_d2p2_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0
+[0-9a-f]+ l .text 0+000 \$xrv32e1p9
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1
+[0-9a-f]+ l .text 0+000 \$xrv32i2p0_zicsr2p0_zifencei2p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicntr2p0_zicsr2p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zihpm2p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_m2p0_zmmul1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_a2p1_zaamo1p0_zabha1p0_zalrsc1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_a2p1_zaamo1p0_zacas1p0_zalrsc1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_a2p1_zaamo1p0_zalrsc1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl32b1p0_xsfvcp1p0
+[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
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zfbfmin1p0_zfhmin1p0_zve32f1p0_zve32x1p0_zvfbfwma1p0_zvl32b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zvfbfmin1p0_zvl32b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_d2p2_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl32b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zve64f1p0_zve64x1p0_zvl32b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zvl32b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zve64x1p0_zvl32b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl32b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl1024b1p0_zvl128b1p0_zvl16384b1p0_zvl2048b1p0_zvl256b1p0_zvl32768b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl65536b1p0_zvl8192b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl1024b1p0_zvl128b1p0_zvl16384b1p0_zvl2048b1p0_zvl256b1p0_zvl32768b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl8192b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl1024b1p0_zvl128b1p0_zvl16384b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl8192b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0_zvl8192b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl4096b1p0_zvl512b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl1024b1p0_zvl128b1p0_zvl2048b1p0_zvl256b1p0_zvl32b1p0_zvl512b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl1024b1p0_zvl128b1p0_zvl256b1p0_zvl32b1p0_zvl512b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl128b1p0_zvl256b1p0_zvl32b1p0_zvl512b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl128b1p0_zvl256b1p0_zvl32b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl32b1p0_zvl64b1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zca1p0_zcb1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_d2p2_zicsr2p0_zca1p0_zcd1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zca1p0_zcf1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zca1p0_zcmp1p0
+[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
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shvsatpa1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shvstvala1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shvstvecd1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zfinx1p0_zhinx1p0_zhinxmin1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zfinx1p0_zhinxmin1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_d2p2_q2p2_zicsr2p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zfinx1p0_zdinx1p0_zqinx1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_d2p2_zicsr2p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zfinx1p0_zdinx1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zfa1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zfbfmin1p0_zfhmin1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zfh1p0_zfhmin1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zfhmin1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zfinx1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_b1p0_zba1p0_zbb1p0_zbs1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zk1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0_zkr1p0_zkt1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zkn1p0_zknd1p0_zkne1p0_zknh1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zbkb1p0_zbkc1p0_zbkx1p0_zks1p0_zksed1p0_zksh1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvbb1p0_zvkb1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvkg1p0_zvkn1p0_zvkned1p0_zvkng1p0_zvknhb1p0_zvkt1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvbc1p0_zvkb1p0_zvkn1p0_zvknc1p0_zvkned1p0_zvknhb1p0_zvkt1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvkn1p0_zvkned1p0_zvknhb1p0_zvkt1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvkg1p0_zvks1p0_zvksed1p0_zvksg1p0_zvksh1p0_zvkt1p0
+[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_smcsrind1p0_sscsrind1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smcntrpmf1p0
+[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_ssaia1p0
+[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
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_ssstateen1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sstc1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sstvala1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sstvecd1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_ssu64xl1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_svade1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_svadu1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_svbare1p0
+[0-9a-f]+ l d .riscv.attributes 0+000 .riscv.attributes
diff --git a/gas/testsuite/gas/riscv/imply.s b/gas/testsuite/gas/riscv/imply.s
new file mode 100644
index 0000000..8eca66f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/imply.s
@@ -0,0 +1,104 @@
+.macro imply string base=i
+.option push
+.option arch, rv32\base\string
+nop
+.option pop
+.endm
+
+.text
+imply ,g
+imply ,e
+imply ,i
+imply ,i2p0
+
+imply zicntr
+imply zihpm
+
+imply m
+
+imply zabha
+imply zacas
+imply a
+
+imply xsfvcp
+imply v
+imply zvfh
+imply zvfhmin
+imply zvfbfwma
+imply zvfbfmin
+imply zve64d
+imply zve64f
+imply zve32f
+imply zve64x
+imply zve32x
+imply zve32x_zvl65536b
+imply zve32x_zvl32768b
+imply zve32x_zvl16384b
+imply zve32x_zvl8192b
+imply zve32x_zvl4096b
+imply zve32x_zvl2048b
+imply zve32x_zvl1024b
+imply zve32x_zvl512b
+imply zve32x_zvl256b
+imply zve32x_zvl128b
+imply zve32x_zvl64b
+
+imply zcb
+imply zcd
+imply zcf
+imply zcmp
+
+imply shcounterenw
+imply shgatpa
+imply shtvala
+imply shvsatpa
+imply shvstvala
+imply shvstvecd
+imply h
+imply zhinx
+imply zhinxmin
+
+imply q
+imply zqinx
+
+imply d
+imply zdinx
+
+imply zfa
+imply zfbfmin
+imply zfh
+imply zfhmin
+imply zfinx
+imply f
+
+imply b
+
+imply zk
+imply zkn
+imply zks
+imply zvbb
+imply zvkng
+imply zvknc
+imply zvkn
+imply zvksg
+imply zvksc
+imply zvks
+
+imply smaia
+imply smcsrind
+imply smcntrpmf
+imply smstateen
+imply smepmp
+imply ssaia
+imply sscsrind
+imply sscofpmf
+imply sscounterenw
+imply ssstateen
+imply sstc
+imply sstvala
+imply sstvecd
+imply ssu64xl
+
+imply svade
+imply svadu
+imply svbare
diff --git a/gas/testsuite/gas/riscv/march-help.l b/gas/testsuite/gas/riscv/march-help.l
index c33d856..97521c7 100644
--- a/gas/testsuite/gas/riscv/march-help.l
+++ b/gas/testsuite/gas/riscv/march-help.l
@@ -10,6 +10,11 @@ All available -march extensions for RISC-V:
b 1.0
v 1.0
h 1.0
+ zic64b 1.0
+ ziccamoa 1.0
+ ziccif 1.0
+ zicclsm 1.0
+ ziccrse 1.0
zicbom 1.0
zicbop 1.0
zicboz 1.0
@@ -21,6 +26,8 @@ All available -march extensions for RISC-V:
zihintpause 2.0
zihpm 2.0
zmmul 1.0
+ za64rs 1.0
+ za128rs 1.0
zaamo 1.0
zabha 1.0
zacas 1.0
@@ -95,17 +102,30 @@ All available -march extensions for RISC-V:
zcf 1.0
zcd 1.0
zcmp 1.0
+ shcounterenw 1.0
+ shgatpa 1.0
+ shtvala 1.0
+ shvsatpa 1.0
+ shvstvala 1.0
+ shvstvecd 1.0
smaia 1.0
smcsrind 1.0
smcntrpmf 1.0
smepmp 1.0
smstateen 1.0
ssaia 1.0
+ ssccptr 1.0
sscsrind 1.0
sscofpmf 1.0
+ sscounterenw 1.0
ssstateen 1.0
sstc 1.0
+ sstvala 1.0
+ sstvecd 1.0
+ ssu64xl 1.0
+ svade 1.0
svadu 1.0
+ svbare 1.0
svinval 1.0
svnapot 1.0
svpbmt 1.0
diff --git a/gas/testsuite/gas/riscv/march-imply-a.d b/gas/testsuite/gas/riscv/march-imply-a.d
deleted file mode 100644
index b2cbfcf..0000000
--- a/gas/testsuite/gas/riscv/march-imply-a.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32ia -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_a2p1_zaamo1p0_zalrsc1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-b.d b/gas/testsuite/gas/riscv/march-imply-b.d
deleted file mode 100644
index 82506c9..0000000
--- a/gas/testsuite/gas/riscv/march-imply-b.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32ib -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_b1p0_zba1p0_zbb1p0_zbs1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-d.d b/gas/testsuite/gas/riscv/march-imply-d.d
deleted file mode 100644
index ce2b479..0000000
--- a/gas/testsuite/gas/riscv/march-imply-d.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32id -march-attr -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/march-imply-f.d b/gas/testsuite/gas/riscv/march-imply-f.d
deleted file mode 100644
index bc372ae..0000000
--- a/gas/testsuite/gas/riscv/march-imply-f.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32if -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_f2p2_zicsr2p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-g.d b/gas/testsuite/gas/riscv/march-imply-g.d
deleted file mode 100644
index 7e7a967..0000000
--- a/gas/testsuite/gas/riscv/march-imply-g.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32g -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_m2p0_a2p1_f2p2_d2p2_zicsr2p0_zifencei2p0_zmmul1p0_zaamo1p0_zalrsc1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-h.d b/gas/testsuite/gas/riscv/march-imply-h.d
deleted file mode 100644
index 04ad9f6..0000000
--- a/gas/testsuite/gas/riscv/march-imply-h.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32ih -march-attr -misa-spec=20191213 -mpriv-spec=1.12
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_h1p0_zicsr2p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-i2p0-01.d b/gas/testsuite/gas/riscv/march-imply-i2p0-01.d
deleted file mode 100644
index 6d86034..0000000
--- a/gas/testsuite/gas/riscv/march-imply-i2p0-01.d
+++ /dev/null
@@ -1,7 +0,0 @@
-#as: -march=rv32i2p0 -march-attr -misa-spec=20191213
-#readelf: -A
-#source: march-imply-i.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p0_zicsr2p0_zifencei2p0"
-#...
diff --git a/gas/testsuite/gas/riscv/march-imply-i2p1-01.d b/gas/testsuite/gas/riscv/march-imply-i2p1-01.d
deleted file mode 100644
index fcf22ed..0000000
--- a/gas/testsuite/gas/riscv/march-imply-i2p1-01.d
+++ /dev/null
@@ -1,3 +0,0 @@
-#as: -march=rv32i -march-attr -misa-spec=20191213
-#source: march-imply-i.s
-#error_output: march-imply-i2p1-01.l
diff --git a/gas/testsuite/gas/riscv/march-imply-i2p1-02.d b/gas/testsuite/gas/riscv/march-imply-i2p1-02.d
deleted file mode 100644
index b8065b6..0000000
--- a/gas/testsuite/gas/riscv/march-imply-i2p1-02.d
+++ /dev/null
@@ -1,7 +0,0 @@
-#as: -march=rv32i_zicsr_zifencei -march-attr -misa-spec=20191213
-#readelf: -A
-#source: march-imply-i.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_zicsr2p0_zifencei2p0"
-#...
diff --git a/gas/testsuite/gas/riscv/march-imply-q.d b/gas/testsuite/gas/riscv/march-imply-q.d
deleted file mode 100644
index d631d6f..0000000
--- a/gas/testsuite/gas/riscv/march-imply-q.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv64iq -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv64i2p1_f2p2_d2p2_q2p2_zicsr2p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-smcsrind.d b/gas/testsuite/gas/riscv/march-imply-smcsrind.d
deleted file mode 100644
index e028a06..0000000
--- a/gas/testsuite/gas/riscv/march-imply-smcsrind.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32i_smcsrind -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_zicsr2p0_smcsrind1p0_sscsrind1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-smstateen.d b/gas/testsuite/gas/riscv/march-imply-smstateen.d
deleted file mode 100644
index 2db14fd..0000000
--- a/gas/testsuite/gas/riscv/march-imply-smstateen.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32i_smstateen -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_zicsr2p0_smstateen1p0_ssstateen1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-unsupported.d b/gas/testsuite/gas/riscv/march-imply-unsupported.d
deleted file mode 100644
index 5615d59..0000000
--- a/gas/testsuite/gas/riscv/march-imply-unsupported.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32g -march-attr -misa-spec=2.2
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p0_m2p0_a2p0_f2p0_d2p0_zmmul1p0_zaamo1p0_zalrsc1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-v.d b/gas/testsuite/gas/riscv/march-imply-v.d
deleted file mode 100644
index e07eecf..0000000
--- a/gas/testsuite/gas/riscv/march-imply-v.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32iv -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-zcd.d b/gas/testsuite/gas/riscv/march-imply-zcd.d
deleted file mode 100644
index e7c75f6..0000000
--- a/gas/testsuite/gas/riscv/march-imply-zcd.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32i_zcd -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_f2p2_d2p2_zicsr2p0_zca1p0_zcd1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-zcf.d b/gas/testsuite/gas/riscv/march-imply-zcf.d
deleted file mode 100644
index 3829637..0000000
--- a/gas/testsuite/gas/riscv/march-imply-zcf.d
+++ /dev/null
@@ -1,6 +0,0 @@
-#as: -march=rv32i_zcf -march-attr -misa-spec=20191213
-#readelf: -A
-#source: empty.s
-Attribute Section: riscv
-File Attributes
- Tag_RISCV_arch: "rv32i2p1_f2p2_zicsr2p0_zca1p0_zcf1p0"
diff --git a/gas/testsuite/gas/scfi/README b/gas/testsuite/gas/scfi/README
index 9119163..c1d6d9d 100644
--- a/gas/testsuite/gas/scfi/README
+++ b/gas/testsuite/gas/scfi/README
@@ -1,16 +1,19 @@
Notes on the SCFI testsuite in GAS:
-* At this time, SCFI machinery is only supported for x86_64.
+* At this time, SCFI machinery is only supported for x86_64 and aarch64.
-* When adding more tests, please keep CFI annotations updated in the .s files.
- Ideally the test should be run with and without --scfi (as is done currently
- for the core SCFI tests); Such workflow ensures sanity checking of the CFI
- annotations.
+* When adding more core SCFI tests (scfi-* tests), please keep CFI
+ annotations updated in the .s files. Ideally the test should be run with and
+ without --scfi (as is done currently for the core SCFI tests); Such workflow
+ ensures sanity checking of the CFI annotations.
* Note that GAS issues a warning:
- "Warning: --scfi=all ignores some user-specified CFI directive"
- when it encounters CFI directives in the input assembly and --scfi (=all) is
- active. To bypass the noise from this warning, while keeping the testcases
- useful/understandable, most tests are run twice. E.g.,
+ "Warning: SCFI ignores most user-specified CFI directives"
+ when it encounters CFI directives in the input assembly and SCFI is enabled.
+ To bypass the noise from this warning, while keeping the testcases
+ useful/understandable, most of the SCFI core tests are run twice. E.g.,
- run_dump_test "scfi-cfi-add-1" // ignores warnings
- - run_list_test "scfi-cfi-add-1" "--scfi --warn" // tests warnings
+ - run_list_test "scfi-cfi-add-1" "--scfi=experimental --warn" // tests warnings
+
+* Tests named ginsn-* generally aim to ensure graceful ginsn creation process for
+ various instructions.
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.l b/gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.l
new file mode 100644
index 0000000..de1fb2a
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.l
@@ -0,0 +1,40 @@
+.*: Assembler messages:
+.*:13: Error: SCFI: unsupported stack manipulation pattern
+.*:19: Error: SCFI: forward pass failed for func 'foo'
+
+AARCH64 GAS .*
+
+
+ 1 # Testcase for a variety of arith instructions
+ 2 .text
+ 3 .align 2
+ 4 .global foo
+ 5 .type foo, %function
+ 5 ginsn: SYM FUNC_BEGIN
+ 6 foo:
+ 6 ginsn: SYM foo
+ 7 \?\?\?\? FF830091 add sp, sp, 32
+ 7 ginsn: ADD %r31, 32, %r31
+ 8 \?\?\?\? FD5B21B1 adds x29, sp, 2134
+ 8 ginsn: ADD %r31, 2134, %r29
+ 9 \?\?\?\? FF8300D1 sub sp, sp, 32
+ 9 ginsn: SUB %r31, 32, %r31
+ 10 \?\?\?\? FD5B21F1 subs x29, sp, 2134
+ 10 ginsn: SUB %r31, 2134, %r29
+ 11 \?\?\?\? FD63228B add x29, sp, x2
+ 11 ginsn: ADD %r31, %r2, %r29
+ 12 \?\?\?\? FD6323CB sub x29, sp, x3
+ 12 ginsn: SUB %r31, %r3, %r29
+ 13 \?\?\?\? BF63238B add sp, x29, x3
+ 13 ginsn: ADD %r29, %r3, %r31
+ 14 \?\?\?\? BF6322CB sub sp, x29, x2
+ 14 ginsn: SUB %r29, %r2, %r31
+ 15 \?\?\?\? 1F48220B add wsp, w0, w2, lsl 2
+ 15 ginsn: OTH 0, 0, %r31
+ 16 \?\?\?\? A4C0228B add x4, x5, x2, sxtw
+ 17 \?\?\?\? BFC0228B add sp, x5, x2, sxtw
+ 17 ginsn: OTH 0, 0, %r31
+ 18 \?\?\?\? C0035FD6 ret
+ 18 ginsn: RET
+ 19 .size foo, .-foo
+ 19 ginsn: SYM FUNC_END
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.s b/gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.s
new file mode 100644
index 0000000..503196e
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-arith-1.s
@@ -0,0 +1,19 @@
+# Testcase for a variety of arith instructions
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ add sp, sp, 32
+ adds x29, sp, 2134
+ sub sp, sp, 32
+ subs x29, sp, 2134
+ add x29, sp, x2
+ sub x29, sp, x3
+ add sp, x29, x3
+ sub sp, x29, x2
+ add wsp, w0, w2, lsl 2
+ add x4, x5, x2, sxtw
+ add sp, x5, x2, sxtw
+ ret
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.l b/gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.l
new file mode 100644
index 0000000..d05e19d
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.l
@@ -0,0 +1,30 @@
+.*: Assembler messages:
+.*:16: Error: untraceable control flow for func 'foo'
+
+AARCH64 GAS .*
+
+ 1 # Testcase for a variety of change of flow instructions
+ 2 # Because some of these are indirect branches, SCFI will bail out
+ 3 # with an error. This test merely checks that the ginsn creation
+ 4 # process can handle these insns gracefully.
+ 5 .text
+ 6 .align 2
+ 7 .global foo
+ 8 .type foo, %function
+ 8 ginsn: SYM FUNC_BEGIN
+ 9 foo:
+ 9 ginsn: SYM foo
+ 10 \?\?\?\? 00000094 bl dump_bt
+ 10 ginsn: CALL
+ 11 \?\?\?\? 02000014 b .L3
+ 11 ginsn: JMP
+ 12 \?\?\?\? 20021FD6 br x17
+ 12 ginsn: JMP %r17,
+ 13 .L3:
+ 13 ginsn: SYM .L3
+ 14 \?\?\?\? 60003FD6 blr x3
+ 14 ginsn: CALL
+ 15 \?\?\?\? C0035FD6 ret
+ 15 ginsn: RET
+ 16 .size foo, .-foo
+ 16 ginsn: SYM FUNC_END
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.s b/gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.s
new file mode 100644
index 0000000..bbcbe4e
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-cofi-1.s
@@ -0,0 +1,16 @@
+# Testcase for a variety of change of flow instructions
+# Because some of these are indirect branches, SCFI will bail out
+# with an error. This test merely checks that the ginsn creation
+# process can handle these insns gracefully.
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ bl dump_bt
+ b .L3
+ br x17
+.L3:
+ blr x3
+ ret
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.l b/gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.l
new file mode 100644
index 0000000..3471347
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.l
@@ -0,0 +1,101 @@
+AARCH64 GAS .*
+
+ 1 # Testcase for a variety of ld st instructions.
+ 2 # stg ops must generate the sp update arithmetic insn, when applicable
+ 3 # due to writeback.
+ 4 .text
+ 5 .align 2
+ 6 .global foo
+ 7 .type foo, %function
+ 7 ginsn: SYM FUNC_BEGIN
+ 8 foo:
+ 8 ginsn: SYM foo
+ 9 # ldstpair_indexed
+ 10 0000 FF7F8629 stp wzr, wzr, \[sp, 48\]!
+ 10 ginsn: ADD %r31, 48, %r31
+ 11 0004 E00782A9 stp x0, x1, \[sp, 32\]!
+ 11 ginsn: ADD %r31, 32, %r31
+ 11 ginsn: STORE %r0, \[%r31\+0\]
+ 11 ginsn: STORE %r1, \[%r31\+8\]
+ 12 0008 E827BC6D stp d8, d9, \[sp, -64\]!
+ 12 ginsn: ADD %r31, -64, %r31
+ 12 ginsn: STORE %r72, \[%r31\+0\]
+ 12 ginsn: STORE %r73, \[%r31\+8\]
+ 13 000c E827C46C ldp d8, d9, \[sp\], 64
+ 13 ginsn: LOAD \[%r31\+0\], %r72
+ 13 ginsn: LOAD \[%r31\+8\], %r73
+ 13 ginsn: ADD %r31, 64, %r31
+ 14 # 32-bit FP regs
+ 15 0010 E51BB42D stp s5, s6, \[sp, -96\]!
+ 15 ginsn: ADD %r31, -96, %r31
+ 16 0014 E51BCC2C ldp s5, s6, \[sp\], 96
+ 16 ginsn: ADD %r31, 96, %r31
+ 17 # 32-bit INT regs
+ 18 0018 E10BB029 stp w1, w2, \[sp, -128\]!
+ 18 ginsn: ADD %r31, -128, %r31
+ 19 001c E10BD028 ldp w1, w2, \[sp\], 128
+ 19 ginsn: ADD %r31, 128, %r31
+ 20 # ldstpair_off
+ 21 0020 E00702AD stp q0, q1, \[sp, 64\]
+ 21 ginsn: STORE %r64, \[%r31\+64\]
+ 21 ginsn: STORE %r65, \[%r31\+80\]
+ 22 0024 FF7F0629 stp wzr, wzr, \[sp, 48\]
+ 23 0028 1F7840AD ldp q31, q30, \[x0\]
+ 23 ginsn: LOAD \[%r0\+0\], %r95
+ 23 ginsn: LOAD \[%r0\+16\], %r94
+ 24 002c FF4F01A9 stp xzr, x19, \[sp, 16\]
+ 24 ginsn: STORE %r19, \[%r31\+24\]
+ 25 0030 F37F01A9 stp x19, xzr, \[sp, 16\]
+ 25 ginsn: STORE %r19, \[%r31\+16\]
+ 26 # ldst_imm9
+ 27 0034 E78F4F38 ldrb w7, \[sp, 248\]!
+ 27 ginsn: ADD %r31, 248, %r31
+ 28 0038 FD0FC33C ldr q29, \[sp, 48\]!
+ 28 ginsn: ADD %r31, 48, %r31
+ 28 ginsn: LOAD \[%r31\+0\], %r93
+ 29 003c FF0F42B8 ldr wzr, \[sp, 32\]!
+ 29 ginsn: ADD %r31, 32, %r31
+ 30 0040 E30742F8 ldr x3, \[sp\], 32
+ 30 ginsn: LOAD \[%r31\+0\], %r3
+ AARCH64 GAS .*
+
+
+ 30 ginsn: ADD %r31, 32, %r31
+ 31 # 32-bit ldr
+ 32 0044 E10744BC ldr s1, \[sp\], 64
+ 32 ginsn: ADD %r31, 64, %r31
+ 33 # ldst_pos
+ 34 0048 FF3340B9 ldr wzr, \[sp, 48\]
+ 35 004c FD1300F9 str x29, \[sp, 32\]
+ 35 ginsn: STORE %r29, \[%r31\+32\]
+ 36 0050 FD1340F9 ldr x29, \[sp, 32\]
+ 36 ginsn: LOAD \[%r31\+32\], %r29
+ 37 # store tag
+ 38 0054 FF2F20D9 stg sp, \[sp, 32\]!
+ 38 ginsn: ADD %r31, 32, %r31
+ 39 # store tag pair
+ 40 0058 FBF38169 stgp x27, x28, \[sp, 48\]!
+ 40 ginsn: ADD %r31, 48, %r31
+ 41 # ldpsw / ldrsw
+ 42 005c F353E069 ldpsw x19, x20, \[sp, -256\]!
+ 42 ginsn: ADD %r31, -256, %r31
+ 43 0060 F50F98B8 ldrsw x21, \[sp, -128\]!
+ 43 ginsn: ADD %r31, -128, %r31
+ 44 # ldrsb / ldrsh
+ 45 0064 F70F9938 ldrsb x23, \[sp, -112\]!
+ 45 ginsn: ADD %r31, -112, %r31
+ 46 0068 F88F9978 ldrsh x24, \[sp, -104\]!
+ 46 ginsn: ADD %r31, -104, %r31
+ 47 # ldrb / ldrh / strb / strh
+ 48 006c F90F5A38 ldrb w25, \[sp, -96\]!
+ 48 ginsn: ADD %r31, -96, %r31
+ 49 0070 FA8F5A78 ldrh w26, \[sp, -88\]!
+ 49 ginsn: ADD %r31, -88, %r31
+ 50 0074 F90F1A38 strb w25, \[sp, -96\]!
+ 50 ginsn: ADD %r31, -96, %r31
+ 51 0078 FA8F1A78 strh w26, \[sp, -88\]!
+ 51 ginsn: ADD %r31, -88, %r31
+ 52 007c C0035FD6 ret
+ 52 ginsn: RET
+ 53 .size foo, .-foo
+ 53 ginsn: SYM FUNC_END
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.s b/gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.s
new file mode 100644
index 0000000..98df9c6
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-ldst-1.s
@@ -0,0 +1,53 @@
+# Testcase for a variety of ld st instructions.
+# stg ops must generate the sp update arithmetic insn, when applicable
+# due to writeback.
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+# ldstpair_indexed
+ stp wzr, wzr, [sp, 48]!
+ stp x0, x1, [sp, 32]!
+ stp d8, d9, [sp, -64]!
+ ldp d8, d9, [sp], 64
+# 32-bit FP regs
+ stp s5, s6, [sp, -96]!
+ ldp s5, s6, [sp], 96
+# 32-bit INT regs
+ stp w1, w2, [sp, -128]!
+ ldp w1, w2, [sp], 128
+# ldstpair_off
+ stp q0, q1, [sp, 64]
+ stp wzr, wzr, [sp, 48]
+ ldp q31, q30, [x0]
+ stp xzr, x19, [sp, 16]
+ stp x19, xzr, [sp, 16]
+# ldst_imm9
+ ldrb w7, [sp, 248]!
+ ldr q29, [sp, 48]!
+ ldr wzr, [sp, 32]!
+ ldr x3, [sp], 32
+# 32-bit ldr
+ ldr s1, [sp], 64
+# ldst_pos
+ ldr wzr, [sp, 48]
+ str x29, [sp, 32]
+ ldr x29, [sp, 32]
+# store tag
+ stg sp, [sp, 32]!
+# store tag pair
+ stgp x27, x28, [sp, 48]!
+# ldpsw / ldrsw
+ ldpsw x19, x20, [sp, -256]!
+ ldrsw x21, [sp, -128]!
+# ldrsb / ldrsh
+ ldrsb x23, [sp, -112]!
+ ldrsh x24, [sp, -104]!
+# ldrb / ldrh / strb / strh
+ ldrb w25, [sp, -96]!
+ ldrh w26, [sp, -88]!
+ strb w25, [sp, -96]!
+ strh w26, [sp, -88]!
+ ret
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.l b/gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.l
new file mode 100644
index 0000000..7bd70e3
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.l
@@ -0,0 +1,48 @@
+.*: Assembler messages:
+.*:13: Error: SCFI: unsupported stack manipulation pattern
+.*:33: Error: SCFI: forward pass failed for func 'foo'
+
+AARCH64 GAS .*
+
+
+ 1 # Testcase for a variety of misc instructions.
+ 2 # Ensure graceful handling, irrespective of ginsn generation.
+ 3 # - ldrsw, ldpsw ops need a mention: they are 32-bit loads from memory
+ 4 # and cannot be used for reg restore. For CFI purposes, the width has to be
+ 5 # 8 bytes or more. Expect no memory ginsn ever as ginsn do not track width
+ 6 # of memory accesses yet.
+ 7 symbol:
+ 8 \?\?\?\? 7700 .string "w"
+ 9
+ 10 .type foo, %function
+ 10 ginsn: SYM FUNC_BEGIN
+ 11 foo:
+ 11 ginsn: SYM foo
+ 12 \?\?\?\? 00000000 adrp x0, symbol
+ 12 0090
+ 13 \?\?\?\? 1F000091 add sp, x0, :lo12:symbol
+ 13 ginsn: OTH 0, 0, %r31
+ 14 \?\?\?\? 2000A0F2 movk x0, 0x1, lsl 16
+ 15 \?\?\?\? E10380F9 prfm PLDL1STRM, \[sp\]
+ 16 \?\?\?\? E013DF9A irg x0, sp
+ 17 \?\?\?\? 000820D9 stg x0, \[x0\]
+ 18 \?\?\?\? F5DB3C69 stgp x21, x22, \[sp, -112\]
+ 19 \?\?\?\? E03FBF91 addg x0, sp, #0x3f0, #0xf
+ 20 \?\?\?\? 1F3CAA91 addg sp, x0, #0x2a0, #0xf
+ 20 ginsn: OTH 0, 0, %r31
+ 21 \?\?\?\? F4577069 ldpsw x20, x21, \[sp, -128\]
+ 22 \?\?\?\? F3534069 ldpsw x19, x20, \[sp\]
+ 23 \?\?\?\? 9B0080B9 ldrsw x27, \[x4\]
+ 24 \?\?\?\? F4038039 ldrsb x20, \[sp\]
+ 25 \?\?\?\? F4038079 ldrsh x20, \[sp\]
+ 26 # Test a few insn with wzr / xzr
+ 27 \?\?\?\? 3F0480D2 mov xzr, 33
+ 28 \?\?\?\? E0031FAA mov x0, xzr
+ 29 \?\?\?\? 1F00018B add xzr, x0, x1
+ 30 \?\?\?\? 3F603F8B add sp, x1, xzr
+ 30 ginsn: ADD %r1, %r31, %r31
+ 31 \?\?\?\? FF031F8B add xzr, xzr, xzr
+ 32 \?\?\?\? C0035FD6 ret
+ 32 ginsn: RET
+ 33 .size foo,.-foo
+ 33 ginsn: SYM FUNC_END
diff --git a/gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.s b/gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.s
new file mode 100644
index 0000000..ddce948
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/ginsn-misc-1.s
@@ -0,0 +1,33 @@
+# Testcase for a variety of misc instructions.
+# Ensure graceful handling, irrespective of ginsn generation.
+# - ldrsw, ldpsw ops need a mention: they are 32-bit loads from memory
+# and cannot be used for reg restore. For CFI purposes, the width has to be
+# 8 bytes or more. Expect no memory ginsn ever as ginsn do not track width
+# of memory accesses yet.
+symbol:
+ .string "w"
+
+ .type foo, %function
+foo:
+ adrp x0, symbol
+ add sp, x0, :lo12:symbol
+ movk x0, 0x1, lsl 16
+ prfm PLDL1STRM, [sp]
+ irg x0, sp
+ stg x0, [x0]
+ stgp x21, x22, [sp, -112]
+ addg x0, sp, #0x3f0, #0xf
+ addg sp, x0, #0x2a0, #0xf
+ ldpsw x20, x21, [sp, -128]
+ ldpsw x19, x20, [sp]
+ ldrsw x27, [x4]
+ ldrsb x20, [sp]
+ ldrsh x20, [sp]
+# Test a few insn with wzr / xzr
+ mov xzr, 33
+ mov x0, xzr
+ add xzr, x0, x1
+ add sp, x1, xzr
+ add xzr, xzr, xzr
+ ret
+ .size foo,.-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-aarch64.exp b/gas/testsuite/gas/scfi/aarch64/scfi-aarch64.exp
new file mode 100644
index 0000000..9a0b285
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-aarch64.exp
@@ -0,0 +1,74 @@
+# Copyright (C) 2022-2023 Free Software Foundation, Inc.
+
+# This 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.
+
+if { ![is_elf_format] } then {
+ return
+}
+
+# common tests
+if { ([istarget "aarch64-*-*"]) } then {
+
+ global ASFLAGS
+ set old_ASFLAGS "$ASFLAGS"
+
+ run_list_test "ginsn-arith-1" "--scfi=experimental -ali --warn"
+ run_list_test "ginsn-cofi-1" "--scfi=experimental -ali --warn"
+ run_list_test "ginsn-ldst-1" "--scfi=experimental -march=armv8-a+memtag -ali --warn"
+ run_list_test "ginsn-misc-1" "--scfi=experimental -march=armv8-a+memtag -ali --warn"
+
+ run_list_test "scfi-diag-1" "--scfi=experimental"
+ run_list_test "scfi-diag-2" "--scfi=experimental"
+ run_list_test "scfi-diag-3" "--scfi=experimental"
+
+ run_list_test "scfi-unsupported-1" "--scfi=experimental"
+ run_list_test "scfi-unsupported-2" "--scfi=experimental"
+
+ run_dump_test "scfi-callee-saved-fp-1"
+ run_list_test "scfi-callee-saved-fp-1" "--scfi=experimental --warn"
+ run_dump_test "scfi-callee-saved-fp-2"
+ run_list_test "scfi-callee-saved-fp-2" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-ldrp-1"
+ run_list_test "scfi-ldrp-1" "--scfi=experimental --warn"
+ run_dump_test "scfi-ldrp-2"
+ run_list_test "scfi-ldrp-2" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-strp-1"
+ run_list_test "scfi-strp-1" "--scfi=experimental --warn"
+ run_dump_test "scfi-strp-2"
+ run_list_test "scfi-strp-2" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-ldstnap-1"
+ run_list_test "scfi-ldstnap-1" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-cb-1"
+ run_list_test "scfi-cb-1" "--scfi=experimental --warn"
+ run_dump_test "scfi-cond-br-1"
+ run_list_test "scfi-cond-br-1" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-cfg-1"
+ run_list_test "scfi-cfg-1" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-cfg-2"
+ run_list_test "scfi-cfg-2" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-cfg-3"
+ run_list_test "scfi-cfg-3" "--scfi=experimental --warn"
+
+ run_dump_test "scfi-cfg-4"
+ run_list_test "scfi-cfg-4" "--scfi=experimental --warn"
+
+}
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.d b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.d
new file mode 100644
index 0000000..da4b8a0
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.d
@@ -0,0 +1,57 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for callee-saved FP regs I
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0+[0-9a-f]+ 0+0018 FDE cie=00000000 pc=0+0000..0+0040
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 128
+ DW_CFA_offset: r29 \(x29\) at cfa-128
+ DW_CFA_offset: r30 \(x30\) at cfa-120
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 4 to 0+000c
+ DW_CFA_offset_extended: r72 \(v8\) at cfa-112
+ DW_CFA_advance_loc: 4 to 0+0010
+ DW_CFA_offset_extended: r73 \(v9\) at cfa-104
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_offset_extended: r74 \(v10\) at cfa-96
+ DW_CFA_offset_extended: r75 \(v11\) at cfa-88
+ DW_CFA_advance_loc: 4 to 0+0018
+ DW_CFA_offset_extended: r76 \(v12\) at cfa-80
+ DW_CFA_offset_extended: r77 \(v13\) at cfa-72
+ DW_CFA_advance_loc: 4 to 0+001c
+ DW_CFA_offset_extended: r78 \(v14\) at cfa-64
+ DW_CFA_offset_extended: r79 \(v15\) at cfa-56
+ DW_CFA_advance_loc: 8 to 0+0024
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_advance_loc: 4 to 0+0028
+ DW_CFA_restore_extended: r72 \(v8\)
+ DW_CFA_advance_loc: 4 to 0+002c
+ DW_CFA_restore_extended: r73 \(v9\)
+ DW_CFA_advance_loc: 4 to 0+0030
+ DW_CFA_restore_extended: r74 \(v10\)
+ DW_CFA_restore_extended: r75 \(v11\)
+ DW_CFA_advance_loc: 4 to 0+0034
+ DW_CFA_restore_extended: r76 \(v12\)
+ DW_CFA_restore_extended: r77 \(v13\)
+ DW_CFA_advance_loc: 4 to 0+0038
+ DW_CFA_restore_extended: r78 \(v14\)
+ DW_CFA_restore_extended: r79 \(v15\)
+ DW_CFA_advance_loc: 4 to 0+003c
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.l
new file mode 100644
index 0000000..5ff6048
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*8: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.s
new file mode 100644
index 0000000..0f7afe2
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-1.s
@@ -0,0 +1,50 @@
+# Testcase for callee-saved FP registers.
+# Uses a combination of str/stp and ldr/ldp
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -128]!
+ .cfi_def_cfa_offset 128
+ .cfi_offset 29, -128
+ .cfi_offset 30, -120
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ str d8, [sp, 16]
+ .cfi_offset 72, -112
+ str d9, [sp, 24]
+ .cfi_offset 73, -104
+ stp d10, d11, [sp, 32]
+ .cfi_offset 74, -96
+ .cfi_offset 75, -88
+ stp d12, d13, [sp, 48]
+ .cfi_offset 76, -80
+ .cfi_offset 77, -72
+ stp d14, d15, [sp, 64]
+ .cfi_offset 78, -64
+ .cfi_offset 79, -56
+ mov w0, 0
+ mov sp, x29
+ .cfi_def_cfa_register 31
+ ldr d8, [sp, 16]
+ .cfi_restore 72
+ ldr d9, [sp, 24]
+ .cfi_restore 73
+ ldp d10, d11, [sp, 32]
+ .cfi_restore 74
+ .cfi_restore 75
+ ldp d12, d13, [sp, 48]
+ .cfi_restore 76
+ .cfi_restore 77
+ ldp d14, d15, [sp, 64]
+ .cfi_restore 78
+ .cfi_restore 79
+ ldp x29, x30, [sp], 128
+ .cfi_restore 29
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.d b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.d
new file mode 100644
index 0000000..0e3de4c
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.d
@@ -0,0 +1,57 @@
+#as: --scfi=experimental -W -mbig-endian
+#objdump: -Wf
+#name: Synthesize CFI for callee-saved FP regs BE II
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0+[0-9a-f]+ 0+0018 FDE cie=00000000 pc=0+0000..0+0040
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 256
+ DW_CFA_offset: r29 \(x29\) at cfa-256
+ DW_CFA_offset: r30 \(x30\) at cfa-248
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 4 to 0+000c
+ DW_CFA_offset_extended: r72 \(v8\) at cfa-232
+ DW_CFA_advance_loc: 4 to 0+0010
+ DW_CFA_offset_extended: r73 \(v9\) at cfa-216
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_offset_extended: r74 \(v10\) at cfa-184
+ DW_CFA_offset_extended: r75 \(v11\) at cfa-168
+ DW_CFA_advance_loc: 4 to 0+0018
+ DW_CFA_offset_extended: r76 \(v12\) at cfa-152
+ DW_CFA_offset_extended: r77 \(v13\) at cfa-136
+ DW_CFA_advance_loc: 4 to 0+001c
+ DW_CFA_offset_extended: r78 \(v14\) at cfa-120
+ DW_CFA_offset_extended: r79 \(v15\) at cfa-104
+ DW_CFA_advance_loc: 8 to 0+0024
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_advance_loc: 4 to 0+0028
+ DW_CFA_restore_extended: r72 \(v8\)
+ DW_CFA_advance_loc: 4 to 0+002c
+ DW_CFA_restore_extended: r73 \(v9\)
+ DW_CFA_advance_loc: 4 to 0+0030
+ DW_CFA_restore_extended: r74 \(v10\)
+ DW_CFA_restore_extended: r75 \(v11\)
+ DW_CFA_advance_loc: 4 to 0+0034
+ DW_CFA_restore_extended: r76 \(v12\)
+ DW_CFA_restore_extended: r77 \(v13\)
+ DW_CFA_advance_loc: 4 to 0+0038
+ DW_CFA_restore_extended: r78 \(v14\)
+ DW_CFA_restore_extended: r79 \(v15\)
+ DW_CFA_advance_loc: 4 to 0+003c
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.l b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.l
new file mode 100644
index 0000000..5ff6048
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*8: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.s b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.s
new file mode 100644
index 0000000..4204daf
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-callee-saved-fp-2.s
@@ -0,0 +1,50 @@
+# Testcase for callee-saved FP registers.
+# Use Q registers
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -256]!
+ .cfi_def_cfa_offset 256
+ .cfi_offset 29, -256
+ .cfi_offset 30, -248
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ str q8, [sp, 16]
+ .cfi_offset 72, -232
+ str q9, [sp, 32]
+ .cfi_offset 73, -216
+ stp q10, q11, [sp, 64]
+ .cfi_offset 74, -184
+ .cfi_offset 75, -168
+ stp q12, q13, [sp, 96]
+ .cfi_offset 76, -152
+ .cfi_offset 77, -136
+ stp q14, q15, [sp, 128]
+ .cfi_offset 78, -120
+ .cfi_offset 79, -104
+ mov w0, 0
+ mov sp, x29
+ .cfi_def_cfa_register 31
+ ldr q8, [sp, 16]
+ .cfi_restore 72
+ ldr q9, [sp, 32]
+ .cfi_restore 73
+ ldp q10, q11, [sp, 64]
+ .cfi_restore 74
+ .cfi_restore 75
+ ldp q12, q13, [sp, 96]
+ .cfi_restore 76
+ .cfi_restore 77
+ ldp q14, q15, [sp, 128]
+ .cfi_restore 78
+ .cfi_restore 79
+ ldp x29, x30, [sp], 256
+ .cfi_restore 29
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.d b/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.d
new file mode 100644
index 0000000..87583c5
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.d
@@ -0,0 +1,20 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for comp branch 1
+#...
+Contents of the .eh_frame section:
+
+
+0+0000 0+0010 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+0+0014 0+0010 00000018 FDE cie=00000000 pc=0+0000..0+0014
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.l
new file mode 100644
index 0000000..abca835
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*5: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.s
new file mode 100644
index 0000000..1fa7de7
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cb-1.s
@@ -0,0 +1,14 @@
+ .text
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+.L7:
+ add w4, w3, w1
+ cbnz w4, .L7
+ cbz w4, .L10
+ tbnz w0, #31, .L7
+.L10:
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.d b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.d
new file mode 100644
index 0000000..9dca6ef
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.d
@@ -0,0 +1,31 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for cfg 1
+#...
+Contents of the .eh_frame section:
+
+
+0+0000 0+0010 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+0+0014 0+0020 0+0018 FDE cie=00000000 pc=0+0000..0+0068
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 48
+ DW_CFA_offset: r29 \(x29\) at cfa-48
+ DW_CFA_offset: r30 \(x30\) at cfa-40
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 92 to 0+0064
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.l
new file mode 100644
index 0000000..bcf3095
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*6: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.s
new file mode 100644
index 0000000..6925a8f
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-1.s
@@ -0,0 +1,46 @@
+# Testcase for forward flow of SCFI information
+# and CFG creation as well. This testcase has two backward edges
+# (one of which is a loop) and one exit path.
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -48]!
+ .cfi_def_cfa_offset 48
+ .cfi_offset 29, -48
+ .cfi_offset 30, -40
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ str x0, [sp, 24]
+ adrp x0, :got:xyz
+ str x0, [sp, 40]
+ b .L7
+.L10:
+ ldr x0, [sp, 40]
+ ldr x0, [x0]
+ mov x1, x0
+ ldr x0, [sp, 24]
+ bl strcmp
+ cmp w0, 0
+ bne .L8
+ ldr x0, [sp, 40]
+ ldr w0, [x0, 8]
+ b .L9
+.L8:
+ ldr x0, [sp, 40]
+ add x0, x0, 24
+ str x0, [sp, 40]
+.L7:
+ ldr x0, [sp, 40]
+ ldr w0, [x0, 8]
+ cmp w0, 0
+ bne .L10
+ mov w0, 0
+.L9:
+ ldp x29, x30, [sp], 48
+ .cfi_def_cfa_register 31
+ .cfi_restore 30
+ .cfi_restore 29
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.d b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.d
new file mode 100644
index 0000000..af21fc1
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.d
@@ -0,0 +1,40 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for cfg 2
+#...
+Contents of the .eh_frame section:
+
+
+0+0000 0+0010 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+0+0014 0+[0-9a-f]+ 0+0018 FDE cie=00000000 pc=0+0000..0+0028
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 48
+ DW_CFA_offset: r29 \(x29\) at cfa-48
+ DW_CFA_offset: r30 \(x30\) at cfa-40
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 8 to 0+0010
+ DW_CFA_remember_state
+ DW_CFA_advance_loc: 8 to 0+0018
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_advance_loc: 4 to 0+001c
+ DW_CFA_restore_state
+ DW_CFA_advance_loc: 8 to 0+0024
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.l b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.l
new file mode 100644
index 0000000..e9bde33
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*13: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.s b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.s
new file mode 100644
index 0000000..eef82b4
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-2.s
@@ -0,0 +1,42 @@
+# Testcase for backward flow of SCFI state.
+# The cfg has two exit paths, with epilogue duplicated in
+# the two.
+#
+# SCFI must synthesize the remember_state / restore_state pair.
+# Note how SCFI does not necessary generate the least number of
+# CFI directives (.cfi_remember_state can possibly be clubbed
+# together with other immediately following CFI directives).
+# This is not a correctness issue, however.
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -48]!
+ .cfi_def_cfa_offset 48
+ .cfi_offset 29, -48
+ .cfi_offset 30, -40
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ cmp w4, w19
+ bge .L1
+
+.L2:
+ .cfi_remember_state
+ bl bar
+ ldp x29, x30, [sp], 48
+ .cfi_def_cfa_register 31
+ .cfi_restore 29
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+.L1:
+ .cfi_restore_state
+ cbz w3, .L2
+ ldp x29, x30, [sp], 48
+ .cfi_def_cfa_register 31
+ .cfi_restore 29
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.d b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.d
new file mode 100644
index 0000000..4d17ee4
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.d
@@ -0,0 +1,32 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for cfg 3
+#...
+Contents of the .eh_frame section:
+
+
+0+0000 0+0010 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+0+0014 0+0020 0+0018 FDE cie=00000000 pc=0+0000..0+002c
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 32
+ DW_CFA_offset: r29 \(x29\) at cfa-32
+ DW_CFA_offset: r30 \(x30\) at cfa-24
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 32 to 0+0028
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.l b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.l
new file mode 100644
index 0000000..23ca734
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*9: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.s b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.s
new file mode 100644
index 0000000..2782e11
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-3.s
@@ -0,0 +1,34 @@
+# Testcase for cfg creation.
+# There is at least one bb here with a single GINSN_TYPE_SYMBOL instruction
+# for a user-defined label. This ginsn is visited in the fallthrough path of
+# another bb.
+ .text
+ .global main
+ .type main, %function
+main:
+ .cfi_startproc
+ stp x29, x30, [sp, -32]!
+ .cfi_def_cfa_offset 32
+ .cfi_offset 29, -32
+ .cfi_offset 30, -24
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ cmp w0, 0
+ bne .L2
+# ldr x0, [sp, 24]
+# bl fclose
+ cmp w0, 0
+ beq .L3
+.L2:
+ mov w0, 1
+ b .L5
+.L3:
+ mov w0, 0
+.L5:
+ ldp x29, x30, [sp], 32
+ .cfi_def_cfa_register 31
+ .cfi_restore 29
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.d b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.d
new file mode 100644
index 0000000..6a23818
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.d
@@ -0,0 +1,41 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for cfg 4
+#...
+Contents of the .eh_frame section:
+
+
+0+0000 0+0010 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+0+0014 0+[0-9a-f]+ 0+0018 FDE cie=00000000 pc=0+0000..0+002c
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 32
+ DW_CFA_offset: r29 \(x29\) at cfa-32
+ DW_CFA_offset: r30 \(x30\) at cfa-24
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 8 to 0+0010
+ DW_CFA_offset: r19 \(x19\) at cfa-16
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_remember_state
+ DW_CFA_advance_loc: 4 to 0+0018
+ DW_CFA_restore: r19 \(x19\)
+ DW_CFA_advance_loc: 8 to 0+0020
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_advance_loc: 4 to 0+0024
+ DW_CFA_restore_state
+ DW_CFA_advance_loc: 4 to 0+0028
+ DW_CFA_restore: r19 \(x19\)
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.l b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.l
new file mode 100644
index 0000000..6ec2438
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*7: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.s b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.s
new file mode 100644
index 0000000..499278d
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cfg-4.s
@@ -0,0 +1,41 @@
+# Testcase for forward flow of SCFI information.
+# This testcase has two paths landing at the exit basic block,
+# where only one of the exit paths has a save/restore of x19
+# (while the other does not).
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -32]!
+ .cfi_def_cfa_offset 32
+ .cfi_offset 29, -32
+ .cfi_offset 30, -24
+ mov x29, sp
+ .cfi_def_cfa_register 29
+# do some work ...
+ cbz x0, .L2
+ str x19, [sp, 16]
+ .cfi_offset 19, -16
+# do some other work ...
+ cbz w0, .L3
+ ldr x19, [sp, 16]
+ .cfi_restore 19
+.L2:
+ mov w0, 1
+.L1:
+ ldp x29, x30, [sp], 32
+ .cfi_def_cfa_register 31
+ .cfi_restore 30
+ .cfi_restore 29
+ .cfi_def_cfa_offset 0
+ ret
+.L3:
+ .cfi_def_cfa_offset 32
+ .cfi_offset 19, -16
+ .cfi_offset 29, -32
+ .cfi_offset 30, -24
+# do yet some other work before return
+ ldr x19, [sp, 16]
+ .cfi_restore 19
+ b .L1
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.d b/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.d
new file mode 100644
index 0000000..dc656c7
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.d
@@ -0,0 +1,20 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for conditional br 1
+#...
+Contents of the .eh_frame section:
+
+
+0+0000 0+0010 0+0000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+0+0014 0+0010 00000018 FDE cie=00000000 pc=0+0000..0+0010
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.l
new file mode 100644
index 0000000..bcf3095
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*6: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.s
new file mode 100644
index 0000000..03c330d
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-cond-br-1.s
@@ -0,0 +1,13 @@
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ bge .L10
+ ble .L10
+ bne .L10
+.L10:
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-diag-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-diag-1.l
new file mode 100644
index 0000000..5a8e369
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-diag-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*5: Warning: SCFI: ignored probable save/restore op with reg offset
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-diag-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-diag-1.s
new file mode 100644
index 0000000..a6eac51
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-diag-1.s
@@ -0,0 +1,6 @@
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ str x19, [sp, x1]
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-diag-2.l b/gas/testsuite/gas/scfi/aarch64/scfi-diag-2.l
new file mode 100644
index 0000000..03a5f4f
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-diag-2.l
@@ -0,0 +1,3 @@
+.*Assembler messages:
+.*7: Warning: SCFI ignores most user-specified CFI directives
+.*16: Warning: GINSN: found unreachable code in func 'foo'
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-diag-2.s b/gas/testsuite/gas/scfi/aarch64/scfi-diag-2.s
new file mode 100644
index 0000000..81855aa
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-diag-2.s
@@ -0,0 +1,25 @@
+# Testcase that triggers a diagnostic for unreachable code for
+# the block of code after label .L2. This also serves as a testcase
+# for cfg creation, as the said code block should not have been
+# included in the CFG (and hence the warning).
+ .type foo, %function
+foo:
+ .cfi_startproc
+ ldr w1, [x0]
+ cmp w1, 8
+ stp x19, x20, [sp, 16]
+ .cfi_offset 19, 16
+ .cfi_offset 20, 24
+ b .L1
+.L2:
+ mov w0, w1
+ ret
+.L1:
+ mov w0, w1
+ ldp x19, x20, [sp, 16]
+ .cfi_restore 19
+ .cfi_restore 20
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-diag-3.l b/gas/testsuite/gas/scfi/aarch64/scfi-diag-3.l
new file mode 100644
index 0000000..85b1279
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-diag-3.l
@@ -0,0 +1,3 @@
+.*Assembler messages:
+.*6: Error: SCFI: 0x14000000 op with non-zero addend to sym not supported
+.*6: Error: SCFI: unhandled op 0x14000000 may cause incorrect CFI
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-diag-3.s b/gas/testsuite/gas/scfi/aarch64/scfi-diag-3.s
new file mode 100644
index 0000000..89a4d9a
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-diag-3.s
@@ -0,0 +1,8 @@
+# Testcase with a branch instruction with symbol and an addend
+# Such insns make CFG creation difficult and hence make the
+# function ineligible for SCFI.
+ .type foo, %function
+foo:
+ b symbol+1
+ ret
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.d b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.d
new file mode 100644
index 0000000..ce8fab5
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.d
@@ -0,0 +1,59 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for ldp ldr instructions
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0+0048 00000018 FDE cie=00000000 pc=0+0000..0+0040
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 128
+ DW_CFA_offset: r29 \(x29\) at cfa-128
+ DW_CFA_offset: r30 \(x30\) at cfa-120
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 4 to 0+000c
+ DW_CFA_offset: r19 \(x19\) at cfa-112
+ DW_CFA_offset: r20 \(x20\) at cfa-104
+ DW_CFA_advance_loc: 4 to 0+0010
+ DW_CFA_offset: r21 \(x21\) at cfa-96
+ DW_CFA_offset: r22 \(x22\) at cfa-88
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_offset: r23 \(x23\) at cfa-80
+ DW_CFA_offset: r24 \(x24\) at cfa-72
+ DW_CFA_advance_loc: 4 to 0+0018
+ DW_CFA_offset: r25 \(x25\) at cfa-64
+ DW_CFA_offset: r26 \(x26\) at cfa-56
+ DW_CFA_advance_loc: 4 to 0+001c
+ DW_CFA_offset: r27 \(x27\) at cfa-48
+ DW_CFA_advance_loc: 8 to 0+0024
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_advance_loc: 4 to 0+0028
+ DW_CFA_restore: r19 \(x19\)
+ DW_CFA_restore: r20 \(x20\)
+ DW_CFA_advance_loc: 4 to 0+002c
+ DW_CFA_restore: r21 \(x21\)
+ DW_CFA_restore: r22 \(x22\)
+ DW_CFA_advance_loc: 4 to 0+0030
+ DW_CFA_restore: r23 \(x23\)
+ DW_CFA_restore: r24 \(x24\)
+ DW_CFA_advance_loc: 4 to 0+0034
+ DW_CFA_restore: r25 \(x25\)
+ DW_CFA_restore: r26 \(x26\)
+ DW_CFA_advance_loc: 4 to 0+0038
+ DW_CFA_restore: r27 \(x27\)
+ DW_CFA_advance_loc: 4 to 0+003c
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.l
new file mode 100644
index 0000000..5ff6048
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*8: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.s
new file mode 100644
index 0000000..4226d71
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-1.s
@@ -0,0 +1,52 @@
+# Testcase for various ldp / ldr instructions.
+# This test also serves for checking callee-saved regs.
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -128]!
+ .cfi_def_cfa_offset 128
+ .cfi_offset 29, -128
+ .cfi_offset 30, -120
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ stp x19, x20, [sp, 16]
+ .cfi_offset 19, -112
+ .cfi_offset 20, -104
+ stp x21, x22, [sp, 32]
+ .cfi_offset 21, -96
+ .cfi_offset 22, -88
+ stp x23, x24, [sp, 48]
+ .cfi_offset 23, -80
+ .cfi_offset 24, -72
+ stp x25, x26, [sp, 64]
+ .cfi_offset 25, -64
+ .cfi_offset 26, -56
+ str x27, [sp, 80]
+ .cfi_offset 27, -48
+ mov w0, 0
+ mov sp, x29
+ .cfi_def_cfa_register 31
+ ldp x19, x20, [sp, 16]
+ .cfi_restore 19
+ .cfi_restore 20
+ ldp x21, x22, [sp, 32]
+ .cfi_restore 21
+ .cfi_restore 22
+ ldp x23, x24, [sp, 48]
+ .cfi_restore 23
+ .cfi_restore 24
+ ldp x25, x26, [sp, 64]
+ .cfi_restore 25
+ .cfi_restore 26
+ ldr x27, [sp, 80]
+ .cfi_restore 27
+ ldp x29, x30, [sp], 128
+ .cfi_restore 29
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.d b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.d
new file mode 100644
index 0000000..2a0fdb6
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.d
@@ -0,0 +1,33 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for ldr insns 2
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0+[0-9a-f]+ 00000018 FDE cie=00000000 pc=0+0000..0+0018
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 128
+ DW_CFA_offset: r29 \(x29\) at cfa-128
+ DW_CFA_offset: r30 \(x30\) at cfa-120
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 4 to 0+000c
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_advance_loc: 4 to 0+0010
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_def_cfa_offset: 120
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.l b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.l
new file mode 100644
index 0000000..6ec2438
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*7: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.s b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.s
new file mode 100644
index 0000000..ac4ad68
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldrp-2.s
@@ -0,0 +1,26 @@
+# Testcase for various ldp / ldr instructions
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -128]!
+ .cfi_def_cfa_offset 128
+ .cfi_offset 29, -128
+ .cfi_offset 30, -120
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ mov sp, x29
+ .cfi_def_cfa_register 31
+# Post-indexed ldr
+ ldr x29, [sp], 8
+ .cfi_restore 29
+ .cfi_def_cfa_offset 120
+# Post-indexed ldr
+ ldr x30, [sp], 120
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.d b/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.d
new file mode 100644
index 0000000..f2eeb86
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.d
@@ -0,0 +1,39 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for ldst no-allocate pair
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0+[0-9a-f]+ 00000018 FDE cie=00000000 pc=0+0000..0+0020
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 128
+ DW_CFA_offset: r29 \(x29\) at cfa-128
+ DW_CFA_offset: r30 \(x30\) at cfa-120
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 4 to 0+000c
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_advance_loc: 4 to 0+0010
+ DW_CFA_offset: r19 \(x19\) at cfa-112
+ DW_CFA_offset: r20 \(x20\) at cfa-104
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_restore: r19 \(x19\)
+ DW_CFA_restore: r20 \(x20\)
+ DW_CFA_advance_loc: 4 to 0+0018
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_def_cfa_offset: 120
+ DW_CFA_advance_loc: 4 to 0+001c
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.l
new file mode 100644
index 0000000..6ec2438
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*7: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.s
new file mode 100644
index 0000000..ed1754b
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-ldstnap-1.s
@@ -0,0 +1,30 @@
+# Testcase for various ldnp / stnp instructions
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -128]!
+ .cfi_def_cfa_offset 128
+ .cfi_offset 29, -128
+ .cfi_offset 30, -120
+ mov x29, sp
+ .cfi_def_cfa_register 29
+ mov sp, x29
+ .cfi_def_cfa_register 31
+ stp x19, x20, [sp, 16]
+ .cfi_offset 19, -112
+ .cfi_offset 20, -104
+ ldp x19, x20, [sp, 16]
+ .cfi_restore 19
+ .cfi_restore 20
+ ldr x29, [sp], 8
+ .cfi_restore 29
+ .cfi_def_cfa_offset 120
+ ldr x30, [sp], 120
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.d b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.d
new file mode 100644
index 0000000..cebd254
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.d
@@ -0,0 +1,39 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for str stp insns 1
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0+0030 00000018 FDE cie=00000000 pc=0+0000..0+002c
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 128
+ DW_CFA_offset: r29 \(x29\) at cfa-128
+ DW_CFA_offset: r30 \(x30\) at cfa-120
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 4 to 0+000c
+ DW_CFA_offset: r19 \(x19\) at cfa-112
+ DW_CFA_offset: r20 \(x20\) at cfa-104
+ DW_CFA_advance_loc: 4 to 0+0010
+ DW_CFA_offset: r21 \(x21\) at cfa-96
+ DW_CFA_offset: r22 \(x22\) at cfa-88
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_offset: r23 \(x23\) at cfa-80
+ DW_CFA_offset: r24 \(x24\) at cfa-72
+ DW_CFA_advance_loc: 4 to 0+0018
+ DW_CFA_offset: r25 \(x25\) at cfa-64
+ DW_CFA_offset: r26 \(x26\) at cfa-56
+ DW_CFA_advance_loc: 4 to 0+001c
+ DW_CFA_offset: r27 \(x27\) at cfa-48
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.l
new file mode 100644
index 0000000..bcf3095
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*6: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s
new file mode 100644
index 0000000..932ca4a
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s
@@ -0,0 +1,37 @@
+## Testcase with a variety of str/stp instructions
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ .cfi_startproc
+# Pre-indexed addressing is like offset addressing, except that
+# the base pointer is updated as a result of the instruction.
+ stp x29, x30, [sp, -128]!
+ .cfi_def_cfa_offset 128
+ .cfi_offset 29, -128
+ .cfi_offset 30, -120
+ mov x29, sp
+ .cfi_def_cfa_register 29
+# Offset addressing mode is when ann offset can be applied optionally to the
+# base address.
+ stp x19, x20, [sp, 16]
+ .cfi_offset 19, -112
+ .cfi_offset 20, -104
+ stp x21, x22, [sp, 32]
+ .cfi_offset 21, -96
+ .cfi_offset 22, -88
+ stp x23, x24, [sp, 48]
+ .cfi_offset 23, -80
+ .cfi_offset 24, -72
+ stp x25, x26, [sp, 64]
+ .cfi_offset 25, -64
+ .cfi_offset 26, -56
+ str x27, [sp, 80]
+ .cfi_offset 27, -48
+# Stores non callee-saved register on stack.
+ str w0, [x29, 124]
+ str wzr, [x29, 120]
+ str w0, [x29, 120]
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.d b/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.d
new file mode 100644
index 0000000..d69ba0d
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.d
@@ -0,0 +1,35 @@
+#as: --scfi=experimental -W
+#objdump: -Wf
+#name: Synthesize CFI for str insns 2
+#...
+Contents of the .eh_frame section:
+
+00000000 0+0010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: 4
+ Data alignment factor: -8
+ Return address column: 30
+ Augmentation data: 1b
+ DW_CFA_def_cfa: r31 \(sp\) ofs 0
+
+00000014 0+0028 00000018 FDE cie=00000000 pc=0+0000..0+001c
+ DW_CFA_advance_loc: 4 to 0+0004
+ DW_CFA_def_cfa_offset: 128
+ DW_CFA_offset: r29 \(x29\) at cfa-128
+ DW_CFA_offset: r30 \(x30\) at cfa-120
+ DW_CFA_advance_loc: 4 to 0+0008
+ DW_CFA_def_cfa_register: r29 \(x29\)
+ DW_CFA_advance_loc: 4 to 0+000c
+ DW_CFA_offset: r27 \(x27\) at cfa-128
+ DW_CFA_advance_loc: 4 to 0+0010
+ DW_CFA_def_cfa_register: r31 \(sp\)
+ DW_CFA_advance_loc: 4 to 0+0014
+ DW_CFA_restore: r29 \(x29\)
+ DW_CFA_def_cfa_offset: 120
+ DW_CFA_advance_loc: 4 to 0+0018
+ DW_CFA_restore: r30 \(x30\)
+ DW_CFA_def_cfa_offset: 0
+ DW_CFA_nop
+
+#pass
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.l b/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.l
new file mode 100644
index 0000000..6ec2438
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*7: Warning: SCFI ignores most user-specified CFI directives
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.s b/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.s
new file mode 100644
index 0000000..1792697
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-strp-2.s
@@ -0,0 +1,30 @@
+# Testcase for a variety of stp/str including a post-indexed store
+ .text
+ .align 2
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ stp x29, x30, [sp, -128]!
+ .cfi_def_cfa_offset 128
+ .cfi_offset 29, -128
+ .cfi_offset 30, -120
+ mov x29, sp
+ .cfi_def_cfa_register 29
+# post-indexed store, a stack corrupting one which over-writes
+# x29! Only for testing purposes for now
+# This does not generate a .cfi_def_cfa_offset 208 because
+# CFA is REG_FP based
+ str x27, [sp], 80
+ .cfi_offset 27, -128
+ mov sp, x29
+ .cfi_def_cfa_register 31
+ ldr x29, [sp], 8
+ .cfi_restore 29
+ .cfi_def_cfa_offset 120
+ ldr x30, [sp], 120
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.l b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.l
new file mode 100644
index 0000000..de3ed86
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.l
@@ -0,0 +1,4 @@
+.*Assembler messages:
+.*7: Warning: SCFI ignores most user-specified CFI directives
+.*9: Error: SCFI: unsupported stack manipulation pattern
+.*31: Error: SCFI: forward pass failed for func 'foo'
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.s
new file mode 100644
index 0000000..c143185
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-1.s
@@ -0,0 +1,31 @@
+# Testcase where immediate used for stack allocation is a wide
+# one. Since SCFI does not currently have any data-flow
+# capabilities, this is currently not supported.
+ .global foo
+ .type foo, %function
+foo:
+ .cfi_startproc
+ mov x16, 4384
+ sub sp, sp, x16
+ .cfi_def_cfa_offset 4384
+ stp x29, x30, [sp]
+ .cfi_offset 29, -4384
+ .cfi_offset 30, -4376
+ mov x29, sp
+ str x0, [sp, 24]
+ str x1, [sp, 16]
+ add x0, sp, 4096
+ add x0, x0, 112
+ bl bar
+.L1:
+ str xzr, [sp, 4376]
+.L2:
+ ldp x29, x30, [sp]
+ mov x16, 4384
+ add sp, sp, x16
+ .cfi_restore 29
+ .cfi_restore 30
+ .cfi_def_cfa_offset 0
+ ret
+ .cfi_endproc
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.l b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.l
new file mode 100644
index 0000000..f1b9604
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.l
@@ -0,0 +1,2 @@
+.*Assembler messages:
+.*7: Error: SCFI: unhandled op 0xe5e0e000 may cause incorrect CFI
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.s b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.s
new file mode 100644
index 0000000..a6a4dae
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-unsupported-2.s
@@ -0,0 +1,8 @@
+# Testcase with an SVE instruction with Z register usage
+# of a callee-saved register. Currently these are not handled
+# and the SCFI machinery must error out.
+ .arch armv8-a+sve
+ .type foo, %function
+foo:
+ st1d z8.d, p2, [sp, #1, mul vl]
+ .size foo, .-foo
diff --git a/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d b/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d
index 5962980..7c247e3 100644
--- a/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d
+++ b/gas/testsuite/gas/scfi/x86_64/scfi-cfi-sections-1.d
@@ -8,6 +8,7 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+ CFA fixed RA offset: \-8
Num FDEs: 1
Num FREs: 5
@@ -15,10 +16,10 @@ Contents of the SFrame section .sframe:
func idx \[0\]: pc = 0x0, size = 12 bytes
STARTPC + CFA + FP + RA +
- 0+0000 +sp\+8 +u +u +
- 0+0001 +sp\+16 +c\-16 +u +
- 0+0004 +fp\+16 +c-16 +u +
- 0+000a +sp\+16 +c\-16 +u +
- 0+000b +sp\+8 +u +u +
+ 0+0000 +sp\+8 +u +f +
+ 0+0001 +sp\+16 +c\-16 +f +
+ 0+0004 +fp\+16 +c-16 +f +
+ 0+000a +sp\+16 +c\-16 +f +
+ 0+000b +sp\+8 +u +f +
#pass
diff --git a/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d b/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d
index b51546a..c6a9b53 100644
--- a/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d
+++ b/gas/testsuite/gas/scfi/x86_64/scfi-dyn-stack-1.d
@@ -9,16 +9,17 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: NONE
+ CFA fixed RA offset: \-8
Num FDEs: 1
Num FREs: 4
Function Index :
func idx \[0\]: pc = 0x0, size = 87 bytes
- STARTPC + CFA + FP + RA
- 0+0000 + sp\+8 + u + u
- 0+0001 + sp\+16 + c-16 + u
- 0+0004 + fp\+16 + c-16 + u
- 0+0056 + sp\+8 + u + u
+ STARTPC + CFA + FP + RA +
+ 0+0000 + sp\+8 + u + f +
+ 0+0001 + sp\+16 + c-16 + f +
+ 0+0004 + fp\+16 + c-16 + f +
+ 0+0056 + sp\+8 + u + f +
#pass
diff --git a/gas/testsuite/gas/sparc/asi-arch-error.l b/gas/testsuite/gas/sparc/asi-arch-error.l
index d41881f..406a2c6 100644
--- a/gas/testsuite/gas/sparc/asi-arch-error.l
+++ b/gas/testsuite/gas/sparc/asi-arch-error.l
@@ -1,3 +1,3 @@
.*asi-arch-error.s: Assembler messages:
-.*asi-arch-error.s:3: Error: Architecture mismatch on "ldda \[%g0]#ASI_FL16_P,%f0".
+.*asi-arch-error.s:3: Error: Architecture mismatch on "ldda \[%g0] ?#ASI_FL16_P,%f0".
.*asi-arch-error.s:3: \(Requires v9b\|v9c\|v9d\|v9e\|v9v\|v9m.*; requested architecture is v9.\)
diff --git a/gas/testsuite/gas/tilepro/t_constants.s b/gas/testsuite/gas/tilepro/t_constants.s
index fc9e1db..2aca004 100644
--- a/gas/testsuite/gas/tilepro/t_constants.s
+++ b/gas/testsuite/gas/tilepro/t_constants.s
@@ -245,7 +245,7 @@ label_2:
.word -1311808516 - (272825489 - 19388681)
.int 19338670 + 260459768
-.macro .safe_word val
+.macro .safe_word val:vararg
.word (\val) & 0xffffffff
.endm
diff --git a/gdb/NEWS b/gdb/NEWS
index 47677cb..b56ba9b 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -224,6 +224,11 @@ qIsAddressTagged
file is about, this new packet provides a more generic way to perform such
a check.
+vFile:stat
+ Return information about files on the remote system. Like
+ vFile:fstat but takes a filename rather than an open file
+ descriptor.
+
*** Changes in GDB 14
* GDB now supports the AArch64 Scalable Matrix Extension 2 (SME2), which
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index 0126db5..dfcbb2b 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -1857,7 +1857,9 @@ write_var_or_type (struct parser_state *par_state,
}
}
- if (!have_full_symbols () && !have_partial_symbols () && block == NULL)
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space)
+ && block == NULL)
error (_("No symbol table is loaded. Use the \"file\" command."));
if (block == par_state->expression_context_block)
error (_("No definition of \"%s\" in current context."), name0.ptr);
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 46c2057..e2be7f9 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -13884,7 +13884,7 @@ static struct cmd_list_element *show_ada_list;
static void
ada_new_objfile_observer (struct objfile *objfile)
{
- ada_clear_symbol_cache (objfile->pspace);
+ ada_clear_symbol_cache (objfile->pspace ());
}
/* This module's 'free_objfile' observer. */
@@ -13892,7 +13892,7 @@ ada_new_objfile_observer (struct objfile *objfile)
static void
ada_free_objfile_observer (struct objfile *objfile)
{
- ada_clear_symbol_cache (objfile->pspace);
+ ada_clear_symbol_cache (objfile->pspace ());
}
/* Charsets known to GNAT. */
diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
index 83059d7..119b223 100644
--- a/gdb/ada-tasks.c
+++ b/gdb/ada-tasks.c
@@ -1495,7 +1495,7 @@ ada_tasks_clear_pspace_data (program_space *pspace)
static void
ada_tasks_new_objfile_observer (objfile *objfile)
{
- ada_tasks_clear_pspace_data (objfile->pspace);
+ ada_tasks_clear_pspace_data (objfile->pspace ());
}
/* The qcs command line flags for the "task apply" commands. Keep
diff --git a/gdb/annotate.c b/gdb/annotate.c
index 8818029..c1d4229 100644
--- a/gdb/annotate.c
+++ b/gdb/annotate.c
@@ -457,7 +457,7 @@ annotate_source_line (struct symtab *s, int line, int mid_statement,
/* Update the current symtab and line. */
symtab_and_line sal;
- sal.pspace = s->compunit ()->objfile ()->pspace;
+ sal.pspace = s->compunit ()->objfile ()->pspace ();
sal.symtab = s;
sal.line = line;
set_current_source_symtab_and_line (sal);
diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
index 9491107..4fc1ea1 100644
--- a/gdb/arc-tdep.c
+++ b/gdb/arc-tdep.c
@@ -861,7 +861,7 @@ arc_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funaddr,
struct regcache *regcache)
{
*real_pc = funaddr;
- *bp_addr = entry_point_address ();
+ *bp_addr = entry_point_address (current_program_space);
return sp;
}
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 83e2947..fb5634d 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -56,7 +56,7 @@ displaced_step_at_entry_point (struct gdbarch *gdbarch)
CORE_ADDR addr;
int bp_len;
- addr = entry_point_address ();
+ addr = entry_point_address (current_program_space);
/* Inferior calls also use the entry point as a breakpoint location.
We don't want displaced stepping to interfere with those
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index afc98eb..839be08 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -783,7 +783,7 @@ auto_load_objfile_script_1 (struct objfile *objfile, const char *realname,
/* Add this script to the hash table too so
"info auto-load ${lang}-scripts" can print it. */
pspace_info
- = get_auto_load_pspace_data_for_loading (objfile->pspace);
+ = get_auto_load_pspace_data_for_loading (objfile->pspace ());
maybe_add_script_file (pspace_info, is_safe, debugfile, debugfile,
language);
@@ -1048,7 +1048,7 @@ source_section_scripts (struct objfile *objfile, const char *section_name,
const char *start, const char *end)
{
auto_load_pspace_info *pspace_info
- = get_auto_load_pspace_data_for_loading (objfile->pspace);
+ = get_auto_load_pspace_data_for_loading (objfile->pspace ());
for (const char *p = start; p < end; ++p)
{
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index a973518..670a3f7 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -283,9 +283,6 @@ static bool strace_marker_p (struct breakpoint *b);
static void bkpt_probe_create_sals_from_location_spec
(location_spec *locspec,
struct linespec_result *canonical);
-static void tracepoint_probe_create_sals_from_location_spec
- (location_spec *locspec,
- struct linespec_result *canonical);
const struct breakpoint_ops code_breakpoint_ops =
{
@@ -300,10 +297,11 @@ static const struct breakpoint_ops bkpt_probe_breakpoint_ops =
create_breakpoints_sal,
};
-/* Tracepoints set on probes. */
+/* Tracepoints set on probes. We use the same methods as for breakpoints
+ on probes. */
static const struct breakpoint_ops tracepoint_probe_breakpoint_ops =
{
- tracepoint_probe_create_sals_from_location_spec,
+ bkpt_probe_create_sals_from_location_spec,
create_breakpoints_sal,
};
@@ -3710,7 +3708,7 @@ create_longjmp_master_breakpoint (void)
{
set_current_program_space (pspace);
- for (objfile *obj : current_program_space->objfiles ())
+ for (objfile *obj : pspace->objfiles ())
{
/* Skip separate debug object, it's handled in the loop below. */
if (obj->separate_debug_objfile_backlink != nullptr)
@@ -3743,7 +3741,7 @@ create_std_terminate_master_breakpoint (void)
{
set_current_program_space (pspace);
- for (objfile *objfile : current_program_space->objfiles ())
+ for (objfile *objfile : pspace->objfiles ())
{
struct breakpoint *b;
struct breakpoint_objfile_data *bp_objfile_data;
@@ -6592,7 +6590,7 @@ print_one_breakpoint_location (struct breakpoint *b,
}
}
- if (loc != NULL && !header_of_multiple)
+ if (loc != nullptr && !header_of_multiple && !loc->shlib_disabled)
{
std::vector<int> inf_nums;
int mi_only = 1;
@@ -8092,7 +8090,7 @@ disable_breakpoints_in_freed_objfile (struct objfile *objfile)
if (loc.shlib_disabled != 0)
continue;
- if (objfile->pspace != loc.pspace)
+ if (objfile->pspace () != loc.pspace)
continue;
if (loc.loc_type != bp_loc_hardware_breakpoint
@@ -8825,8 +8823,6 @@ static void
parse_breakpoint_sals (location_spec *locspec,
struct linespec_result *canonical)
{
- struct symtab_and_line cursal;
-
if (locspec->type () == LINESPEC_LOCATION_SPEC)
{
const char *spec
@@ -8875,7 +8871,8 @@ parse_breakpoint_sals (location_spec *locspec,
ObjC: However, don't match an Objective-C method name which
may have a '+' or '-' succeeded by a '['. */
- cursal = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
if (last_displayed_sal_is_valid ())
{
const char *spec = NULL;
@@ -12406,17 +12403,6 @@ tracepoint::print_recreate (struct ui_file *fp) const
gdb_printf (fp, " passcount %d\n", pass_count);
}
-/* Virtual table for tracepoints on static probes. */
-
-static void
-tracepoint_probe_create_sals_from_location_spec
- (location_spec *locspec,
- struct linespec_result *canonical)
-{
- /* We use the same method for breakpoint on probes. */
- bkpt_probe_create_sals_from_location_spec (locspec, canonical);
-}
-
void
dprintf_breakpoint::re_set ()
{
@@ -13215,17 +13201,6 @@ create_sals_from_location_spec_default (location_spec *locspec,
parse_breakpoint_sals (locspec, canonical);
}
-/* Reset a breakpoint. */
-
-static void
-breakpoint_re_set_one (breakpoint *b)
-{
- input_radix = b->input_radix;
- set_language (b->language);
-
- b->re_set ();
-}
-
/* Re-set breakpoint locations for the current program space.
Locations bound to other program spaces are left untouched. */
@@ -13237,12 +13212,11 @@ breakpoint_re_set (void)
scoped_restore save_input_radix = make_scoped_restore (&input_radix);
scoped_restore_current_pspace_and_thread restore_pspace_thread;
- /* breakpoint_re_set_one sets the current_language to the language
- of the breakpoint it is resetting (see prepare_re_set_context)
- before re-evaluating the breakpoint's location. This change can
- unfortunately get undone by accident if the language_mode is set
- to auto, and we either switch frames, or more likely in this context,
- we select the current frame.
+ /* To ::re_set each breakpoint we set the current_language to the
+ language of the breakpoint before re-evaluating the breakpoint's
+ location. This change can unfortunately get undone by accident if
+ the language_mode is set to auto, and we either switch frames, or
+ more likely in this context, we select the current frame.
We prevent this by temporarily turning the language_mode to
language_mode_manual. We restore it once all breakpoints
@@ -13259,7 +13233,9 @@ breakpoint_re_set (void)
{
try
{
- breakpoint_re_set_one (&b);
+ input_radix = b.input_radix;
+ set_language (b.language);
+ b.re_set ();
}
catch (const gdb_exception &ex)
{
diff --git a/gdb/build-id.c b/gdb/build-id.c
index 8ce94f1..32fbe17 100644
--- a/gdb/build-id.c
+++ b/gdb/build-id.c
@@ -73,50 +73,149 @@ build_id_verify (bfd *abfd, size_t check_len, const bfd_byte *check)
return retval;
}
-/* Helper for build_id_to_debug_bfd. LINK is a path to a potential
- build-id-based separate debug file, potentially a symlink to the real file.
- If the file exists and matches BUILD_ID, return a BFD reference to it. */
+/* Helper for build_id_to_debug_bfd. ORIGINAL_LINK with SUFFIX appended is
+ a path to a potential build-id-based separate debug file, potentially a
+ symlink to the real file. If the file exists and matches BUILD_ID,
+ return a BFD reference to it. */
static gdb_bfd_ref_ptr
-build_id_to_debug_bfd_1 (const std::string &link, size_t build_id_len,
- const bfd_byte *build_id)
+build_id_to_debug_bfd_1 (const std::string &original_link,
+ size_t build_id_len, const bfd_byte *build_id,
+ const char *suffix)
{
- separate_debug_file_debug_printf ("Trying %s...", link.c_str ());
-
- /* lrealpath() is expensive even for the usually non-existent files. */
- gdb::unique_xmalloc_ptr<char> filename_holder;
- const char *filename = nullptr;
- if (is_target_filename (link))
- filename = link.c_str ();
- else if (access (link.c_str (), F_OK) == 0)
+ tribool supports_target_stat = TRIBOOL_UNKNOWN;
+
+ /* Drop the 'target:' prefix if the target filesystem is local. */
+ std::string_view original_link_view (original_link);
+ if (is_target_filename (original_link) && target_filesystem_is_local ())
+ original_link_view
+ = original_link_view.substr (strlen (TARGET_SYSROOT_PREFIX));
+
+ /* The upper bound of '10' here is completely arbitrary. The loop should
+ terminate via 'break' when either (a) a readable symlink is found, or
+ (b) a non-existing entry is found.
+
+ However, for remote targets, we rely on the remote returning sane
+ error codes. If a remote sends back the wrong error code then it
+ might trick GDB into thinking that the symlink exists, but points to a
+ missing file, in which case GDB will try the next seqno. We don't
+ want a broken remote to cause GDB to spin here forever, hence a fixed
+ upper bound. */
+
+ for (unsigned seqno = 0; seqno < 10; seqno++)
{
- filename_holder.reset (lrealpath (link.c_str ()));
- filename = filename_holder.get ();
- }
+ std::string link (original_link_view);
- if (filename == NULL)
- {
- separate_debug_file_debug_printf ("unable to compute real path");
- return {};
- }
+ if (seqno > 0)
+ string_appendf (link, ".%u", seqno);
- /* We expect to be silent on the non-existing files. */
- gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename, gnutarget);
+ link += suffix;
- if (debug_bfd == NULL)
- {
- separate_debug_file_debug_printf ("unable to open.");
- return {};
- }
+ separate_debug_file_debug_printf ("Trying %s...", link.c_str ());
- if (!build_id_verify (debug_bfd.get(), build_id_len, build_id))
- {
- separate_debug_file_debug_printf ("build-id does not match.");
- return {};
+ gdb::unique_xmalloc_ptr<char> filename_holder;
+ const char *filename = nullptr;
+ if (is_target_filename (link))
+ {
+ gdb_assert (link.length () >= strlen (TARGET_SYSROOT_PREFIX));
+ const char *link_on_target
+ = link.c_str () + strlen (TARGET_SYSROOT_PREFIX);
+
+ fileio_error target_errno;
+ if (supports_target_stat != TRIBOOL_FALSE)
+ {
+ struct stat sb;
+ int res = target_fileio_stat (nullptr, link_on_target, &sb,
+ &target_errno);
+
+ if (res != 0 && target_errno != FILEIO_ENOSYS)
+ {
+ separate_debug_file_debug_printf ("path doesn't exist");
+ break;
+ }
+ else if (res != 0 && target_errno == FILEIO_ENOSYS)
+ supports_target_stat = TRIBOOL_FALSE;
+ else
+ {
+ supports_target_stat = TRIBOOL_TRUE;
+ filename = link.c_str ();
+ }
+ }
+
+ if (supports_target_stat == TRIBOOL_FALSE)
+ {
+ gdb_assert (filename == nullptr);
+
+ /* Connecting to a target that doesn't support 'stat'. Try
+ 'readlink' as an alternative. This isn't ideal, but is
+ maybe better than nothing. Returns EINVAL if the path
+ isn't a symbolic link, which hints that the path is
+ available -- there are other errors e.g. ENOENT for when
+ 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_errno);
+ if (link_target.has_value ()
+ || target_errno == FILEIO_EINVAL)
+ filename = link.c_str ();
+ else
+ {
+ separate_debug_file_debug_printf ("path doesn't exist");
+ break;
+ }
+ }
+ }
+ else
+ {
+ struct stat buf;
+
+ /* The `access' call below automatically dereferences LINK, but
+ we want to stop incrementing SEQNO once we find a symlink
+ that doesn't exist. */
+ if (lstat (link.c_str (), &buf) != 0)
+ {
+ separate_debug_file_debug_printf ("path doesn't exist");
+ break;
+ }
+
+ /* Can LINK be accessed, or if LINK is a symlink, can the file
+ pointed too be accessed? Do this as lrealpath() is
+ expensive, even for the usually non-existent files. */
+ if (access (link.c_str (), F_OK) == 0)
+ {
+ filename_holder.reset (lrealpath (link.c_str ()));
+ filename = filename_holder.get ();
+ }
+ }
+
+ if (filename == nullptr)
+ {
+ separate_debug_file_debug_printf ("unable to compute real path");
+ continue;
+ }
+
+ /* We expect to be silent on the non-existing files. */
+ gdb_bfd_ref_ptr debug_bfd = gdb_bfd_open (filename, gnutarget);
+
+ if (debug_bfd == NULL)
+ {
+ separate_debug_file_debug_printf ("unable to open `%s`", filename);
+ continue;
+ }
+
+ if (!build_id_verify (debug_bfd.get(), build_id_len, build_id))
+ {
+ separate_debug_file_debug_printf ("build-id does not match");
+ continue;
+ }
+
+ separate_debug_file_debug_printf ("found a match");
+ return debug_bfd;
}
- separate_debug_file_debug_printf ("found a match");
- return debug_bfd;
+ separate_debug_file_debug_printf ("no suitable file found");
+ return {};
}
/* Common code for finding BFDs of a given build-id. This function
@@ -156,10 +255,8 @@ build_id_to_bfd_suffix (size_t build_id_len, const bfd_byte *build_id,
while (size-- > 0)
string_appendf (link, "%02x", (unsigned) *data++);
- link += suffix;
-
gdb_bfd_ref_ptr debug_bfd
- = build_id_to_debug_bfd_1 (link, build_id_len, build_id);
+ = build_id_to_debug_bfd_1 (link, build_id_len, build_id, suffix);
if (debug_bfd != NULL)
return debug_bfd;
@@ -176,7 +273,8 @@ build_id_to_bfd_suffix (size_t build_id_len, const bfd_byte *build_id,
|| !target_filesystem_is_local ()))
{
link = gdb_sysroot + link;
- debug_bfd = build_id_to_debug_bfd_1 (link, build_id_len, build_id);
+ debug_bfd = build_id_to_debug_bfd_1 (link, build_id_len, build_id,
+ suffix);
if (debug_bfd != NULL)
return debug_bfd;
}
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index 6022317..a1a74a9 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -1213,7 +1213,8 @@ variable: name_not_typename
= lookup_bound_minimal_symbol (arg.c_str ());
if (msymbol.minsym == NULL)
{
- if (!have_full_symbols () && !have_partial_symbols ())
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
error (_("No symbol table is loaded. Use the \"file\" command."));
else
error (_("No symbol \"%s\" in current context."),
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 3af794c..92bb8fc 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -984,7 +984,7 @@ edit_command (const char *arg, int from_tty)
if (arg == 0)
{
set_default_source_symtab_and_line ();
- sal = get_current_source_symtab_and_line ();
+ sal = get_current_source_symtab_and_line (current_program_space);
}
/* Bare "edit" edits file with present line. */
@@ -1240,7 +1240,8 @@ list_command (const char *arg, int from_tty)
if (get_first_line_listed () == 0 && (arg == nullptr || arg[0] != '.'))
{
set_default_source_symtab_and_line ();
- list_around_line (arg, get_current_source_symtab_and_line ());
+ list_around_line
+ (arg, get_current_source_symtab_and_line (current_program_space));
}
/* "l" and "l +" lists the next few lines, unless we're listing past
@@ -1248,7 +1249,8 @@ list_command (const char *arg, int from_tty)
else if (arg == nullptr || arg[0] == '+')
{
set_default_source_symtab_and_line ();
- const symtab_and_line cursal = get_current_source_symtab_and_line ();
+ const symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
if (last_symtab_line (cursal.symtab) >= cursal.line)
print_source_lines (cursal.symtab,
source_lines_range (cursal.line), 0);
@@ -1262,7 +1264,8 @@ list_command (const char *arg, int from_tty)
else if (arg[0] == '-')
{
set_default_source_symtab_and_line ();
- const symtab_and_line cursal = get_current_source_symtab_and_line ();
+ const symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
if (get_first_line_listed () == 1)
error (_("Already at the start of %s."),
@@ -1295,7 +1298,7 @@ list_command (const char *arg, int from_tty)
{
/* The inferior is not running, so reset the current source
location to the default (usually the main function). */
- clear_current_source_symtab_and_line ();
+ clear_current_source_symtab_and_line (current_program_space);
try
{
set_default_source_symtab_and_line ();
@@ -1305,7 +1308,8 @@ list_command (const char *arg, int from_tty)
error (_("Insufficient debug info for showing source "
"lines at default location"));
}
- cursal = get_current_source_symtab_and_line ();
+ cursal
+ = get_current_source_symtab_and_line (current_program_space);
gdb_assert (cursal.symtab != nullptr);
}
@@ -1327,7 +1331,8 @@ list_command (const char *arg, int from_tty)
and clear NO_END; however, if one of the arguments is blank,
set DUMMY_BEG or DUMMY_END to record that fact. */
- if (!have_full_symbols () && !have_partial_symbols ())
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
error (_("No symbol table is loaded. Use the \"file\" command."));
std::vector<symtab_and_line> sals;
diff --git a/gdb/command.h b/gdb/command.h
index 615f4e5..0ceaf3e 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -876,7 +876,7 @@ extern void cmd_show_list (struct cmd_list_element *, int);
/* Used everywhere whenever at least one parameter is required and
none is specified. */
-extern void error_no_arg (const char *) ATTRIBUTE_NORETURN;
+[[noreturn]] extern void error_no_arg (const char *);
/* Command line saving and repetition.
diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
index 88531a2..8896b44 100644
--- a/gdb/compile/compile.c
+++ b/gdb/compile/compile.c
@@ -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 "progspace.h"
#include "ui.h"
#include "ui-out.h"
#include "command.h"
@@ -487,7 +488,8 @@ get_expr_block_and_pc (CORE_ADDR *pc)
if (block == NULL)
{
- struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
if (cursal.symtab)
block = cursal.symtab->compunit ()->blockvector ()->static_block ();
diff --git a/gdb/d-exp.y b/gdb/d-exp.y
index 13d2cfa..6feacd8 100644
--- a/gdb/d-exp.y
+++ b/gdb/d-exp.y
@@ -466,7 +466,8 @@ PrimaryExpression:
msymbol = lookup_bound_minimal_symbol (copy.c_str ());
if (msymbol.minsym != NULL)
pstate->push_new<var_msym_value_operation> (msymbol);
- else if (!have_full_symbols () && !have_partial_symbols ())
+ else if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
error (_("No symbol table is loaded. Use the \"file\" command"));
else
error (_("No symbol \"%s\" in current context."),
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 86cd420..c55913c 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -24534,6 +24534,10 @@ future connections is shown. The available settings are:
@tab @code{vFile:fstat}
@tab Host I/O
+@item @code{hostio-stat-packet}
+@tab @code{vFile:stat}
+@tab Host I/O
+
@item @code{hostio-setfs-packet}
@tab @code{vFile:setfs}
@tab Host I/O
@@ -46326,6 +46330,13 @@ 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}.
+@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
+returned binary attachment is as described in @ref{struct stat}.
+
@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.
diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c
index 5fea668..637c81f 100644
--- a/gdb/dwarf2/loc.c
+++ b/gdb/dwarf2/loc.c
@@ -2253,7 +2253,7 @@ dwarf2_get_symbol_read_needs (gdb::array_view<const gdb_byte> expr,
/* A helper function that throws an unimplemented error mentioning a
given DWARF operator. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
unimplemented (unsigned int op)
{
const char *name = get_DW_OP_name (op);
diff --git a/gdb/event-top.c b/gdb/event-top.c
index b81970d..cdc7874 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -894,7 +894,7 @@ unblock_signal (int sig)
/* Called to handle fatal signals. SIG is the signal number. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
handle_fatal_signal (int sig)
{
#ifdef TUI
diff --git a/gdb/frame.c b/gdb/frame.c
index 43efac0..e6ab547 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -2628,7 +2628,7 @@ inside_entry_func (const frame_info_ptr &this_frame)
{
CORE_ADDR entry_point;
- if (!entry_point_address_query (&entry_point))
+ if (!entry_point_address_query (current_program_space, &entry_point))
return false;
return get_frame_func (this_frame) == entry_point;
diff --git a/gdb/gdb-gdb.py.in b/gdb/gdb-gdb.py.in
index b5a7fa4..7cab694 100644
--- a/gdb/gdb-gdb.py.in
+++ b/gdb/gdb-gdb.py.in
@@ -342,7 +342,7 @@ class IntrusiveListPrinter:
corresponding intrusive_list_node.
"""
- assert elem_ptr.type.code == gdb.TYPE_CODE_PTR
+ assert elem_ptr.type.strip_typedefs().code == gdb.TYPE_CODE_PTR
if self._uses_member_node():
# Node as a member: add the member node offset from to the element's
diff --git a/gdb/go-exp.y b/gdb/go-exp.y
index 1a6ebbe..115c71b 100644
--- a/gdb/go-exp.y
+++ b/gdb/go-exp.y
@@ -577,8 +577,8 @@ variable: name_not_typename
if (msymbol.minsym != NULL)
pstate->push_new<var_msym_value_operation>
(msymbol);
- else if (!have_full_symbols ()
- && !have_partial_symbols ())
+ else if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
error (_("No symbol table is loaded. "
"Use the \"file\" command."));
else
diff --git a/gdb/guile/guile-internal.h b/gdb/guile/guile-internal.h
index be16fee..dea7884 100644
--- a/gdb/guile/guile-internal.h
+++ b/gdb/guile/guile-internal.h
@@ -326,32 +326,32 @@ extern SCM gdbscm_make_type_error (const char *subr, int arg_pos,
extern SCM gdbscm_make_invalid_object_error (const char *subr, int arg_pos,
SCM bad_value, const char *error);
-extern void gdbscm_invalid_object_error (const char *subr, int arg_pos,
- SCM bad_value, const char *error)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void gdbscm_invalid_object_error (const char *subr,
+ int arg_pos,
+ SCM bad_value,
+ const char *error);
extern SCM gdbscm_make_out_of_range_error (const char *subr, int arg_pos,
SCM bad_value, const char *error);
-extern void gdbscm_out_of_range_error (const char *subr, int arg_pos,
- SCM bad_value, const char *error)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void gdbscm_out_of_range_error (const char *subr,
+ int arg_pos, SCM bad_value,
+ const char *error);
extern SCM gdbscm_make_misc_error (const char *subr, int arg_pos,
SCM bad_value, const char *error);
-extern void gdbscm_misc_error (const char *subr, int arg_pos,
- SCM bad_value, const char *error)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void gdbscm_misc_error (const char *subr, int arg_pos,
+ SCM bad_value, const char *error);
-extern void gdbscm_throw (SCM exception) ATTRIBUTE_NORETURN;
+[[noreturn]] extern void gdbscm_throw (SCM exception);
struct gdbscm_gdb_exception;
extern SCM gdbscm_scm_from_gdb_exception
(const gdbscm_gdb_exception &exception);
-extern void gdbscm_throw_gdb_exception (gdbscm_gdb_exception exception)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void gdbscm_throw_gdb_exception
+ (gdbscm_gdb_exception exception);
extern void gdbscm_print_exception_with_stack (SCM port, SCM stack,
SCM key, SCM args);
@@ -368,8 +368,8 @@ extern excp_matcher_func gdbscm_user_error_p;
extern SCM gdbscm_make_memory_error (const char *subr, const char *msg,
SCM args);
-extern void gdbscm_memory_error (const char *subr, const char *msg, SCM args)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void gdbscm_memory_error (const char *subr,
+ const char *msg, SCM args);
/* scm-safe-call.c */
diff --git a/gdb/guile/scm-objfile.c b/gdb/guile/scm-objfile.c
index bccf6ba..d6c0559 100644
--- a/gdb/guile/scm-objfile.c
+++ b/gdb/guile/scm-objfile.c
@@ -250,7 +250,7 @@ gdbscm_objfile_progspace (SCM self)
objfile_smob *o_smob
= ofscm_get_valid_objfile_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
- return psscm_scm_from_pspace (o_smob->objfile->pspace);
+ return psscm_scm_from_pspace (o_smob->objfile->pspace ());
}
/* (objfile-pretty-printers <gdb:objfile>) -> list
diff --git a/gdb/inf-child.c b/gdb/inf-child.c
index 1318d6b..df993b6 100644
--- a/gdb/inf-child.c
+++ b/gdb/inf-child.c
@@ -320,6 +320,21 @@ inf_child_target::fileio_fstat (int fd, struct stat *sb, fileio_error *target_er
return ret;
}
+/* Implementation of to_fileio_stat. */
+
+int
+inf_child_target::fileio_stat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno)
+{
+ int ret;
+
+ ret = lstat (filename, sb);
+ if (ret == -1)
+ *target_errno = host_to_fileio_error (errno);
+
+ return ret;
+}
+
/* Implementation of to_fileio_close. */
int
diff --git a/gdb/inf-child.h b/gdb/inf-child.h
index 91955a6..65d42e1 100644
--- a/gdb/inf-child.h
+++ b/gdb/inf-child.h
@@ -81,6 +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_close (int fd, fileio_error *target_errno) override;
int fileio_unlink (struct inferior *inf,
const char *filename,
diff --git a/gdb/infcall.c b/gdb/infcall.c
index edac9a7..559fcb7 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -1271,7 +1271,7 @@ call_function_by_hand_dummy (struct value *function,
CORE_ADDR dummy_addr;
real_pc = funaddr;
- dummy_addr = entry_point_address ();
+ dummy_addr = entry_point_address (current_program_space);
/* A call dummy always consists of just a single breakpoint, so
its address is the same as the address of the dummy.
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 71514d5..a030788 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -383,7 +383,7 @@ run_command_1 (const char *args, int from_tty, enum run_how run_how)
/* Clean up any leftovers from other runs. Some other things from
this function should probably be moved into target_pre_inferior. */
- target_pre_inferior (from_tty);
+ target_pre_inferior ();
/* The comment here used to read, "The exec file is re-read every
time we do a generic_mourn_inferior, so we just have to worry
@@ -519,7 +519,7 @@ 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 ())
+ if (!have_minimal_symbols (current_program_space))
error (_("No symbol table loaded. Use the \"file\" command."));
/* Run the program until reaching the main procedure... */
@@ -1078,7 +1078,8 @@ jump_command (const char *arg, int from_tty)
{
/* If multiple sal-objects were found, try dropping those that aren't
from the current symtab. */
- struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
sals.erase (std::remove_if (sals.begin (), sals.end (),
[&] (const symtab_and_line &sal)
{
@@ -2628,7 +2629,7 @@ attach_command (const char *args, int from_tty)
/* Clean up any leftovers from other runs. Some other things from
this function should probably be moved into target_pre_inferior. */
- target_pre_inferior (from_tty);
+ target_pre_inferior ();
gdb::unique_xmalloc_ptr<char> stripped = strip_bg_char (args, &async_exec);
args = stripped.get ();
@@ -2827,7 +2828,7 @@ detach_command (const char *args, int from_tty)
/* If the solist is global across inferiors, don't clear it when we
detach from a single inferior. */
if (!gdbarch_has_global_solist (inf->arch ()))
- no_shared_libraries (nullptr, from_tty);
+ no_shared_libraries (inf->pspace);
if (deprecated_detach_hook)
deprecated_detach_hook ();
@@ -2853,7 +2854,7 @@ disconnect_command (const char *args, int from_tty)
query_if_trace_running (from_tty);
disconnect_tracing ();
target_disconnect (args, from_tty);
- no_shared_libraries (nullptr, from_tty);
+ no_shared_libraries (current_program_space);
init_thread_list ();
update_previous_thread ();
if (deprecated_detach_hook)
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 1f32a63..06b454b 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -1317,7 +1317,7 @@ follow_exec (ptid_t ptid, const char *exec_file_target)
/* Also, loading a symbol file below may trigger symbol lookups, and
we don't want those to be satisfied by the libraries of the
previous incarnation of this process. */
- no_shared_libraries (nullptr, 0);
+ no_shared_libraries (current_program_space);
inferior *execing_inferior = current_inferior ();
inferior *following_inferior;
diff --git a/gdb/jit.c b/gdb/jit.c
index 797be95..2744d03 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -660,8 +660,8 @@ jit_object_close_impl (struct gdb_symbol_callbacks *cb,
paddress (priv_data->gdbarch,
priv_data->entry.symfile_addr));
- objfile *objfile = objfile::make (nullptr, objfile_name.c_str (),
- OBJF_NOT_FILENAME);
+ objfile *objfile = objfile::make (nullptr, current_program_space,
+ objfile_name.c_str (), OBJF_NOT_FILENAME);
objfile->per_bfd->gdbarch = priv_data->gdbarch;
for (gdb_symtab &symtab : obj->symtabs)
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 7a1fbc2..9b0652c 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -1156,7 +1156,7 @@ iterate_over_all_matching_symtabs
set_current_program_space (pspace);
- for (objfile *objfile : current_program_space->objfiles ())
+ for (objfile *objfile : pspace->objfiles ())
{
objfile->expand_symtabs_matching (NULL, &lookup_name, NULL, NULL,
(SEARCH_GLOBAL_BLOCK
@@ -1544,15 +1544,15 @@ decode_line_2 (struct linespec_state *self,
/* Throw an appropriate error when SYMBOL is not found (optionally in
FILENAME). */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
symbol_not_found_error (const char *symbol, const char *filename)
{
if (symbol == NULL)
symbol = "";
- if (!have_full_symbols ()
- && !have_partial_symbols ()
- && !have_minimal_symbols ())
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space)
+ && !have_minimal_symbols (current_program_space))
throw_error (NOT_FOUND_ERROR,
_("No symbol table is loaded. Use the \"file\" command."));
@@ -1586,7 +1586,7 @@ symbol_not_found_error (const char *symbol, const char *filename)
/* Throw an appropriate error when an unexpected token is encountered
in the input. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
unexpected_linespec_error (linespec_parser *parser)
{
linespec_token token;
@@ -1613,7 +1613,7 @@ unexpected_linespec_error (linespec_parser *parser)
/* Throw an undefined label error. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
undefined_label_error (const char *function, const char *label)
{
if (function != NULL)
@@ -1628,7 +1628,7 @@ undefined_label_error (const char *function, const char *label)
/* Throw a source file not found error. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
source_file_not_found_error (const char *name)
{
throw_error (NOT_FOUND_ERROR, _("No source file named %s."), name);
@@ -2172,7 +2172,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls)
for (const auto &sym : ls->labels.label_symbols)
{
struct program_space *pspace
- = sym.symbol->symtab ()->compunit ()->objfile ()->pspace;
+ = sym.symbol->symtab ()->compunit ()->objfile ()->pspace ();
if (symbol_to_sal (&sal, state->funfirstline, sym.symbol)
&& maybe_add_address (state->addr_set, pspace, sal.pc))
@@ -2194,7 +2194,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls)
for (const auto &sym : ls->function_symbols)
{
program_space *pspace
- = sym.symbol->symtab ()->compunit ()->objfile ()->pspace;
+ = sym.symbol->symtab ()->compunit ()->objfile ()->pspace ();
set_current_program_space (pspace);
/* Don't skip to the first line of the function if we
@@ -2256,7 +2256,7 @@ convert_linespec_to_sals (struct linespec_state *state, linespec *ls)
for (const auto &elem : ls->minimal_symbols)
{
- program_space *pspace = elem.objfile->pspace;
+ program_space *pspace = elem.objfile->pspace ();
set_current_program_space (pspace);
minsym_found (state, elem.objfile, elem.minsym, &sals);
}
@@ -3205,7 +3205,8 @@ decode_line_with_current_source (const char *string, int flags)
/* We use whatever is set as the current source line. We do not try
and get a default source symtab+line or it will recursively call us! */
- symtab_and_line cursal = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
location_spec_up locspec = string_to_location_spec (&string,
current_language);
@@ -3255,9 +3256,9 @@ initialize_defaults (struct symtab **default_symtab, int *default_line)
/* Use whatever we have for the default source line. We don't use
get_current_or_default_symtab_and_line as it can recurse and call
us back! */
- struct symtab_and_line cursal =
- get_current_source_symtab_and_line ();
-
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
+
*default_symtab = cursal.symtab;
*default_line = cursal.line;
}
@@ -3437,7 +3438,7 @@ lookup_prefix_sym (struct linespec_state *state,
{
/* Program spaces that are executing startup should have
been filtered out earlier. */
- program_space *pspace = elt->compunit ()->objfile ()->pspace;
+ program_space *pspace = elt->compunit ()->objfile ()->pspace ();
gdb_assert (!pspace->executing_startup);
set_current_program_space (pspace);
@@ -3459,8 +3460,8 @@ compare_symbols (const block_symbol &a, const block_symbol &b)
{
uintptr_t uia, uib;
- uia = (uintptr_t) a.symbol->symtab ()->compunit ()->objfile ()->pspace;
- uib = (uintptr_t) b.symbol->symtab ()->compunit ()->objfile ()->pspace;
+ uia = (uintptr_t) a.symbol->symtab ()->compunit ()->objfile ()->pspace ();
+ uib = (uintptr_t) b.symbol->symtab ()->compunit ()->objfile ()->pspace ();
if (uia < uib)
return true;
@@ -3483,8 +3484,8 @@ 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;
+ uia = (uintptr_t) a.objfile->pspace ();
+ uib = (uintptr_t) a.objfile->pspace ();
if (uia < uib)
return true;
@@ -3584,7 +3585,7 @@ find_method (struct linespec_state *self,
/* Program spaces that are executing startup should have
been filtered out earlier. */
- pspace = sym->symtab ()->compunit ()->objfile ()->pspace;
+ pspace = sym->symtab ()->compunit ()->objfile ()->pspace ();
gdb_assert (!pspace->executing_startup);
set_current_program_space (pspace);
t = check_typedef (sym->type ());
@@ -3596,7 +3597,7 @@ find_method (struct linespec_state *self,
if (ix == sym_classes->size () - 1
|| (pspace
!= (sym_classes->at (ix + 1).symbol->symtab ()
- ->compunit ()->objfile ()->pspace)))
+ ->compunit ()->objfile ()->pspace ())))
{
/* If we did not find a direct implementation anywhere in
this program space, consider superclasses. */
@@ -3716,7 +3717,8 @@ symtabs_from_filename (const char *filename,
if (result.empty ())
{
- if (!have_full_symbols () && !have_partial_symbols ())
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
throw_error (NOT_FOUND_ERROR,
_("No symbol table is loaded. "
"Use the \"file\" command."));
@@ -3963,7 +3965,7 @@ find_label_symbols (struct linespec_state *self,
{
fn_sym = elt.symbol;
set_current_program_space
- (fn_sym->symtab ()->compunit ()->objfile ()->pspace);
+ (fn_sym->symtab ()->compunit ()->objfile ()->pspace ());
block = fn_sym->value_block ();
find_label_symbols_in_block (block, name, fn_sym, completion_mode,
@@ -3992,7 +3994,7 @@ decode_digits_list_mode (struct linespec_state *self,
/* The logic above should ensure this. */
gdb_assert (elt != NULL);
- program_space *pspace = elt->compunit ()->objfile ()->pspace;
+ program_space *pspace = elt->compunit ()->objfile ()->pspace ();
set_current_program_space (pspace);
/* Simplistic search just for the list command. */
@@ -4027,7 +4029,7 @@ decode_digits_ordinary (struct linespec_state *self,
/* The logic above should ensure this. */
gdb_assert (elt != NULL);
- program_space *pspace = elt->compunit ()->objfile ()->pspace;
+ program_space *pspace = elt->compunit ()->objfile ()->pspace ();
set_current_program_space (pspace);
pcs = find_pcs_for_symtab_line (elt, line, best_entry);
@@ -4153,7 +4155,7 @@ minsym_found (struct linespec_state *self, struct objfile *objfile,
sal.section = msymbol->obj_section (objfile);
- if (maybe_add_address (self->addr_set, objfile->pspace, sal.pc))
+ if (maybe_add_address (self->addr_set, objfile->pspace (), sal.pc))
add_sal_to_sals (self, result, &sal, msymbol->natural_name (), 0);
}
@@ -4213,7 +4215,7 @@ search_minsyms_for_name (struct collect_info *info,
set_current_program_space (pspace);
- for (objfile *objfile : current_program_space->objfiles ())
+ for (objfile *objfile : pspace->objfiles ())
{
iterate_over_minimal_symbols (objfile, name,
[&] (struct minimal_symbol *msym)
@@ -4228,7 +4230,7 @@ search_minsyms_for_name (struct collect_info *info,
}
else
{
- program_space *pspace = symtab->compunit ()->objfile ()->pspace;
+ program_space *pspace = symtab->compunit ()->objfile ()->pspace ();
if (search_pspace == NULL || pspace == search_pspace)
{
@@ -4322,13 +4324,13 @@ add_matching_symbols_to_info (const char *name,
{ return info->add_symbol (bsym); });
search_minsyms_for_name (info, lookup_name, pspace, NULL);
}
- else if (pspace == NULL || pspace == elt->compunit ()->objfile ()->pspace)
+ else if (pspace == NULL || pspace == elt->compunit ()->objfile ()->pspace ())
{
int prev_len = info->result.symbols->size ();
/* Program spaces that are executing startup should have
been filtered out earlier. */
- program_space *elt_pspace = elt->compunit ()->objfile ()->pspace;
+ program_space *elt_pspace = elt->compunit ()->objfile ()->pspace ();
gdb_assert (!elt_pspace->executing_startup);
set_current_program_space (elt_pspace);
iterate_over_file_blocks (elt, lookup_name, SEARCH_VFT,
@@ -4369,7 +4371,7 @@ symbol_to_sal (struct symtab_and_line *result,
result->symbol = sym;
result->line = sym->line ();
result->pc = sym->value_address ();
- result->pspace = result->symtab->compunit ()->objfile ()->pspace;
+ result->pspace = result->symtab->compunit ()->objfile ()->pspace ();
result->explicit_pc = 1;
return 1;
}
@@ -4385,7 +4387,7 @@ symbol_to_sal (struct symtab_and_line *result,
result->symbol = sym;
result->line = sym->line ();
result->pc = sym->value_address ();
- result->pspace = result->symtab->compunit ()->objfile ()->pspace;
+ result->pspace = result->symtab->compunit ()->objfile ()->pspace ();
return 1;
}
}
diff --git a/gdb/macroscope.c b/gdb/macroscope.c
index 4c1304f..c1b2238 100644
--- a/gdb/macroscope.c
+++ b/gdb/macroscope.c
@@ -121,9 +121,9 @@ default_macro_scope (void)
symbol files loaded, then get_current_or_default would raise an
error. But `set width' shouldn't raise an error just because
it can't decide which scope to macro-expand its argument in. */
- struct symtab_and_line cursal
- = get_current_source_symtab_and_line ();
-
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
+
sal.symtab = cursal.symtab;
sal.line = cursal.line;
}
diff --git a/gdb/mi/mi-cmd-file.c b/gdb/mi/mi-cmd-file.c
index 3e2702e..f2fe435 100644
--- a/gdb/mi/mi-cmd-file.c
+++ b/gdb/mi/mi-cmd-file.c
@@ -35,7 +35,6 @@ void
mi_cmd_file_list_exec_source_file (const char *command,
const char *const *argv, int argc)
{
- struct symtab_and_line st;
struct ui_out *uiout = current_uiout;
if (!mi_valid_noargs ("-file-list-exec-source-file", argc, argv))
@@ -43,7 +42,8 @@ mi_cmd_file_list_exec_source_file (const char *command,
/* Set the default file and line, also get them. */
set_default_source_symtab_and_line ();
- st = get_current_source_symtab_and_line ();
+ symtab_and_line st
+ = get_current_source_symtab_and_line (current_program_space);
/* We should always get a symtab. Apparently, filename does not
need to be tested for NULL. The documentation in symtab.h
diff --git a/gdb/nat/aarch64-mte-linux-ptrace.c b/gdb/nat/aarch64-mte-linux-ptrace.c
index ace3e18..9e2a2ce 100644
--- a/gdb/nat/aarch64-mte-linux-ptrace.c
+++ b/gdb/nat/aarch64-mte-linux-ptrace.c
@@ -31,7 +31,7 @@
/* Helper function to display various possible errors when reading
MTE tags. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
aarch64_mte_linux_peek_error (int error)
{
switch (error)
@@ -53,7 +53,7 @@ aarch64_mte_linux_peek_error (int error)
/* Helper function to display various possible errors when writing
MTE tags. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
aarch64_mte_linux_poke_error (int error)
{
switch (error)
diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h
index f3e2f54..0fd4218 100644
--- a/gdb/nat/fork-inferior.h
+++ b/gdb/nat/fork-inferior.h
@@ -84,13 +84,12 @@ extern void gdb_flush_out_err ();
/* Report an error that happened when starting to trace the inferior
(i.e., when the "traceme_fun" callback is called on fork_inferior)
and bail out. This function does not return. */
-extern void trace_start_error (const char *fmt, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
+[[noreturn]] extern void trace_start_error (const char *fmt, ...)
+ ATTRIBUTE_PRINTF (1, 2);
/* Like "trace_start_error", but the error message is constructed by
combining STRING with the system error message for errno. This
function does not return. */
-extern void trace_start_error_with_name (const char *string)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void trace_start_error_with_name (const char *string);
#endif /* NAT_FORK_INFERIOR_H */
diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c
index 36a245c..9abd3d6 100644
--- a/gdb/nat/linux-namespaces.c
+++ b/gdb/nat/linux-namespaces.c
@@ -548,7 +548,7 @@ mnsh_handle_readlink (int sock, const char *filename)
/* The helper process. Never returns. Must be async-signal-safe. */
-static void mnsh_main (int sock) ATTRIBUTE_NORETURN;
+[[noreturn]] static void mnsh_main (int sock);
static void
mnsh_main (int sock)
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 368e129..0e076fe 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -306,9 +306,10 @@ build_objfile_section_table (struct objfile *objfile)
requests for specific operations. Other bits like OBJF_SHARED are
simply copied through to the new objfile flags member. */
-objfile::objfile (gdb_bfd_ref_ptr bfd_, const char *name, objfile_flags flags_)
+objfile::objfile (gdb_bfd_ref_ptr bfd_, program_space *pspace,
+ const char *name, objfile_flags flags_)
: flags (flags_),
- pspace (current_program_space),
+ m_pspace (pspace),
obfd (std::move (bfd_))
{
const char *expanded_name;
@@ -345,13 +346,12 @@ objfile::objfile (gdb_bfd_ref_ptr bfd_, const char *name, objfile_flags flags_)
set_objfile_per_bfd (this);
}
-/* If there is a valid and known entry point, function fills *ENTRY_P with it
- and returns non-zero; otherwise it returns zero. */
+/* See objfiles.h. */
int
-entry_point_address_query (CORE_ADDR *entry_p)
+entry_point_address_query (program_space *pspace, CORE_ADDR *entry_p)
{
- objfile *objf = current_program_space->symfile_object_file;
+ objfile *objf = pspace->symfile_object_file;
if (objf == NULL || !objf->per_bfd->ei.entry_point_p)
return 0;
@@ -361,14 +361,14 @@ entry_point_address_query (CORE_ADDR *entry_p)
return 1;
}
-/* Get current entry point address. Call error if it is not known. */
+/* See objfiles.h. */
CORE_ADDR
-entry_point_address (void)
+entry_point_address (program_space *pspace)
{
CORE_ADDR retval;
- if (!entry_point_address_query (&retval))
+ if (!entry_point_address_query (pspace, &retval))
error (_("Entry point address is not known."));
return retval;
@@ -442,10 +442,11 @@ add_separate_debug_objfile (struct objfile *objfile, struct objfile *parent)
/* See objfiles.h. */
objfile *
-objfile::make (gdb_bfd_ref_ptr bfd_, const char *name_, objfile_flags flags_,
- objfile *parent)
+objfile::make (gdb_bfd_ref_ptr bfd_, program_space *pspace, const char *name_,
+ objfile_flags flags_, objfile *parent)
{
- objfile *result = new objfile (std::move (bfd_), name_, flags_);
+ objfile *result
+ = new objfile (std::move (bfd_), current_program_space, name_, flags_);
if (parent != nullptr)
add_separate_debug_objfile (result, parent);
@@ -463,7 +464,7 @@ objfile::make (gdb_bfd_ref_ptr bfd_, const char *name_, objfile_flags flags_,
void
objfile::unlink ()
{
- current_program_space->remove_objfile (this);
+ this->pspace ()->remove_objfile (this);
}
/* Free all separate debug objfile of OBJFILE, but don't free OBJFILE
@@ -561,14 +562,15 @@ objfile::~objfile ()
and if so, call clear_current_source_symtab_and_line. */
{
- struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (this->pspace ());
if (cursal.symtab && cursal.symtab->compunit ()->objfile () == this)
- clear_current_source_symtab_and_line ();
+ clear_current_source_symtab_and_line (this->pspace ());
}
/* Rebuild section map next time we need it. */
- get_objfile_pspace_data (pspace)->section_map_dirty = 1;
+ get_objfile_pspace_data (m_pspace)->section_map_dirty = 1;
}
@@ -646,7 +648,7 @@ objfile_relocate1 (struct objfile *objfile,
objfile->section_offsets[i] = new_offsets[i];
/* Rebuild section map next time we need it. */
- get_objfile_pspace_data (objfile->pspace)->section_map_dirty = 1;
+ get_objfile_pspace_data (objfile->pspace ())->section_map_dirty = 1;
/* Update the table in exec_ops, used to read memory. */
for (obj_section *s : objfile->sections ())
@@ -731,67 +733,58 @@ objfile_rebase (struct objfile *objfile, CORE_ADDR slide)
if (changed)
breakpoint_re_set ();
}
-
-/* Return non-zero if OBJFILE has full symbols. */
-int
-objfile_has_full_symbols (struct objfile *objfile)
+/* See objfiles.h. */
+
+bool
+objfile_has_full_symbols (objfile *objfile)
{
- return objfile->compunit_symtabs != NULL;
+ return objfile->compunit_symtabs != nullptr;
}
-/* Return non-zero if OBJFILE has full or partial symbols, either directly
- or through a separate debug file. */
+/* See objfiles.h. */
-int
-objfile_has_symbols (struct objfile *objfile)
+bool
+objfile_has_symbols (objfile *objfile)
{
for (::objfile *o : objfile->separate_debug_objfiles ())
if (o->has_partial_symbols () || objfile_has_full_symbols (o))
- return 1;
- return 0;
-}
+ return true;
+ return false;
+}
-/* Many places in gdb want to test just to see if we have any partial
- symbols available. This function returns zero if none are currently
- available, nonzero otherwise. */
+/* See objfiles.h. */
-int
-have_partial_symbols (void)
+bool
+have_partial_symbols (program_space *pspace)
{
- for (objfile *ofp : current_program_space->objfiles ())
- {
- if (ofp->has_partial_symbols ())
- return 1;
- }
- return 0;
+ for (objfile *ofp : pspace->objfiles ())
+ if (ofp->has_partial_symbols ())
+ return true;
+
+ return false;
}
-/* Many places in gdb want to test just to see if we have any full
- symbols available. This function returns zero if none are currently
- available, nonzero otherwise. */
+/* See objfiles.h. */
-int
-have_full_symbols (void)
+bool
+have_full_symbols (program_space *pspace)
{
- for (objfile *ofp : current_program_space->objfiles ())
- {
- if (objfile_has_full_symbols (ofp))
- return 1;
- }
- return 0;
+ for (objfile *ofp : pspace->objfiles ())
+ if (objfile_has_full_symbols (ofp))
+ return true;
+
+ return false;
}
-/* This operations deletes all objfile entries that represent solibs that
- weren't explicitly loaded by the user, via e.g., the add-symbol-file
- command. */
+/* See objfiles.h. */
void
-objfile_purge_solibs (void)
+objfile_purge_solibs (program_space *pspace)
{
- for (objfile *objf : current_program_space->objfiles_safe ())
+ for (objfile *objf : pspace->objfiles_safe ())
{
/* We assume that the solib package has been purged already, or will
be soon. */
@@ -801,22 +794,16 @@ objfile_purge_solibs (void)
}
}
+/* See objfiles.h. */
-/* Many places in gdb want to test just to see if we have any minimal
- symbols available. This function returns zero if none are currently
- available, nonzero otherwise. */
-
-int
-have_minimal_symbols (void)
+bool
+have_minimal_symbols (program_space *pspace)
{
- for (objfile *ofp : current_program_space->objfiles ())
- {
- if (ofp->per_bfd->minimal_symbol_count > 0)
- {
- return 1;
- }
- }
- return 0;
+ for (objfile *ofp : pspace->objfiles ())
+ if (ofp->per_bfd->minimal_symbol_count > 0)
+ return true;
+
+ return false;
}
/* Qsort comparison function. */
@@ -1177,16 +1164,14 @@ pc_in_section (CORE_ADDR pc, const char *name)
&& s->the_bfd_section->name != nullptr
&& strcmp (s->the_bfd_section->name, name) == 0);
}
-
-/* Set section_map_dirty so section map will be rebuilt next time it
- is used. Called by reread_symbols. */
+/* See objfiles.h. */
void
-objfiles_changed (void)
+objfiles_changed (program_space *pspace)
{
/* Rebuild section map next time we need it. */
- get_objfile_pspace_data (current_program_space)->section_map_dirty = 1;
+ get_objfile_pspace_data (pspace)->section_map_dirty = 1;
}
/* See comments in objfiles.h. */
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 88dfb33..50bd6f8 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -423,7 +423,8 @@ struct objfile
private:
/* The only way to create an objfile is to call objfile::make. */
- objfile (gdb_bfd_ref_ptr, const char *, objfile_flags);
+ objfile (gdb_bfd_ref_ptr, program_space *pspace, const char *,
+ objfile_flags);
public:
@@ -436,15 +437,19 @@ public:
~objfile ();
/* Create an objfile. */
- static objfile *make (gdb_bfd_ref_ptr bfd_, const char *name_,
- objfile_flags flags_, objfile *parent = nullptr);
+ static objfile *make (gdb_bfd_ref_ptr bfd_, program_space *pspace,
+ const char *name_, objfile_flags flags_,
+ objfile *parent = nullptr);
- /* Remove an objfile from the current program space, and free
+ /* Remove this objfile from its program space's objfile list, and frees
it. */
void unlink ();
DISABLE_COPY_AND_ASSIGN (objfile);
+ /* Return the program space associated with this objfile. */
+ program_space *pspace () { return m_pspace; }
+
/* A range adapter that makes it possible to iterate over all
compunits in one objfile. */
@@ -716,10 +721,12 @@ public:
objfile_flags flags;
+private:
/* The program space associated with this objfile. */
- struct program_space *pspace;
+ program_space *m_pspace;
+public:
/* List of compunits.
These are used to do symbol lookups and file/line-number lookups. */
@@ -907,9 +914,15 @@ obj_section::set_offset (CORE_ADDR offset)
/* Declarations for functions defined in objfiles.c */
-extern int entry_point_address_query (CORE_ADDR *entry_p);
+/* If there is a valid and known entry point in PSPACE, fill *ENTRY_P with it
+ and return non-zero. */
-extern CORE_ADDR entry_point_address (void);
+extern int entry_point_address_query (program_space *pspace,
+ CORE_ADDR *entry_p);
+
+/* Get the entry point address in PSPACE. Call error if it is not known. */
+
+extern CORE_ADDR entry_point_address (program_space *pspace);
extern void build_objfile_section_table (struct objfile *);
@@ -918,18 +931,30 @@ 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);
-extern int objfile_has_full_symbols (struct objfile *objfile);
+/* Return true if OBJFILE has full symbols. */
+
+extern bool objfile_has_full_symbols (objfile *objfile);
-extern int objfile_has_symbols (struct objfile *objfile);
+/* Return true if OBJFILE has full or partial symbols, either directly
+ or through a separate debug file. */
-extern int have_partial_symbols (void);
+extern bool objfile_has_symbols (objfile *objfile);
-extern int have_full_symbols (void);
+/* Return true if any objfile of PSPACE has partial symbols. */
+
+extern bool have_partial_symbols (program_space *pspace);
+
+/* Return true if any objfile of PSPACE has full symbols. */
+
+extern bool have_full_symbols (program_space *pspace);
extern void objfile_set_sym_fns (struct objfile *objfile,
const struct sym_fns *sf);
-extern void objfiles_changed (void);
+/* Set section_map_dirty for PSPACE so the section map will be rebuilt next time
+ it is used. */
+
+extern void objfiles_changed (program_space *pspace);
/* Return true if ADDR maps into one of the sections of OBJFILE and false
otherwise. */
@@ -942,16 +967,18 @@ extern bool is_addr_in_objfile (CORE_ADDR addr, const struct objfile *objfile);
extern bool shared_objfile_contains_address_p (struct program_space *pspace,
CORE_ADDR address);
-/* This operation deletes all objfile entries that represent solibs that
- weren't explicitly loaded by the user, via e.g., the add-symbol-file
+/* This operation deletes all objfile entries in PSPACE that represent solibs
+ that weren't explicitly loaded by the user, via e.g., the add-symbol-file
command. */
-extern void objfile_purge_solibs (void);
+extern void objfile_purge_solibs (program_space *pspace);
/* Functions for dealing with the minimal symbol table, really a misc
address<->symbol mapping for things we don't have debug symbols for. */
-extern int have_minimal_symbols (void);
+/* Return true if any objfile of PSPACE has minimal symbols. */
+
+extern bool have_minimal_symbols (program_space *pspace);
extern struct obj_section *find_pc_section (CORE_ADDR pc);
diff --git a/gdb/p-exp.y b/gdb/p-exp.y
index f334db6..0a0fa95 100644
--- a/gdb/p-exp.y
+++ b/gdb/p-exp.y
@@ -725,8 +725,8 @@ variable: name_not_typename
if (msymbol.minsym != NULL)
pstate->push_new<var_msym_value_operation>
(msymbol);
- else if (!have_full_symbols ()
- && !have_partial_symbols ())
+ else if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
error (_("No symbol table is loaded. "
"Use the \"file\" command."));
else
diff --git a/gdb/parse.c b/gdb/parse.c
index 0a2b2a5..2541a2e 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -148,7 +148,8 @@ parser_state::push_symbol (const char *name, block_symbol sym)
struct bound_minimal_symbol msymbol = lookup_bound_minimal_symbol (name);
if (msymbol.minsym != NULL)
push_new<expr::var_msym_value_operation> (msymbol);
- else if (!have_full_symbols () && !have_partial_symbols ())
+ else if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
error (_("No symbol table is loaded. Use the \"file\" command."));
else
error (_("No symbol \"%s\" in current context."), name);
@@ -374,8 +375,8 @@ parse_exp_in_context (const char **stringptr, CORE_ADDR pc,
if (!expression_context_block)
{
- struct symtab_and_line cursal
- = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
if (cursal.symtab)
expression_context_block
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 1d6a492..e37e30e 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -2294,11 +2294,11 @@ disable_display_command (const char *args, int from_tty)
static void
clear_dangling_display_expressions (struct objfile *objfile)
{
- program_space *pspace = objfile->pspace;
+ program_space *pspace = objfile->pspace ();
if (objfile->separate_debug_objfile_backlink)
{
objfile = objfile->separate_debug_objfile_backlink;
- gdb_assert (objfile->pspace == pspace);
+ gdb_assert (objfile->pspace () == pspace);
}
for (auto &d : all_displays)
diff --git a/gdb/progspace.c b/gdb/progspace.c
index d5b5ef2..28198c1 100644
--- a/gdb/progspace.c
+++ b/gdb/progspace.c
@@ -115,7 +115,7 @@ program_space::~program_space ()
set_current_program_space (this);
breakpoint_program_space_exit (this);
- no_shared_libraries (NULL, 0);
+ no_shared_libraries (this);
free_all_objfiles ();
/* Defer breakpoint re-set because we don't want to create new
locations for this pspace which we're tearing down. */
@@ -128,7 +128,7 @@ void
program_space::free_all_objfiles ()
{
/* Any objfile reference would become stale. */
- for (const solib &so : current_program_space->solibs ())
+ for (const solib &so : this->solibs ())
gdb_assert (so.objfile == NULL);
while (!objfiles_list.empty ())
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index 60a1483..6e8d5b5 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -183,7 +183,7 @@ objfpy_get_progspace (PyObject *self, void *closure)
objfile_object *obj = (objfile_object *) self;
if (obj->objfile)
- return pspace_to_pspace_object (obj->objfile->pspace).release ();
+ return pspace_to_pspace_object (obj->objfile->pspace ()).release ();
Py_RETURN_NONE;
}
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index f25cd3b..5db3088 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -948,7 +948,7 @@ private:
int gdbpy_print_python_errors_p (void);
void gdbpy_print_stack (void);
void gdbpy_print_stack_or_quit ();
-void gdbpy_handle_exception () ATTRIBUTE_NORETURN;
+[[noreturn]] void gdbpy_handle_exception ();
/* A wrapper around calling 'error'. Prefixes the error message with an
'Error occurred in Python' string. Use this in C++ code if we spot
@@ -958,8 +958,7 @@ void gdbpy_handle_exception () ATTRIBUTE_NORETURN;
This always calls error, and never returns. */
-void gdbpy_error (const char *fmt, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
+[[noreturn]] void gdbpy_error (const char *fmt, ...) ATTRIBUTE_PRINTF (1, 2);
gdbpy_ref<> python_string_to_unicode (PyObject *obj);
gdb::unique_xmalloc_ptr<char> unicode_to_target_string (PyObject *unicode_str);
diff --git a/gdb/python/python.c b/gdb/python/python.c
index e9092b4..d86a031 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -963,7 +963,7 @@ gdbpy_decode_line (PyObject *self, PyObject *args)
else
{
set_default_source_symtab_and_line ();
- def_sal = get_current_source_symtab_and_line ();
+ def_sal = get_current_source_symtab_and_line (current_program_space);
sals = def_sal;
}
}
diff --git a/gdb/record-full.c b/gdb/record-full.c
index eb62d18..ab854e0 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -2073,6 +2073,7 @@ record_full_core_target::resume (ptid_t ptid, int step,
enum gdb_signal signal)
{
record_full_resume_step = step;
+ record_full_resume_ptid = ptid;
record_full_resumed = 1;
record_full_execution_dir = ::execution_direction;
}
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index f92de61..67d3f4c 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -69,8 +69,7 @@ static void gdb_os_vprintf_filtered (host_callback *, const char *, va_list);
static void gdb_os_evprintf_filtered (host_callback *, const char *, va_list);
-static void gdb_os_error (host_callback *, const char *, ...)
- ATTRIBUTE_NORETURN;
+[[noreturn]] static void gdb_os_error (host_callback *, const char *, ...);
/* Naming convention:
diff --git a/gdb/remote.c b/gdb/remote.c
index 90a4bd5..efef594 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -248,6 +248,7 @@ enum {
PACKET_vFile_unlink,
PACKET_vFile_readlink,
PACKET_vFile_fstat,
+ PACKET_vFile_stat,
PACKET_qXfer_auxv,
PACKET_qXfer_features,
PACKET_qXfer_exec_file,
@@ -1010,6 +1011,9 @@ 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_close (int fd, fileio_error *target_errno) override;
int fileio_unlink (struct inferior *inf,
@@ -1539,7 +1543,7 @@ static void remote_console_output (const char *msg, ui_file *stream);
static void remote_btrace_reset (remote_state *rs);
-static void remote_unpush_and_throw (remote_target *target);
+[[noreturn]] static void remote_unpush_and_throw (remote_target *target);
/* For "remote". */
@@ -5950,7 +5954,7 @@ remote_target::remote_query_supported ()
if (m_features.packet_set_cmd_state (PACKET_accept_error_message)
!= AUTO_BOOLEAN_FALSE)
- remote_query_supported_append (&q, "error-message+");
+ remote_query_supported_append (&q, "error-message+");
q = "qSupported:" + q;
putpkt (q.c_str ());
@@ -6150,7 +6154,7 @@ remote_unpush_target (remote_target *target)
fileio_handles_invalidate_target (target);
}
-static void
+[[noreturn]] static void
remote_unpush_and_throw (remote_target *target)
{
remote_unpush_target (target);
@@ -6271,7 +6275,7 @@ remote_target::open_1 (const char *name, int from_tty, int extended_p)
}
/* First delete any symbols previously loaded from shared libraries. */
- no_shared_libraries (NULL, 0);
+ no_shared_libraries (current_program_space);
/* Start the remote connection. If error() or QUIT, discard this
target (we'd otherwise be in an inconsistent state) and then
@@ -13048,6 +13052,41 @@ remote_target::fileio_readlink (struct inferior *inf, const char *filename,
return ret;
}
+/* Helper function to handle ::fileio_fstat and ::fileio_stat result
+ processing. When this function is called the remote syscall has been
+ performed and we know we didn't get an error back.
+
+ ATTACHMENT and ATTACHMENT_LEN are the attachment data extracted from the
+ remote syscall reply. EXPECTED_LEN is the length returned from the
+ fstat or stat call, this the length of the returned data (in ATTACHMENT)
+ once it has been decoded. The fstat/stat result (from the ATTACHMENT
+ 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)
+{
+ struct fio_stat fst;
+
+ int read_len
+ = remote_unescape_input ((gdb_byte *) attachment, attachment_len,
+ (gdb_byte *) &fst, sizeof (fst));
+
+ if (read_len != expected_len)
+ error (_("vFile:fstat returned %d, but %d bytes."),
+ expected_len, read_len);
+
+ if (read_len != sizeof (fst))
+ error (_("vFile:fstat returned %d bytes, but expecting %d."),
+ read_len, (int) sizeof (fst));
+
+ remote_fileio_to_host_stat (&fst, st);
+
+ return 0;
+}
+
/* Implementation of to_fileio_fstat. */
int
@@ -13058,8 +13097,6 @@ remote_target::fileio_fstat (int fd, struct stat *st, fileio_error *remote_errno
int left = get_remote_packet_size ();
int attachment_len, ret;
const char *attachment;
- struct fio_stat fst;
- int read_len;
remote_buffer_add_string (&p, &left, "vFile:fstat:");
@@ -13091,19 +13128,41 @@ remote_target::fileio_fstat (int fd, struct stat *st, fileio_error *remote_errno
return 0;
}
- read_len = remote_unescape_input ((gdb_byte *) attachment, attachment_len,
- (gdb_byte *) &fst, sizeof (fst));
+ return fileio_process_fstat_and_stat_reply (attachment, attachment_len,
+ ret, st);
+}
- if (read_len != ret)
- error (_("vFile:fstat returned %d, but %d bytes."), ret, read_len);
+/* Implementation of to_fileio_stat. */
- if (read_len != sizeof (fst))
- error (_("vFile:fstat returned %d bytes, but expecting %d."),
- read_len, (int) sizeof (fst));
+int
+remote_target::fileio_stat (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 ();
+ int left = get_remote_packet_size () - 1;
- remote_fileio_to_host_stat (&fst, st);
+ if (remote_hostio_set_filesystem (inf, remote_errno) != 0)
+ return {};
- return 0;
+ remote_buffer_add_string (&p, &left, "vFile:stat:");
+
+ 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,
+ remote_errno, &attachment,
+ &attachment_len);
+
+ /* Unlike ::fileio_fstat, the stat fileio call was added later on, and
+ has none of the legacy bfd issues, so we can just return the error. */
+ if (ret < 0)
+ return ret;
+
+ return fileio_process_fstat_and_stat_reply (attachment, attachment_len,
+ ret, st);
}
/* Implementation of to_filesystem_is_local. */
@@ -15444,7 +15503,7 @@ remote_objfile_changed_check_symbols (program_space *pspace)
static void
remote_new_objfile (struct objfile *objfile)
{
- remote_objfile_changed_check_symbols (objfile->pspace);
+ remote_objfile_changed_check_symbols (objfile->pspace ());
}
/* Pull all the tracepoints defined on the target and create local
@@ -16178,6 +16237,8 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
add_packet_config_cmd (PACKET_vFile_fstat, "vFile:fstat", "hostio-fstat", 0);
+ add_packet_config_cmd (PACKET_vFile_stat, "vFile:stat", "hostio-stat", 0);
+
add_packet_config_cmd (PACKET_vAttach, "vAttach", "attach", 0);
add_packet_config_cmd (PACKET_vRun, "vRun", "run", 0);
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index 39508fa..79052db 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -687,7 +687,7 @@ enable_break (void)
return 0;
}
- if (!entry_point_address_query (&entry_point))
+ if (!entry_point_address_query (current_program_space, &entry_point))
{
solib_debug_printf ("Symbol file has no entry point.");
return 0;
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 5c8557e..9f377f4 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1496,7 +1496,7 @@ svr4_current_sos ()
CORE_ADDR
svr4_fetch_objfile_link_map (struct objfile *objfile)
{
- struct svr4_info *info = get_svr4_info (objfile->pspace);
+ struct svr4_info *info = get_svr4_info (objfile->pspace ());
/* Cause svr4_current_sos() to be run if it hasn't been already. */
if (info->main_lm_addr == 0)
@@ -1625,7 +1625,7 @@ probes_table_htab_remove_objfile_probes (void **slot, void *info)
struct objfile *objfile = (struct objfile *) info;
if (pa->objfile == objfile)
- htab_clear_slot (get_svr4_info (objfile->pspace)->probes_table.get (),
+ htab_clear_slot (get_svr4_info (objfile->pspace ())->probes_table.get (),
slot);
return 1;
@@ -1636,7 +1636,7 @@ probes_table_htab_remove_objfile_probes (void **slot, void *info)
static void
probes_table_remove_objfile_probes (struct objfile *objfile)
{
- svr4_info *info = get_svr4_info (objfile->pspace);
+ svr4_info *info = get_svr4_info (objfile->pspace ());
if (info->probes_table != nullptr)
htab_traverse_noresize (info->probes_table.get (),
probes_table_htab_remove_objfile_probes, objfile);
diff --git a/gdb/solib.c b/gdb/solib.c
index 881f0d9..8b97cc6 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1234,21 +1234,29 @@ sharedlibrary_command (const char *args, int from_tty)
solib_add (args, from_tty, 1);
}
-/* Implements the command "nosharedlibrary", which discards symbols
- that have been auto-loaded from shared libraries. Symbols from
- shared libraries that were added by explicit request of the user
- are not discarded. Also called from remote.c. */
+/* See solib.h. */
void
-no_shared_libraries (const char *ignored, int from_tty)
+no_shared_libraries (program_space *pspace)
{
/* The order of the two routines below is important: clear_solib notifies
the solib_unloaded observers, and some of these observers might need
access to their associated objfiles. Therefore, we can not purge the
solibs' objfiles before clear_solib has been called. */
- clear_solib (current_program_space);
- objfile_purge_solibs ();
+ clear_solib (pspace);
+ objfile_purge_solibs (pspace);
+}
+
+/* Implements the command "nosharedlibrary", which discards symbols
+ that have been auto-loaded from shared libraries. Symbols from
+ shared libraries that were added by explicit request of the user
+ are not discarded. */
+
+static void
+no_shared_libraries_command (const char *ignored, int from_tty)
+{
+ no_shared_libraries (current_program_space);
}
/* See solib.h. */
@@ -1700,7 +1708,7 @@ remove_user_added_objfile (struct objfile *objfile)
{
if (objfile->flags & OBJF_USERLOADED)
{
- for (solib &so : objfile->pspace->solibs ())
+ for (solib &so : objfile->pspace ()->solibs ())
if (so.objfile == objfile)
so.objfile = nullptr;
}
@@ -1725,7 +1733,7 @@ _initialize_solib ()
= add_info ("sharedlibrary", info_sharedlibrary_command,
_ ("Status of loaded shared object libraries."));
add_info_alias ("dll", info_sharedlibrary_cmd, 1);
- add_com ("nosharedlibrary", class_files, no_shared_libraries,
+ add_com ("nosharedlibrary", class_files, no_shared_libraries_command,
_ ("Unload all shared object library symbols."));
add_setshow_boolean_cmd ("auto-solib-add", class_support, &auto_solib_add,
diff --git a/gdb/solib.h b/gdb/solib.h
index f7a93c0..25ed77c 100644
--- a/gdb/solib.h
+++ b/gdb/solib.h
@@ -80,9 +80,9 @@ extern bool solib_keep_data_in_core (CORE_ADDR vaddr, unsigned long size);
extern bool in_solib_dynsym_resolve_code (CORE_ADDR);
-/* Discard symbols that were auto-loaded from shared libraries. */
+/* Discard symbols that were auto-loaded from shared libraries in PSPACE. */
-extern void no_shared_libraries (const char *ignored, int from_tty);
+extern void no_shared_libraries (program_space *pspace);
/* Synchronize GDB's shared object list with inferior's.
diff --git a/gdb/source.c b/gdb/source.c
index 9e528d3..25d6e71 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -231,16 +231,15 @@ get_source_location (program_space *pspace)
return loc;
}
-/* Return the current source file for listing and next line to list.
- NOTE: The returned sal pc and end fields are not valid. */
+/* See source.h. */
-struct symtab_and_line
-get_current_source_symtab_and_line (void)
+symtab_and_line
+get_current_source_symtab_and_line (program_space *pspace)
{
symtab_and_line cursal;
- current_source_location *loc = get_source_location (current_program_space);
+ current_source_location *loc = get_source_location (pspace);
- cursal.pspace = current_program_space;
+ cursal.pspace = pspace;
cursal.symtab = loc->symtab ();
cursal.line = loc->line ();
cursal.pc = 0;
@@ -260,8 +259,9 @@ get_current_source_symtab_and_line (void)
void
set_default_source_symtab_and_line (void)
{
- if (!have_full_symbols () && !have_partial_symbols ())
- error (_("No symbol table is loaded. Use the \"file\" command."));
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
+ error (_ ("No symbol table is loaded. Use the \"file\" command."));
/* Pull in a current source symtab if necessary. */
current_source_location *loc = get_source_location (current_program_space);
@@ -298,9 +298,9 @@ set_current_source_symtab_and_line (const symtab_and_line &sal)
/* Reset any information stored about a default file and line to print. */
void
-clear_current_source_symtab_and_line (void)
+clear_current_source_symtab_and_line (program_space *pspace)
{
- current_source_location *loc = get_source_location (current_program_space);
+ current_source_location *loc = get_source_location (pspace);
loc->set (nullptr, 0);
}
diff --git a/gdb/source.h b/gdb/source.h
index 144ee48..541ee3b 100644
--- a/gdb/source.h
+++ b/gdb/source.h
@@ -21,7 +21,9 @@
#include "gdbsupport/scoped_fd.h"
+struct program_space;
struct symtab;
+struct symtab_and_line;
/* See openp function definition for their description. */
@@ -107,7 +109,8 @@ extern int get_lines_to_list (void);
/* Return the current source file for listing and next line to list.
NOTE: The returned sal pc and end fields are not valid. */
-extern struct symtab_and_line get_current_source_symtab_and_line (void);
+extern symtab_and_line get_current_source_symtab_and_line
+ (program_space *pspace);
/* If the current source file for listing is not set, try and get a default.
Usually called before get_current_source_symtab_and_line() is called.
@@ -126,7 +129,7 @@ extern symtab_and_line set_current_source_symtab_and_line
(const symtab_and_line &sal);
/* Reset any information stored about a default file and line to print. */
-extern void clear_current_source_symtab_and_line (void);
+extern void clear_current_source_symtab_and_line (program_space *pspace);
/* Add a source path substitution rule. */
extern void add_substitute_path_rule (const char *, const char *);
diff --git a/gdb/symfile.c b/gdb/symfile.c
index b0510b4..06c7faf 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -91,8 +91,6 @@ static void symbol_file_add_main_1 (const char *args, symfile_add_flags add_flag
static const struct sym_fns *find_sym_fns (bfd *);
-static void overlay_invalidate_all (void);
-
static void simple_free_overlay_table (void);
static void read_target_long_array (CORE_ADDR, unsigned int *, int, int,
@@ -1026,7 +1024,6 @@ symbol_file_add_with_addrs (const gdb_bfd_ref_ptr &abfd, const char *name,
section_addr_info *addrs,
objfile_flags flags, struct objfile *parent)
{
- struct objfile *objfile;
const int from_tty = add_flags & SYMFILE_VERBOSE;
const int mainline = add_flags & SYMFILE_MAINLINE;
const int always_confirm = add_flags & SYMFILE_ALWAYS_CONFIRM;
@@ -1053,14 +1050,17 @@ symbol_file_add_with_addrs (const gdb_bfd_ref_ptr &abfd, const char *name,
if (from_tty
&& (always_confirm
- || ((have_full_symbols () || have_partial_symbols ())
+ || ((have_full_symbols (current_program_space)
+ || have_partial_symbols (current_program_space))
&& mainline))
- && !query (_("Load new symbol table from \"%s\"? "), name))
+ && !query (_ ("Load new symbol table from \"%s\"? "), name))
error (_("Not confirmed."));
if (mainline)
flags |= OBJF_MAINLINE;
- objfile = objfile::make (abfd, name, flags, parent);
+
+ objfile *objfile
+ = objfile::make (abfd, current_program_space, name, flags, parent);
/* We either created a new mapped symbol table, mapped an existing
symbol table file which has not had initial symbol reading
@@ -1199,7 +1199,8 @@ symbol_file_add_main_1 (const char *args, symfile_add_flags add_flags,
void
symbol_file_clear (int from_tty)
{
- if ((have_full_symbols () || have_partial_symbols ())
+ if ((have_full_symbols (current_program_space)
+ || have_partial_symbols (current_program_space))
&& from_tty
&& (current_program_space->symfile_object_file
? !query (_("Discard symbol table from `%s'? "),
@@ -1209,7 +1210,7 @@ symbol_file_clear (int from_tty)
/* solib descriptors may have handles to objfiles. Wipe them before their
objfiles get stale by free_all_objfiles. */
- no_shared_libraries (NULL, from_tty);
+ no_shared_libraries (current_program_space);
current_program_space->free_all_objfiles ();
@@ -2387,7 +2388,7 @@ remove_symbol_file_command (const char *args, int from_tty)
{
if ((objfile->flags & OBJF_USERLOADED) != 0
&& (objfile->flags & OBJF_SHARED) != 0
- && objfile->pspace == pspace
+ && objfile->pspace () == pspace
&& is_addr_in_objfile (addr, objfile))
{
objf = objfile;
@@ -2408,7 +2409,7 @@ remove_symbol_file_command (const char *args, int from_tty)
{
if ((objfile->flags & OBJF_USERLOADED) != 0
&& (objfile->flags & OBJF_SHARED) != 0
- && objfile->pspace == pspace
+ && objfile->pspace () == pspace
&& filename_cmp (filename.get (), objfile_name (objfile)) == 0)
{
objf = objfile;
@@ -2611,7 +2612,7 @@ reread_symbols (int from_tty)
making the dangling pointers point to correct data
again. */
- objfiles_changed ();
+ objfiles_changed (current_program_space);
/* Recompute section offsets and section indices. */
objfile->sf->sym_offsets (objfile, {});
@@ -2884,7 +2885,7 @@ clear_symtab_users (symfile_add_flags add_flags)
/* Clear the "current" symtab first, because it is no longer valid.
breakpoint_re_set may try to access the current symtab. */
- clear_current_source_symtab_and_line ();
+ clear_current_source_symtab_and_line (current_program_space);
clear_displays ();
clear_last_displayed_sal ();
@@ -2969,13 +2970,13 @@ section_is_overlay (struct obj_section *section)
return 0;
}
-/* Function: overlay_invalidate_all (void)
- Invalidate the mapped state of all overlay sections (mark it as stale). */
+/* Invalidate the mapped state of all overlay sections (mark it as stale) in
+ PSPACE. */
static void
-overlay_invalidate_all (void)
+overlay_invalidate_all (program_space *pspace)
{
- for (objfile *objfile : current_program_space->objfiles ())
+ for (objfile *objfile : pspace->objfiles ())
for (obj_section *sect : objfile->sections ())
if (section_is_overlay (sect))
sect->ovly_mapped = -1;
@@ -3011,7 +3012,7 @@ section_is_mapped (struct obj_section *osect)
{
if (overlay_cache_invalid)
{
- overlay_invalidate_all ();
+ overlay_invalidate_all (current_program_space);
overlay_cache_invalid = 0;
}
if (osect->ovly_mapped == -1)
@@ -3722,7 +3723,7 @@ static void
symfile_free_objfile (struct objfile *objfile)
{
/* Remove the target sections owned by this objfile. */
- objfile->pspace->remove_target_sections (objfile);
+ objfile->pspace ()->remove_target_sections (objfile);
}
/* Wrapper around the quick_symbol_functions expand_symtabs_matching "method".
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 41d71be..9d11703 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1755,7 +1755,7 @@ maintenance_print_symbol_cache_statistics (const char *args, int from_tty)
static void
symtab_new_objfile_observer (struct objfile *objfile)
{
- symbol_cache_flush (objfile->pspace);
+ symbol_cache_flush (objfile->pspace ());
}
/* This module's 'all_objfiles_removed' observer. */
@@ -1774,7 +1774,7 @@ symtab_all_objfiles_removed (program_space *pspace)
static void
symtab_free_objfile_observer (struct objfile *objfile)
{
- symbol_cache_flush (objfile->pspace);
+ symbol_cache_flush (objfile->pspace ());
}
/* See symtab.h. */
@@ -2439,7 +2439,7 @@ lookup_symbol_in_objfile_from_linkage_name (struct objfile *objfile,
/* A helper function that throws an exception when a symbol was found
in a psymtab but not in a symtab. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
error_in_psymtab_expansion (enum block_enum block_index, const char *name,
struct compunit_symtab *cust)
{
@@ -4764,8 +4764,9 @@ info_sources_worker (struct ui_out *uiout,
static void
info_sources_command (const char *args, int from_tty)
{
- if (!have_full_symbols () && !have_partial_symbols ())
- error (_("No symbol table is loaded. Use the \"file\" command."));
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
+ error (_ ("No symbol table is loaded. Use the \"file\" command."));
filename_partial_match_opts match_opts;
auto group = make_info_sources_options_def_group (&match_opts);
@@ -6381,7 +6382,8 @@ make_source_files_completion_list (const char *text, const char *word)
const char *base_name;
struct add_partial_filename_data datum;
- if (!have_full_symbols () && !have_partial_symbols ())
+ if (!have_full_symbols (current_program_space)
+ && !have_partial_symbols (current_program_space))
return list;
filename_seen_cache filenames_seen;
diff --git a/gdb/target.c b/gdb/target.c
index 1b5aa11..a80b133 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -56,7 +56,7 @@
#include "cli/cli-decode.h"
#include "cli/cli-style.h"
-static void generic_tls_error (void) ATTRIBUTE_NORETURN;
+[[noreturn]] static void generic_tls_error (void);
static void default_rcmd (struct target_ops *, const char *, struct ui_file *);
@@ -64,7 +64,7 @@ static int default_verify_memory (struct target_ops *self,
const gdb_byte *data,
CORE_ADDR memaddr, ULONGEST size);
-static void tcomplain (void) ATTRIBUTE_NORETURN;
+[[noreturn]] static void tcomplain (void);
/* Mapping between target_info objects (which have address identity)
and corresponding open/factory function/callback. Each add_target
@@ -2428,7 +2428,7 @@ info_target_command (const char *args, int from_tty)
resets (things which might change between targets). */
void
-target_pre_inferior (int from_tty)
+target_pre_inferior ()
{
/* Clear out solib state. Otherwise the solib state of the previous
inferior might have survived and is entirely wrong for the new
@@ -2452,7 +2452,7 @@ target_pre_inferior (int from_tty)
memory regions and features. */
if (!gdbarch_has_global_solist (current_inferior ()->arch ()))
{
- no_shared_libraries (NULL, from_tty);
+ no_shared_libraries (current_program_space);
invalidate_target_mem_regions ();
@@ -2504,7 +2504,7 @@ target_preopen (int from_tty)
live process to a core of the same program. */
current_inferior ()->pop_all_targets_above (file_stratum);
- target_pre_inferior (from_tty);
+ target_pre_inferior ();
}
/* See target.h. */
@@ -3199,6 +3199,14 @@ 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_errno = FILEIO_ENOSYS;
+ return -1;
+}
+
+int
target_ops::fileio_close (int fd, fileio_error *target_errno)
{
*target_errno = FILEIO_ENOSYS;
@@ -3318,6 +3326,29 @@ 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)
+{
+ for (target_ops *t = default_fileio_target (); t != NULL; t = t->beneath ())
+ {
+ int ret = t->fileio_stat (inf, filename, sb, target_errno);
+
+ if (ret == -1 && *target_errno == FILEIO_ENOSYS)
+ continue;
+
+ target_debug_printf_nofunc ("target_fileio_stat (%s) = %d (%d)",
+ filename, ret,
+ ret != -1 ? 0 : *target_errno);
+ return ret;
+ }
+
+ *target_errno = FILEIO_ENOSYS;
+ return -1;
+}
+
+/* See target.h. */
+
+int
target_fileio_close (int fd, fileio_error *target_errno)
{
fileio_fh_t *fh = fileio_fd_to_fh (fd);
diff --git a/gdb/target.h b/gdb/target.h
index 81de4a6..dcf68a6 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -1011,6 +1011,14 @@ struct target_ops
*TARGET_ERRNO). */
virtual int fileio_fstat (int fd, struct stat *sb, fileio_error *target_errno);
+ /* Get information about the file FILENAME and put it in SB. Look for
+ FILENAME in the filesystem as seen by INF. If INF is NULL, use the
+ 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);
+
/* Close FD on the target. Return 0, or -1 if an error occurs
(and set *TARGET_ERRNO). */
virtual int fileio_close (int fd, fileio_error *target_errno);
@@ -2220,6 +2228,14 @@ extern int target_fileio_pread (int fd, gdb_byte *read_buf, int len,
extern int target_fileio_fstat (int fd, struct stat *sb,
fileio_error *target_errno);
+/* Get information about the file at FILENAME on the target and put it in
+ SB. Look in the filesystem as seen by INF. If INF is NULL, use the
+ 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);
+
/* Close FD on the target. Return 0, or -1 if an error occurs
(and set *TARGET_ERRNO). */
extern int target_fileio_close (int fd, fileio_error *target_errno);
@@ -2427,7 +2443,7 @@ struct target_unpusher
typedef std::unique_ptr<struct target_ops, target_unpusher> target_unpush_up;
-extern void target_pre_inferior (int);
+extern void target_pre_inferior ();
extern void target_preopen (int);
@@ -2490,7 +2506,7 @@ extern int default_memory_insert_breakpoint (struct gdbarch *,
extern void initialize_targets (void);
-extern void noprocess (void) ATTRIBUTE_NORETURN;
+[[noreturn]] extern void noprocess (void);
extern void target_require_runnable (void);
diff --git a/gdb/testsuite/gdb.ada/variant_record_field.exp b/gdb/testsuite/gdb.ada/variant_record_field.exp
new file mode 100644
index 0000000..f3baa25
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/variant_record_field.exp
@@ -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.
+#
+# 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 foo
+
+# The compiler used to emit an invalid DWARF expression for the record
+# size, so GDB could not 'print p_record' correctly: a direct 'print
+# p_record.i' worked, but iteration over the record fields was broken.
+#
+# Originally observed at -O2, and the bug was reproducible with just
+# -Og. The DWARF fix covered both optimization levels; not worth
+# making guarantees beyond -Og though, so test that.
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug optimize=-Og]] != ""} {
+ return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "BREAK" ${srcfile}]
+runto "${testfile}.adb:${bp_location}"
+
+set test "print p_record"
+gdb_test_multiple "$test" "$test" {
+ -re "\\(kind => five, i => 1200\\)" {
+ pass $test
+ }
+ -re "\\(kind => five, i => <error reading variable: access outside bounds of object>" {
+ if { [gcc_major_version] <= 14 } {
+ setup_xfail *-*-*
+ }
+ fail $test
+ }
+}
diff --git a/gdb/testsuite/gdb.ada/variant_record_field/foo.adb b/gdb/testsuite/gdb.ada/variant_record_field/foo.adb
new file mode 100644
index 0000000..2526a1d
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/variant_record_field/foo.adb
@@ -0,0 +1,47 @@
+-- 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/>.
+with Ada.Text_IO;
+
+procedure Foo is
+
+ package P is
+
+ type Int16 is range 0 .. 2 ** 16 - 1;
+ type Enum is (Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine);
+
+ type Rec (Kind : Enum := Zero) is record
+ case Kind is
+ when Four .. Seven =>
+ I : Int16;
+ when others =>
+ null;
+ end case;
+ end record;
+
+ end P;
+
+ P_Record : P.Rec;
+ I : P.Int16;
+
+ procedure Dump is
+ begin
+ Ada.Text_IO.Put_Line ("P_Record.I => " & P_Record.I'Image); -- BREAK
+ end Dump;
+
+begin
+ I := P.Int16'(1200);
+ P_Record := (Kind => P.Five, I => I);
+ Dump;
+end Foo;
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c
index 49b0553..adda4b8 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c
@@ -24,10 +24,17 @@ break_here_c (uint64_t value)
{
}
+__attribute__((target("arm")))
+uint64_t
+caller_trampoline (void)
+{
+ return caller ();
+}
+
int
main (void)
{
- uint64_t value = caller ();
+ uint64_t value = caller_trampoline ();
break_here_c (value);
return 0;
}
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c
index 49b0553..adda4b8 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c
@@ -24,10 +24,17 @@ break_here_c (uint64_t value)
{
}
+__attribute__((target("arm")))
+uint64_t
+caller_trampoline (void)
+{
+ return caller ();
+}
+
int
main (void)
{
- uint64_t value = caller ();
+ uint64_t value = caller_trampoline ();
break_here_c (value);
return 0;
}
diff --git a/gdb/testsuite/gdb.base/build-id-seqno.c b/gdb/testsuite/gdb.base/build-id-seqno.c
new file mode 100644
index 0000000..e2119ba7
--- /dev/null
+++ b/gdb/testsuite/gdb.base/build-id-seqno.c
@@ -0,0 +1,22 @@
+/* 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/>. */
+
+int
+main (void)
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/build-id-seqno.exp b/gdb/testsuite/gdb.base/build-id-seqno.exp
new file mode 100644
index 0000000..fba8a8d
--- /dev/null
+++ b/gdb/testsuite/gdb.base/build-id-seqno.exp
@@ -0,0 +1,133 @@
+# 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/>.
+
+# Setup a .build-id/ based debug directory containing multiple entries
+# for the same build-id, with each entry given a different sequence
+# number.
+#
+# Ensure that GDB will scan over broken symlinks for the same build-id
+# (but different sequence number) to find later working symlinks.
+#
+# This test only places debug information on the host, so it is always
+# local to GDB.
+
+require {!is_remote host}
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile] == -1} {
+ return -1
+}
+
+# Split out BINFILE.debug. Remove debug from BINFILE.
+if {[gdb_gnu_strip_debug $binfile] != 0} {
+ return -1
+}
+
+# Get the '.build-id/xx/xxx...xxx' part of the filename.
+set build_id_filename [build_id_debug_filename_get $binfile]
+
+# Hide (rename) BINFILE.debug, this should ensure GDB can't find it
+# directly but needs to look for the build-id based file in the debug
+# directory.
+set hidden_debuginfo [standard_output_file "hidden_$testfile.debug"]
+remote_exec build "mv ${binfile}.debug $hidden_debuginfo"
+
+# A filename that doesn't exist. Some symlinks will point at this
+# file.
+set missing_debuginfo [host_standard_output_file "missing_debuginfo"]
+
+# Create the debug directory, and the .build-id directory structure
+# within it.
+set debugdir [host_standard_output_file "debug"]
+remote_exec host "mkdir -p $debugdir/[file dirname $build_id_filename]"
+
+set host_hidden_debuginfo [gdb_remote_download host $hidden_debuginfo]
+remote_exec host "ln -fs $host_hidden_debuginfo $debugdir/$build_id_filename"
+
+# Start GDB and load global BINFILE. If FIND_DEBUGINFO is true then
+# we expect GDB to find the debug information matching BINFILE,
+# otherwise, we expect GDB not to find the debug information.
+proc load_binfile_check_debug_is_found { find_debuginfo testname } {
+ with_test_prefix "$testname" {
+ clean_restart
+
+ gdb_test_no_output "set debug-file-directory $::debugdir" \
+ "set debug-file-directory"
+
+ gdb_file_cmd $::binfile
+
+ if { $find_debuginfo } {
+ gdb_assert { [regexp [string_to_regexp \
+ "Reading symbols from $::hidden_debuginfo..."] \
+ $::gdb_file_cmd_msg] } \
+ "debuginfo was read via build-id"
+ } else {
+ gdb_assert { [regexp "\\(No debugging symbols found in \[^\r\n\]+/$::testfile\\)" \
+ $::gdb_file_cmd_msg] } \
+ }
+ }
+}
+
+# Return a copy of FILENAME, which should end '.debug', with NUMBER
+# added, e.g. add_seqno 1 "foo.debug" --> "foo.1.debug".
+proc add_seqno { number filename } {
+ return [regsub "\.debug\$" $filename ".${number}.debug"]
+}
+
+load_binfile_check_debug_is_found true \
+ "find debuginfo with a single build-id file"
+
+remote_exec host "ln -fs $host_hidden_debuginfo \
+ $debugdir/[add_seqno 1 $build_id_filename]"
+remote_exec host "ln -fs $host_hidden_debuginfo \
+ $debugdir/[add_seqno 2 $build_id_filename]"
+remote_exec host "ln -fs $host_hidden_debuginfo \
+ $debugdir/[add_seqno 3 $build_id_filename]"
+
+load_binfile_check_debug_is_found true \
+ "find debuginfo with 4 build-id files"
+
+remote_exec host "ln -fs $missing_debuginfo $debugdir/$build_id_filename"
+
+load_binfile_check_debug_is_found true \
+ "find debuginfo, first build-id file is bad"
+
+remote_exec host "ln -fs $missing_debuginfo \
+ $debugdir/[add_seqno 1 $build_id_filename]"
+remote_exec host "ln -fs $missing_debuginfo \
+ $debugdir/[add_seqno 3 $build_id_filename]"
+
+load_binfile_check_debug_is_found true \
+ "find debuginfo, first 2 build-id files are bad"
+
+remote_exec host "ln -fs $missing_debuginfo \
+ $debugdir/[add_seqno 2 $build_id_filename]"
+
+load_binfile_check_debug_is_found false \
+ "cannot find debuginfo, all build-id files are bad"
+
+remote_exec host "ln -fs $host_hidden_debuginfo \
+ $debugdir/[add_seqno 3 $build_id_filename]"
+
+load_binfile_check_debug_is_found true \
+ "find debuginfo, last build-id file is good"
+
+remote_exec host "rm -f $debugdir/[add_seqno 1 $build_id_filename]"
+
+load_binfile_check_debug_is_found false \
+ "cannot find debuginfo, file with seqno 1 is missing"
diff --git a/gdb/testsuite/gdb.base/complex-parts.exp b/gdb/testsuite/gdb.base/complex-parts.exp
index e678cfc..a0ead3e 100644
--- a/gdb/testsuite/gdb.base/complex-parts.exp
+++ b/gdb/testsuite/gdb.base/complex-parts.exp
@@ -23,12 +23,13 @@ if {![runto_main]} {
return 0
}
-gdb_breakpoint [gdb_get_line_number "Break Here"]
-gdb_continue_to_breakpoint "breakpt" ".* Break Here\\. .*"
+set marker " Break Here. "
+gdb_breakpoint [gdb_get_line_number $marker]
+gdb_continue_to_breakpoint "breakpt" ".*[string_to_regexp $marker].*"
-gdb_test "p z1" " = 1.5 \\+ 4.5i"
-gdb_test "p z2" " = 2.5 \\+ -5.5i"
-gdb_test "p z3" " = 3.5 \\+ 6.5i"
+gdb_test "p z1" [string_to_regexp " = 1.5 + 4.5i"]
+gdb_test "p z2" [string_to_regexp " = 2.5 + -5.5i"]
+gdb_test "p z3" [string_to_regexp " = 3.5 + 6.5i"]
# The following 3 tests are broken for Clang.
# More info at https://github.com/llvm/llvm-project/issues/52996.
@@ -40,59 +41,59 @@ if {[test_compiler_info clang-*-*]} { setup_xfail *-*-* }
gdb_test "ptype z3" " = complex long double"
with_test_prefix "double imaginary" {
- gdb_test "p \$_cimag (z1)" " = 4.5"
- gdb_test "ptype \$" " = double"
+ gdb_test {p $_cimag (z1)} " = 4.5"
+ gdb_test {ptype $} " = double"
}
with_test_prefix "float imaginary" {
- gdb_test "p \$_cimag (z2)" " = -5.5"
- gdb_test "ptype \$" " = float"
+ gdb_test {p $_cimag (z2)} " = -5.5"
+ gdb_test {ptype $} " = float"
}
with_test_prefix "long double imaginary" {
- gdb_test "p \$_cimag (z3)" " = 6.5"
- gdb_test "ptype \$" " = long double"
+ gdb_test {p $_cimag (z3)} " = 6.5"
+ gdb_test {ptype $} " = long double"
}
with_test_prefix "double real" {
- gdb_test "p \$_creal (z1)" " = 1.5"
- gdb_test "ptype \$" " = double"
+ gdb_test {p $_creal (z1)} " = 1.5"
+ gdb_test {ptype $} " = double"
}
with_test_prefix "float real" {
- gdb_test "p \$_creal (z2)" " = 2.5"
- gdb_test "ptype \$" " = float"
+ gdb_test {p $_creal (z2)} " = 2.5"
+ gdb_test {ptype $} " = float"
}
with_test_prefix "long double real" {
- gdb_test "p \$_creal (z3)" " = 3.5"
- gdb_test "ptype \$" " = long double"
+ gdb_test {p $_creal (z3)} " = 3.5"
+ gdb_test {ptype $} " = long double"
}
-gdb_test "p \$_cimag (d1)" "expected a complex number"
-gdb_test "p \$_cimag (f1)" "expected a complex number"
-gdb_test "p \$_cimag (i1)" "expected a complex number"
+gdb_test {p $_cimag (d1)} "expected a complex number"
+gdb_test {p $_cimag (f1)} "expected a complex number"
+gdb_test {p $_cimag (i1)} "expected a complex number"
-gdb_test "p \$_creal (d1)" "expected a complex number"
-gdb_test "p \$_creal (f1)" "expected a complex number"
-gdb_test "p \$_creal (i1)" "expected a complex number"
+gdb_test {p $_creal (d1)} "expected a complex number"
+gdb_test {p $_creal (f1)} "expected a complex number"
+gdb_test {p $_creal (i1)} "expected a complex number"
#
# General complex number tests.
#
-gdb_test "print 23 + 7i" " = 23 \\+ 7i"
-gdb_test "print 23.125f + 7i" " = 23.125 \\+ 7i"
-gdb_test "print 23 + 7.25fi" " = 23 \\+ 7.25i"
-gdb_test "print (23 + 7i) + (17 + 10i)" " = 40 \\+ 17i"
-gdb_test "print 23 + -7i" " = 23 \\+ -7i"
-gdb_test "print 23 - 7i" " = 23 \\+ -7i"
+gdb_test "print 23 + 7i" [string_to_regexp " = 23 + 7i"]
+gdb_test "print 23.125f + 7i" [string_to_regexp " = 23.125 + 7i"]
+gdb_test "print 23 + 7.25fi" [string_to_regexp " = 23 + 7.25i"]
+gdb_test "print (23 + 7i) + (17 + 10i)" [string_to_regexp " = 40 + 17i"]
+gdb_test "print 23 + -7i" [string_to_regexp " = 23 + -7i"]
+gdb_test "print 23 - 7i" [string_to_regexp " = 23 + -7i"]
-gdb_test "print -(23 + 7i)" " = -23 \\+ -7i"
-gdb_test "print +(23 + 7i)" " = 23 \\+ 7i"
-gdb_test "print ~(23 + 7i)" " = 23 \\+ -7i"
+gdb_test "print -(23 + 7i)" [string_to_regexp " = -23 + -7i"]
+gdb_test "print +(23 + 7i)" [string_to_regexp " = 23 + 7i"]
+gdb_test "print ~(23 + 7i)" [string_to_regexp " = 23 + -7i"]
-gdb_test "print (5 + 5i) * (2 + 2i)" " = 0 \\+ 20i"
+gdb_test "print (5 + 5i) * (2 + 2i)" [string_to_regexp " = 0 + 20i"]
gdb_test "print (5 + 7i) == (5 + 7i)" " = 1"
gdb_test "print (5 + 7i) == (8 + 7i)" " = 0"
@@ -101,14 +102,16 @@ gdb_test "print (5 + 7i) != (5 + 7i)" " = 0"
gdb_test "print (5 + 7i) != (8 + 7i)" " = 1"
gdb_test "print (5 + 7i) != (5 + 92i)" " = 1"
-gdb_test "print (20 - 4i) / (3 + 2i)" " = 4 \\+ -4i"
+gdb_test "print (20 - 4i) / (3 + 2i)" [string_to_regexp " = 4 + -4i"]
-gdb_test "print (_Complex int) 4" " = 4 \\+ 0i"
-gdb_test "print (_Complex float) 4.5" " = 4.5 \\+ 0i"
+gdb_test "print (_Complex int) 4" [string_to_regexp " = 4 + 0i"]
+gdb_test "print (_Complex float) 4.5" [string_to_regexp " = 4.5 + 0i"]
gdb_test "ptype __complex__ short" " = _Complex short"
-gdb_test "print (_Complex int) (23.75 + 8.88i)" " = 23 \\+ 8i"
+gdb_test "print (_Complex int) (23.75 + 8.88i)" [string_to_regexp " = 23 + 8i"]
-set re_reject_arg "Argument to complex arithmetic operation not supported\\."
+set re_reject_arg \
+ [string_to_regexp \
+ "Argument to complex arithmetic operation not supported."]
gdb_test "print (void *)0 + 5i" $re_reject_arg
gdb_test "print (_Decimal32)0 + 5i" $re_reject_arg
@@ -117,4 +120,4 @@ clean_restart
gdb_test_no_output "set language c++"
# C++ type tests.
-gdb_test "print (bool)1 + 1i" " = 1 \\+ 1i"
+gdb_test "print (bool)1 + 1i" [string_to_regexp "= 1 + 1i"]
diff --git a/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp b/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp
index 5f17315..36f6519 100644
--- a/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp
+++ b/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp
@@ -78,9 +78,8 @@ proc_with_prefix lookup_via_build_id {} {
gdb_assert { $::gdb_file_cmd_debug_info eq "debug" } \
"ensure debug information was found"
- if { $sysroot_prefix eq "" } {
- set lookup_filename $debug_filename
- } else {
+ if { $sysroot_prefix eq "target:"
+ && [target_info gdb_protocol] == "extended-remote"} {
# Only when using the extended-remote board will we have
# started a remote target by this point. In this case GDB
# will see the 'target:' prefix as remote, and so the
@@ -89,11 +88,9 @@ proc_with_prefix lookup_via_build_id {} {
# In all other cases we will still be using the default,
# initial target, in which case GDB considers the
# 'target:' prefix to indicate the local filesystem.
- if {[target_info gdb_protocol] == "extended-remote"} {
- set lookup_filename $sysroot_prefix$debug_symlink
- } else {
- set lookup_filename $debug_symlink
- }
+ set lookup_filename $sysroot_prefix$debug_symlink
+ } else {
+ set lookup_filename $debug_filename
}
set re [string_to_regexp "Reading symbols from $lookup_filename..."]
gdb_assert {[regexp $re $::gdb_file_cmd_msg]} \
diff --git a/gdb/testsuite/gdb.dap/rust-slices.exp b/gdb/testsuite/gdb.dap/rust-slices.exp
index d3bd305..4af8c11 100644
--- a/gdb/testsuite/gdb.dap/rust-slices.exp
+++ b/gdb/testsuite/gdb.dap/rust-slices.exp
@@ -59,9 +59,9 @@ set scopes [dap_check_request_and_response "get scopes" scopes \
[format {o frameId [i %d]} $frame_id]]
set scopes [dict get [lindex $scopes 0] body scopes]
-# There are three scopes because an artificial symbol ends up in the
-# DWARF. See https://github.com/rust-lang/rust/issues/125126.
-gdb_assert {[llength $scopes] == 3} "three scopes"
+# There may be three scopes instead of two if an artificial symbol ends up in
+# the DWARF. See https://github.com/rust-lang/rust/issues/125126.
+gdb_assert { [llength $scopes] == 2 || [llength $scopes] == 3 } "two scopes"
lassign $scopes scope ignore
gdb_assert {[dict get $scope name] == "Locals"} "scope is locals"
diff --git a/gdb/testsuite/gdb.gdb/python-helper.exp b/gdb/testsuite/gdb.gdb/python-helper.exp
index 8a8afb1..4589edc 100644
--- a/gdb/testsuite/gdb.gdb/python-helper.exp
+++ b/gdb/testsuite/gdb.gdb/python-helper.exp
@@ -111,6 +111,16 @@ proc test_python_helper {} {
}
}
+ # Add a second inferior, useful to the intrusive_list pretty-printer test
+ # below.
+ send_inferior "add-inferior\n"
+ gdb_test_multiple "" "add second inferior in inner GDB" {
+ -i "$inferior_spawn_id"
+ -re "Added inferior 2\r\n$gdb_prompt $" {
+ pass $gdb_test_name
+ }
+ }
+
# Send Ctrl-C to the inner GDB, this should kick us back to the
# prompt of the outer GDB.
send_inferior "\003"
@@ -253,6 +263,11 @@ proc test_python_helper {} {
# Test the htab_t pretty-printer.
gdb_test -prompt $outer_prompt_re "print all_bfds" "htab_t with ${::decimal} elements = \\{${::hex}.*\\}"
+ # Test the intrusive_list pretty-printer. A bug occured in the
+ # pretty-printer for lists with more than one element. Verify that
+ # we see both elements of the inferior_list list being printed.
+ gdb_test -prompt $outer_prompt_re "print inferior_list" "intrusive list of inferior = {.*, num = 1,.*, num = 2,.*}"
+
return 0
}
diff --git a/gdb/testsuite/gdb.multi/pending-bp-lib.c b/gdb/testsuite/gdb.multi/pending-bp-lib.c
new file mode 100644
index 0000000..c48e7f2
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/pending-bp-lib.c
@@ -0,0 +1,22 @@
+/* Copyright 2023-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/>. */
+
+int global_var = 0;
+
+void
+foo (int arg)
+{
+ global_var = arg;
+}
diff --git a/gdb/testsuite/gdb.multi/pending-bp.c b/gdb/testsuite/gdb.multi/pending-bp.c
new file mode 100644
index 0000000..17d9181
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/pending-bp.c
@@ -0,0 +1,66 @@
+/* Copyright 2023-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 <stdlib.h>
+
+void
+breakpt (void)
+{
+ /* Nothing. */
+}
+
+volatile int global_counter = 0;
+
+volatile int call_count = 1;
+
+int
+main (void)
+{
+ void *handle;
+ void (*func)(int);
+
+ /* Some filler work so that we don't initially stop on the breakpt call
+ below. */
+ ++global_counter;
+
+ breakpt (); /* Break before open. */
+
+ /* Now load the shared library. */
+ handle = dlopen (SHLIB_NAME, RTLD_LAZY);
+ if (handle == NULL)
+ abort ();
+
+ breakpt (); /* Break after open. */
+
+ /* Find the function symbol. */
+ func = (void (*)(int)) dlsym (handle, "foo");
+
+ for (; call_count > 0; --call_count)
+ {
+ /* Call the library function. */
+ func (1);
+ }
+
+ breakpt (); /* Break before close. */
+
+ /* Unload the shared library. */
+ if (dlclose (handle) != 0)
+ abort ();
+
+ breakpt (); /* Break after close. */
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.multi/pending-bp.exp b/gdb/testsuite/gdb.multi/pending-bp.exp
new file mode 100644
index 0000000..13f76f4
--- /dev/null
+++ b/gdb/testsuite/gdb.multi/pending-bp.exp
@@ -0,0 +1,126 @@
+# Copyright 2023-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/>.
+
+# Tests related to pending breakpoints in a multi-inferior environment.
+
+require allow_shlib_tests !use_gdb_stub
+
+standard_testfile
+
+set libname $testfile-lib
+set srcfile_lib $srcdir/$subdir/$libname.c
+set binfile_lib [standard_output_file $libname.so]
+
+if { [gdb_compile_shlib $srcfile_lib $binfile_lib {}] != "" } {
+ untested "failed to compile shared library 1"
+ return -1
+}
+
+set binfile_lib_target [gdb_download_shlib $binfile_lib]
+
+if { [build_executable "failed to prepare" $testfile $srcfile \
+ [list debug \
+ additional_flags=-DSHLIB_NAME=\"$binfile_lib_target\" \
+ shlib_load]] } {
+ return -1
+}
+
+# Start two inferiors, both running the same test binary. The arguments
+# INF_1_STOP and INF_2_STOP are source code patterns that are passed to
+# gdb_get_line_number to figure out where each inferior should be stopped.
+#
+# This proc does a clean_restart and leaves inferior 2 selected. Also the
+# 'breakpoint pending' flag is enabled, so pending breakpoints can be created
+# without GDB prompting the user.
+proc do_test_setup { inf_1_stop inf_2_stop } {
+ clean_restart ${::binfile}
+
+ gdb_locate_shlib $::binfile_lib
+
+ if {![runto_main]} {
+ return false
+ }
+
+ gdb_breakpoint [gdb_get_line_number ${inf_1_stop}] temporary
+ gdb_continue_to_breakpoint "move inferior 1 into position"
+
+ gdb_test "add-inferior -exec ${::binfile}" \
+ "Added inferior 2.*" "add inferior 2"
+ gdb_test "inferior 2" "Switching to inferior 2 .*" "switch to inferior 2"
+
+ if {![runto_main]} {
+ return false
+ }
+
+ gdb_breakpoint [gdb_get_line_number ${inf_2_stop}] temporary
+ gdb_continue_to_breakpoint "move inferior 2 into position"
+
+ gdb_test_no_output "set breakpoint pending on"
+
+ return true
+}
+
+# Check that when a breakpoint is in the pending state, but that breakpoint
+# does have some locations (those locations themselves are pending), GDB
+# doesn't display the inferior list in the 'info breakpoints' output.
+proc_with_prefix test_no_inf_display {} {
+ do_test_setup "Break before open" "Break before open"
+
+ # Create a breakpoint on 'foo'. As the shared library (that
+ # contains foo) has not been loaded into any inferior yet, then
+ # there will be no locations and the breakpoint will be created
+ # pending. Pass the 'allow-pending' flag so the gdb_breakpoint
+ # correctly expects the new breakpoint to be pending.
+ gdb_breakpoint "foo" allow-pending
+ set bpnum [get_integer_valueof "\$bpnum" "*INVALID*" \
+ "get foo breakpoint number"]
+
+ # Check the 'info breakpoints' output; the breakpoint is pending with
+ # no 'inf X' appearing at the end of the line.
+ gdb_test "info breakpoint $bpnum" \
+ "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+<PENDING>\\s+foo" \
+ "check info bp before locations have been created"
+
+ # Now select inferior 1 and allow the inferior to run forward to the
+ # point where a breakpoint location for foo will have been created.
+ gdb_test "inferior 1" "Switching to inferior 1 .*"
+ gdb_breakpoint [gdb_get_line_number "Break after open"] temporary
+ gdb_continue_to_breakpoint \
+ "move inferior 1 until a location has been added"
+
+ # Check the 'info breakpoints' output. Notice we display the inferior
+ # list at the end of the breakpoint line.
+ gdb_test "info breakpoint $bpnum" \
+ "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+$::hex\\s+<foo\[^>\]*>\\s+inf 1" \
+ "check info breakpoints while breakpoint is inserted"
+
+ # Continue inferior 1 until the shared library has been unloaded. The
+ # breakpoint on 'foo' will return to the pending state. We will need to
+ # 'continue' twice as the first time will hit the 'foo' breakpoint.
+ gdb_breakpoint [gdb_get_line_number "Break after close"] temporary
+ gdb_continue_to_breakpoint "hit the breakpoint in foo"
+ gdb_continue_to_breakpoint "after close library"
+
+ # Check the 'info breakpoints' output, check there is no 'inf 1' at the
+ # end of the breakpoint line.
+ gdb_test "info breakpoint $bpnum" \
+ [multi_line \
+ "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+<PENDING>\\s+foo" \
+ "\\s+breakpoint already hit 1 time"] \
+ "check info breakpoints while breakpoint is pending"
+}
+
+# Run all the tests.
+test_no_inf_display
diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp
index d937763..9ae67b3 100644
--- a/gdb/testsuite/gdb.reverse/step-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/step-precsave.exp
@@ -69,6 +69,8 @@ with_timeout_factor 10 {
gdb_test "kill" "" "kill process, prepare to debug log file" \
"Kill the program being debugged\\? \\(y or n\\) " "y"
+clean_restart ${binfile}
+
gdb_test "record restore $precsave" \
"Restored records from core file .*" \
"reload core file"
diff --git a/gdb/testsuite/gdb.server/build-id-seqno.c b/gdb/testsuite/gdb.server/build-id-seqno.c
new file mode 100644
index 0000000..e2119ba7
--- /dev/null
+++ b/gdb/testsuite/gdb.server/build-id-seqno.c
@@ -0,0 +1,22 @@
+/* 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/>. */
+
+int
+main (void)
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.server/build-id-seqno.exp b/gdb/testsuite/gdb.server/build-id-seqno.exp
new file mode 100644
index 0000000..7db1f11
--- /dev/null
+++ b/gdb/testsuite/gdb.server/build-id-seqno.exp
@@ -0,0 +1,200 @@
+# 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/>.
+
+# Setup a .build-id/ based debug directory containing multiple entries
+# for the same build-id, with each entry given a different sequence
+# number.
+#
+# Ensure that GDB will scan over broken symlinks for the same build-id
+# (but different sequence number) to find later working symlinks.
+#
+# This test places the build-id files within a directory next to where
+# gdbserver is started, and places a relative address in the
+# debug-file-directory, in this way we require GDB to find the debug
+# information via gdbserver.
+
+require {!is_remote host}
+
+load_lib gdbserver-support.exp
+
+require allow_gdbserver_tests
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile] == -1} {
+ return -1
+}
+
+# Split out BINFILE.debug. Remove debug from BINFILE.
+if {[gdb_gnu_strip_debug $binfile] != 0} {
+ return -1
+}
+
+# Get the '.build-id/xx/xxx...xxx' part of the filename.
+set build_id_filename [build_id_debug_filename_get $binfile]
+
+# Hide (rename) BINFILE.debug, this should ensure GDB can't find it
+# directly but needs to look for the build-id based file in the debug
+# directory.
+set hidden_debuginfo [standard_output_file "hidden_$testfile.debug"]
+remote_exec build "mv ${binfile}.debug $hidden_debuginfo"
+
+# A filename that doesn't exist. Some symlinks will point at this
+# file.
+set missing_debuginfo "missing_debuginfo"
+
+# Helper called from gdb_finish when the 'target' is remote. Ensure the
+# debug directory we create is deleted.
+proc cleanup_remote_target {} {
+ remote_exec target "rm -fr debug/"
+}
+
+if { ![is_remote target] } {
+ set gdbserver_dir [standard_output_file "gdbserver-dir"]/
+} else {
+ lappend gdb_finish_hooks cleanup_remote_target
+ set gdbserver_dir ""
+}
+
+# Copy files to the target (if needed).
+set target_binfile [gdb_remote_download target $binfile]
+set target_debuginfo [gdb_remote_download target $hidden_debuginfo]
+
+# Setup the debug information on the target.
+set debugdir "${gdbserver_dir}debug"
+remote_exec target \
+ "mkdir -p $debugdir/[file dirname $build_id_filename]"
+remote_exec target \
+ "ln -sf $target_debuginfo $debugdir/$build_id_filename"
+
+# Start GDB and load global BINFILE. If DEBUGINFO_FILE is not the
+# empty string then this contains the '.build-id/xx/xxx....xxxx' part
+# of the filename which we expect GDB to read from the remote target.
+# If DEBUGINFO_FILE is the empty string then we don't expect GDB to
+# find any debug information.
+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
+ # 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.
+ foreach_with_prefix stat_pkt {auto off} {
+ clean_restart
+
+ gdb_test_no_output "set debug-file-directory debug" \
+ "set debug-file-directory"
+
+ gdb_test_no_output "set sysroot target:"
+
+ gdb_test "set remote hostio-stat-packet $stat_pkt"
+
+ # Make sure we're disconnected, in case we're testing with an
+ # extended-remote board, therefore already connected.
+ gdb_test "disconnect" ".*"
+
+ # Start gdbserver. This needs to be done after starting GDB. When
+ # gdbserver is running local to GDB, start gdbserver in a sub-directory,
+ # this prevents GDB from finding the debug information itself.
+ if { ![is_remote target] } {
+ with_cwd $::gdbserver_dir {
+ set res [gdbserver_start "" $::target_binfile]
+ }
+ } else {
+ set res [gdbserver_start "" $::target_binfile]
+ }
+ set gdbserver_protocol [lindex $res 0]
+ set gdbserver_gdbport [lindex $res 1]
+
+ # Connect to gdbserver. The output will be placed into the global
+ # GDB_TARGET_REMOTE_CMD_MSG, and we'll match against this below.
+ gdb_assert {[gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport] == 0} \
+ "connect to gdbserver"
+
+ if { $debuginfo_file ne "" } {
+ gdb_assert { [regexp "Reading symbols from target:debug/[string_to_regexp $debuginfo_file]\\.\\.\\." \
+ $::gdb_target_remote_cmd_msg] } \
+ "debuginfo was read via build-id"
+ gdb_assert { [regexp "Reading debug/[string_to_regexp $debuginfo_file] from remote target\\.\\.\\." \
+ $::gdb_target_remote_cmd_msg] } \
+ "debuginfo was read from remote target"
+ } else {
+ gdb_assert { [regexp "\\(No debugging symbols found in \[^\r\n\]+/$::testfile\\)" \
+ $::gdb_target_remote_cmd_msg] }
+ }
+ }
+ }
+ }
+}
+
+# Return a copy of FILENAME, which should end '.debug', with NUMBER
+# added, e.g. add_seqno 1 "foo.debug" --> "foo.1.debug".
+proc add_seqno { number filename } {
+ return [regsub "\.debug\$" $filename ".${number}.debug"]
+}
+
+# Precompute sequence numbered build-id filenames.
+set build_id_1_filename [add_seqno 1 $build_id_filename]
+set build_id_2_filename [add_seqno 2 $build_id_filename]
+set build_id_3_filename [add_seqno 3 $build_id_filename]
+
+load_binfile_check_debug_is_found $build_id_filename \
+ "find debuginfo with a single build-id file"
+
+remote_exec target "ln -fs $target_debuginfo \
+ $debugdir/$build_id_1_filename"
+remote_exec target "ln -fs $target_debuginfo \
+ $debugdir/$build_id_2_filename"
+remote_exec target "ln -fs $target_debuginfo \
+ $debugdir/$build_id_3_filename"
+
+load_binfile_check_debug_is_found $build_id_filename \
+ "find debuginfo with 4 build-id files"
+
+remote_exec target "ln -fs $missing_debuginfo $debugdir/$build_id_filename"
+
+load_binfile_check_debug_is_found $build_id_1_filename \
+ "find debuginfo, first build-id file is bad"
+
+remote_exec target "ln -fs $missing_debuginfo \
+ $debugdir/$build_id_1_filename"
+remote_exec target "ln -fs $missing_debuginfo \
+ $debugdir/$build_id_3_filename"
+
+load_binfile_check_debug_is_found $build_id_2_filename \
+ "find debuginfo, first 2 build-id files are bad"
+
+remote_exec target "ln -fs $missing_debuginfo \
+ $debugdir/$build_id_2_filename"
+
+load_binfile_check_debug_is_found "" \
+ "cannot find debuginfo, all build-id files are bad"
+
+remote_exec target "ln -fs $target_debuginfo \
+ $debugdir/$build_id_3_filename"
+
+load_binfile_check_debug_is_found $build_id_3_filename \
+ "find debuginfo, last build-id file is good"
+
+remote_exec target "rm -f $debugdir/$build_id_1_filename"
+
+load_binfile_check_debug_is_found "" \
+ "cannot find debuginfo, file with seqno 1 is missing"
diff --git a/gdb/tid-parse.c b/gdb/tid-parse.c
index 623f55e..1b8f343 100644
--- a/gdb/tid-parse.c
+++ b/gdb/tid-parse.c
@@ -24,7 +24,7 @@
/* See tid-parse.h. */
-void ATTRIBUTE_NORETURN
+[[noreturn]] void
invalid_thread_id_error (const char *string)
{
error (_("Invalid thread ID: %s"), string);
diff --git a/gdb/tid-parse.h b/gdb/tid-parse.h
index b7bd920..7bbdeab 100644
--- a/gdb/tid-parse.h
+++ b/gdb/tid-parse.h
@@ -26,7 +26,7 @@ struct thread_info;
/* Issue an invalid thread ID error, pointing at STRING, the invalid
ID. */
-extern void ATTRIBUTE_NORETURN invalid_thread_id_error (const char *string);
+[[noreturn]] extern void invalid_thread_id_error (const char *string);
/* Parse TIDSTR as a per-inferior thread ID, in either INF_NUM.THR_NUM
or THR_NUM form. In the latter case, the missing INF_NUM is filled
diff --git a/gdb/top.h b/gdb/top.h
index dc3f2aa..b57cc3b 100644
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -42,7 +42,7 @@ extern void read_command_file (FILE *);
extern void init_history (void);
extern void command_loop (void);
extern int quit_confirm (void);
-extern void quit_force (int *, int) ATTRIBUTE_NORETURN;
+[[noreturn]] extern void quit_force (int *, int);
extern void quit_command (const char *, int);
extern void quit_cover (void);
extern void execute_command (const char *, int);
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index 0727d3a..53be866 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -389,10 +389,12 @@ tui_get_begin_asm_address (struct gdbarch **gdbarch_p, CORE_ADDR *addr_p)
if (tui_location.addr () == 0)
{
- if (have_full_symbols () || have_partial_symbols ())
+ if (have_full_symbols (current_program_space)
+ || have_partial_symbols (current_program_space))
{
set_default_source_symtab_and_line ();
- struct symtab_and_line sal = get_current_source_symtab_and_line ();
+ symtab_and_line sal
+ = get_current_source_symtab_and_line (current_program_space);
if (sal.symtab != nullptr)
find_line_pc (sal.symtab, sal.line, &addr);
diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c
index e6673ab..25358d0 100644
--- a/gdb/tui/tui-hooks.c
+++ b/gdb/tui/tui-hooks.c
@@ -127,7 +127,8 @@ tui_refresh_frame_and_register_information ()
/* Make sure that the source window is displayed. */
tui_add_win_to_layout (SRC_WIN);
- struct symtab_and_line sal = get_current_source_symtab_and_line ();
+ symtab_and_line sal
+ = get_current_source_symtab_and_line (current_program_space);
tui_update_source_windows_with_line (sal);
}
}
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index 444c0f7..ee64e41 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -136,7 +136,8 @@ tui_source_window::do_scroll_vertical (int num_to_scroll)
if (!m_content.empty ())
{
struct symtab *s;
- struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
struct gdbarch *arch = m_gdbarch;
if (cursal.symtab == NULL)
@@ -220,7 +221,7 @@ void
tui_source_window::display_start_addr (struct gdbarch **gdbarch_p,
CORE_ADDR *addr_p)
{
- struct symtab_and_line cursal = get_current_source_symtab_and_line ();
+ symtab_and_line cursal = get_current_source_symtab_and_line (current_program_space);
*gdbarch_p = m_gdbarch;
find_line_pc (cursal.symtab, m_start_line_or_addr.u.line_no, addr_p);
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 80297e5..b08fca7 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -440,8 +440,8 @@ tui_source_window_base::rerender ()
if (!m_content.empty ())
{
- struct symtab_and_line cursal
- = get_current_source_symtab_and_line ();
+ symtab_and_line cursal
+ = get_current_source_symtab_and_line (current_program_space);
if (m_start_line_or_addr.loa == LOA_LINE)
cursal.line = m_start_line_or_addr.u.line_no;
@@ -451,8 +451,8 @@ tui_source_window_base::rerender ()
}
else if (deprecated_safe_get_selected_frame () != NULL)
{
- struct symtab_and_line cursal
- = get_current_source_symtab_and_line ();
+ 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);
@@ -492,7 +492,7 @@ tui_source_window_base::refill ()
if (this == tui_src_win ())
{
- sal = get_current_source_symtab_and_line ();
+ sal = get_current_source_symtab_and_line (current_program_space);
if (sal.symtab == NULL)
{
frame_info_ptr fi = deprecated_safe_get_selected_frame ();
diff --git a/gdb/utils.c b/gdb/utils.c
index 17498e0..9431030 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -192,7 +192,7 @@ verror (const char *string, va_list args)
/* Emit a message and abort. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
abort_with_message (const char *msg)
{
if (current_ui == NULL)
diff --git a/gdb/xml-support.c b/gdb/xml-support.c
index b60b2c5..33c8e41 100644
--- a/gdb/xml-support.c
+++ b/gdb/xml-support.c
@@ -93,8 +93,8 @@ struct gdb_xml_parser
ATTRIBUTE_PRINTF (2, 0);
/* Issue an error message, and stop parsing. */
- void verror (const char *format, va_list ap)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0);
+ [[noreturn]] void verror (const char *format, va_list ap)
+ ATTRIBUTE_PRINTF (2, 0);
void body_text (const XML_Char *text, int length);
void start_element (const XML_Char *name, const XML_Char **attrs);
diff --git a/gdb/xml-support.h b/gdb/xml-support.h
index b9bac7a..2ff0e3c 100644
--- a/gdb/xml-support.h
+++ b/gdb/xml-support.h
@@ -191,8 +191,9 @@ void gdb_xml_debug (struct gdb_xml_parser *parser, const char *format, ...)
/* Issue an error message from one of PARSER's handlers, and stop
parsing. */
-void gdb_xml_error (struct gdb_xml_parser *parser, const char *format, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3);
+[[noreturn]] void gdb_xml_error (struct gdb_xml_parser *parser,
+ const char *format, ...)
+ ATTRIBUTE_PRINTF (2, 3);
/* Find the attribute named NAME in the set of parsed attributes
ATTRIBUTES. Returns NULL if not found. */
diff --git a/gdbserver/gdbreplay.cc b/gdbserver/gdbreplay.cc
index 0219e86..c2359e4 100644
--- a/gdbserver/gdbreplay.cc
+++ b/gdbserver/gdbreplay.cc
@@ -421,7 +421,7 @@ gdbreplay_usage (FILE *stream)
/* Main function. This is called by the real "main" function,
wrapped in a TRY_CATCH that handles any uncaught exceptions. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
captured_main (int argc, char *argv[])
{
FILE *fp;
diff --git a/gdbserver/hostio.cc b/gdbserver/hostio.cc
index c5ae35a..cc47d68 100644
--- a/gdbserver/hostio.cc
+++ b/gdbserver/hostio.cc
@@ -487,6 +487,42 @@ handle_fstat (char *own_buf, int *new_packet_len)
}
static void
+handle_stat (char *own_buf, int *new_packet_len)
+{
+ int bytes_sent;
+ char *p;
+ struct stat st;
+ struct fio_stat fst;
+ char filename[HOSTIO_PATH_MAX];
+
+ p = own_buf + strlen ("vFile:stat:");
+
+ if (require_filename (&p, filename)
+ || require_end (p))
+ {
+ hostio_packet_error (own_buf);
+ return;
+ }
+
+ if (lstat (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_close (char *own_buf)
{
int fd, ret;
@@ -603,6 +639,8 @@ handle_vFile (char *own_buf, int packet_len, int *new_packet_len)
handle_pwrite (own_buf, packet_len);
else if (startswith (own_buf, "vFile:fstat:"))
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:close:"))
handle_close (own_buf);
else if (startswith (own_buf, "vFile:unlink:"))
diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index 30d0517..87b2a26 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -4038,7 +4038,7 @@ test_memory_tagging_functions (void)
/* Main function. This is called by the real "main" function,
wrapped in a TRY_CATCH that handles any uncaught exceptions. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
captured_main (int argc, char *argv[])
{
int bad_attach;
diff --git a/gdbserver/utils.cc b/gdbserver/utils.cc
index 3023007..57fceb1 100644
--- a/gdbserver/utils.cc
+++ b/gdbserver/utils.cc
@@ -31,7 +31,7 @@
the filesystem of small embedded targets with core files. If in
development mode however, abort, producing core files to help with
debugging GDBserver. */
-static void ATTRIBUTE_NORETURN
+[[noreturn]] static void
abort_or_exit ()
{
#ifdef DEVELOPMENT
diff --git a/gdbsupport/common-exceptions.cc b/gdbsupport/common-exceptions.cc
index 5aa1612..8301fb5 100644
--- a/gdbsupport/common-exceptions.cc
+++ b/gdbsupport/common-exceptions.cc
@@ -191,7 +191,7 @@ throw_exception (gdb_exception &&exception)
gdb_assert_not_reached ("invalid return reason");
}
-static void ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0)
+[[noreturn]] static void ATTRIBUTE_PRINTF (3, 0)
throw_it (enum return_reason reason, enum errors error, const char *fmt,
va_list ap)
{
diff --git a/gdbsupport/common-exceptions.h b/gdbsupport/common-exceptions.h
index ffc02d2..8f53cd4 100644
--- a/gdbsupport/common-exceptions.h
+++ b/gdbsupport/common-exceptions.h
@@ -336,27 +336,26 @@ struct gdb_quit_bad_alloc
/* Throw an exception (as described by "struct gdb_exception"),
landing in the inner most containing exception handler established
using TRY/CATCH. */
-extern void throw_exception (gdb_exception &&exception)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void throw_exception (gdb_exception &&exception);
/* Throw an exception by executing a LONG JUMP to the inner most
containing exception handler established using TRY_SJLJ. Necessary
in some cases where we need to throw GDB exceptions across
third-party library code (e.g., readline). */
-extern void throw_exception_sjlj (const struct gdb_exception &exception)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void throw_exception_sjlj (const gdb_exception &exception);
/* Convenience wrappers around throw_exception that throw GDB
errors. */
-extern void throw_verror (enum errors, const char *fmt, va_list ap)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 0);
-extern void throw_vquit (const char *fmt, va_list ap)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0);
-extern void throw_error (enum errors error, const char *fmt, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (2, 3);
-extern void throw_quit (const char *fmt, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
-extern void throw_forced_quit (const char *fmt, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
+[[noreturn]] extern void throw_verror (enum errors, const char *fmt,
+ va_list ap)
+ ATTRIBUTE_PRINTF (2, 0);
+[[noreturn]] extern void throw_vquit (const char *fmt, va_list ap)
+ ATTRIBUTE_PRINTF (1, 0);
+[[noreturn]] extern void throw_error (enum errors error, const char *fmt, ...)
+ ATTRIBUTE_PRINTF (2, 3);
+[[noreturn]] extern void throw_quit (const char *fmt, ...)
+ ATTRIBUTE_PRINTF (1, 2);
+[[noreturn]] [[noreturn]] extern void throw_forced_quit (const char *fmt, ...)
+ ATTRIBUTE_PRINTF (1, 2);
#endif /* COMMON_COMMON_EXCEPTIONS_H */
diff --git a/gdbsupport/errors.h b/gdbsupport/errors.h
index d8daed0..c0747f8 100644
--- a/gdbsupport/errors.h
+++ b/gdbsupport/errors.h
@@ -36,11 +36,10 @@ extern void vwarning (const char *fmt, va_list args)
a printf- or vprintf-style argument list. These functions do not
return. The function "verror" must be provided by the client. */
-extern void error (const char *fmt, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 2);
+[[noreturn]] extern void error (const char *fmt, ...) ATTRIBUTE_PRINTF (1, 2);
-extern void verror (const char *fmt, va_list args)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (1, 0);
+[[noreturn]] extern void verror (const char *fmt, va_list args)
+ ATTRIBUTE_PRINTF (1, 0);
/* An internal error was detected. Internal errors indicate
programming errors such as assertion failures, as opposed to
@@ -53,16 +52,16 @@ extern void verror (const char *fmt, va_list args)
automatically. The function "internal_verror" must be provided
by the client. */
-extern void internal_error_loc (const char *file, int line,
- const char *fmt, ...)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 4);
+[[noreturn]] extern void internal_error_loc (const char *file, int line,
+ const char *fmt, ...)
+ ATTRIBUTE_PRINTF (3, 4);
#define internal_error(fmt, ...) \
internal_error_loc (__FILE__, __LINE__, fmt, ##__VA_ARGS__)
-extern void internal_verror (const char *file, int line,
- const char *fmt, va_list args)
- ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0);
+[[noreturn]] extern void internal_verror (const char *file, int line,
+ const char *fmt, va_list args)
+ ATTRIBUTE_PRINTF (3, 0);
/* An internal problem was detected, but the requested operation can
still proceed. Internal warnings indicate programming errors as
@@ -93,14 +92,13 @@ extern std::string perror_string (const char *prefix, int errnum = 0);
STRING with the system error message for errno. If ERRNUM is given,
then use it in place of errno. This function does not return. */
-extern void perror_with_name (const char *string, int errnum = 0)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void perror_with_name (const char *string, int errnum = 0);
/* Call this function to handle memory allocation failures. This
function does not return. This function must be provided by the
client. */
-extern void malloc_failure (long size) ATTRIBUTE_NORETURN;
+[[noreturn]] extern void malloc_failure (long size);
/* Flush stdout and stderr. Must be provided by the client. */
@@ -124,8 +122,8 @@ extern const char *strwinerror (ULONGEST error);
including STRING and the system text for the given error
number. */
-extern void throw_winerror_with_name (const char *string, ULONGEST err)
- ATTRIBUTE_NORETURN;
+[[noreturn]] extern void throw_winerror_with_name (const char *string,
+ ULONGEST err);
#endif /* USE_WIN32API */
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 2131ac6..f87e509 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-01-15 Nick Clifton <nickc@redhat.com>
* po/gold.pot: Regenerate.
diff --git a/gold/po/gold.pot b/gold/po/gold.pot
index 3084f44..fab8e04 100644
--- a/gold/po/gold.pot
+++ b/gold/po/gold.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-01-15 15:03+0000\n"
+"POT-Creation-Date: 2024-07-20 13:05+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -82,7 +82,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 ""
@@ -108,7 +108,7 @@ msgstr ""
#: 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 ""
@@ -124,7 +124,7 @@ msgid "%s: unsupported reloc type in global scan"
msgstr ""
#: 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 ""
@@ -135,7 +135,7 @@ msgid "cannot relocate %s in object file"
msgstr ""
#: 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 ""
@@ -389,12 +389,12 @@ msgid "requires unsupported dynamic reloc %s; recompile with -fPIC"
msgstr ""
#: 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 ""
-#: 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 ""
@@ -403,13 +403,13 @@ msgstr ""
#. 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
+#: tilegx.cc:4139 x86_64.cc:3365 x86_64.cc:3907
#, c-format
msgid "%s: unexpected reloc %u in object file"
msgstr ""
#: 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 ""
@@ -428,8 +428,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 ""
@@ -1076,7 +1076,7 @@ msgstr ""
#. 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 ""
@@ -1124,7 +1124,7 @@ msgstr ""
msgid "unsupported reloc %u in object file"
msgstr ""
-#: 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 ""
@@ -1722,7 +1722,7 @@ msgstr ""
msgid "size of symbols is not multiple of symbol size"
msgstr ""
-#: object.cc:2142 symtab.cc:1217
+#: object.cc:2142 symtab.cc:1271
#, c-format
msgid "%s: plugin needed to handle lto object"
msgstr ""
@@ -3742,64 +3742,64 @@ msgstr ""
msgid "unsupported symbol binding %d"
msgstr ""
-#: resolve.cc:288
+#: resolve.cc:274
#, c-format
msgid "STT_COMMON symbol '%s' in %s is not in a common section"
msgstr ""
-#: resolve.cc:443
+#: resolve.cc:429
#, c-format
msgid "common of '%s' overriding smaller common"
msgstr ""
-#: resolve.cc:448
+#: resolve.cc:434
#, c-format
msgid "common of '%s' overidden by larger common"
msgstr ""
-#: resolve.cc:453
+#: resolve.cc:439
#, c-format
msgid "multiple common of '%s'"
msgstr ""
-#: resolve.cc:492
+#: resolve.cc:478
#, c-format
msgid "symbol '%s' used as both __thread and non-__thread"
msgstr ""
-#: resolve.cc:535
+#: resolve.cc:521
#, c-format
msgid "multiple definition of '%s'"
msgstr ""
-#: resolve.cc:574
+#: resolve.cc:560
#, c-format
msgid "definition of '%s' overriding common"
msgstr ""
-#: resolve.cc:609
+#: resolve.cc:595
#, c-format
msgid "definition of '%s' overriding dynamic common definition"
msgstr ""
-#: resolve.cc:785
+#: resolve.cc:771
#, c-format
msgid "common '%s' overridden by previous definition"
msgstr ""
-#: resolve.cc:920
+#: resolve.cc:906
msgid "COPY reloc"
msgstr ""
-#: 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 ""
@@ -3816,7 +3816,7 @@ msgstr ""
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 ""
@@ -4152,67 +4152,67 @@ msgstr ""
msgid "%s: definition of %s"
msgstr ""
-#: symtab.cc:1060
+#: symtab.cc:1114
#, c-format
msgid "%s: conflicting default version definition for %s@@%s"
msgstr ""
-#: symtab.cc:1064
+#: symtab.cc:1118
#, c-format
msgid "%s: %s: previous definition of %s@@%s here"
msgstr ""
-#: symtab.cc:1206
+#: symtab.cc:1260
#, c-format
msgid "bad global symbol name offset %u at %zu"
msgstr ""
-#: symtab.cc:1473
+#: symtab.cc:1527
msgid "--just-symbols does not make sense with a shared object"
msgstr ""
-#: symtab.cc:1484
+#: symtab.cc:1538
msgid "too few symbol versions"
msgstr ""
-#: symtab.cc:1539
+#: symtab.cc:1593
#, c-format
msgid "bad symbol name offset %u at %zu"
msgstr ""
-#: symtab.cc:1602
+#: symtab.cc:1656
#, c-format
msgid "versym for symbol %zu out of range: %u"
msgstr ""
-#: symtab.cc:1610
+#: symtab.cc:1664
#, c-format
msgid "versym for symbol %zu has no name: %u"
msgstr ""
-#: symtab.cc:2633
+#: symtab.cc:2687
#, c-format
msgid ""
"discarding version information for %s@%s, defined in unused shared library %"
"s (linked with --as-needed)"
msgstr ""
-#: symtab.cc:2995 symtab.cc:3141
+#: symtab.cc:3049 symtab.cc:3195
#, c-format
msgid "%s: unsupported symbol section 0x%x"
msgstr ""
-#: symtab.cc:3473
+#: symtab.cc:3527
#, c-format
msgid "%s: symbol table entries: %zu; buckets: %zu\n"
msgstr ""
-#: symtab.cc:3476
+#: symtab.cc:3530
#, c-format
msgid "%s: symbol table entries: %zu\n"
msgstr ""
-#: symtab.cc:3633
+#: symtab.cc:3687
#, c-format
msgid ""
"while linking %s: symbol '%s' defined in multiple places (possible ODR "
@@ -4223,7 +4223,7 @@ msgstr ""
#. 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:3694 symtab.cc:3697
#, c-format
msgid " %s from %s\n"
msgstr ""
@@ -4287,7 +4287,7 @@ msgstr ""
msgid "TLS_DESC not yet supported for TILEGX"
msgstr ""
-#: 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 ""
@@ -4341,30 +4341,30 @@ msgstr ""
msgid "PC-relative offset overflow in APLT entry %d"
msgstr ""
-#: 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 ""
-#: 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 ""
-#: x86_64.cc:4631
+#: x86_64.cc:4644
#, c-format
msgid "relocation overflow: reference to local symbol %u in %s"
msgstr ""
-#: x86_64.cc:4638
+#: x86_64.cc:4651
#, c-format
msgid "relocation overflow: reference to '%s' defined in %s"
msgstr ""
-#: x86_64.cc:4646
+#: x86_64.cc:4659
#, c-format
msgid "relocation overflow: reference to '%s'"
msgstr ""
diff --git a/gold/testsuite/x86_64_ie_to_le.s b/gold/testsuite/x86_64_ie_to_le.s
index 56f3dfc..4bf3f4ab 100644
--- a/gold/testsuite/x86_64_ie_to_le.s
+++ b/gold/testsuite/x86_64_ie_to_le.s
@@ -9,6 +9,7 @@ _start:
movq foo@gottpoff(%rip), %r20
addq %r30, foo@gottpoff(%rip), %r8
addq foo@gottpoff(%rip), %rax, %r20
+ {nf} addq foo@gottpoff(%rip), %r16
{nf} addq %r30, foo@gottpoff(%rip), %r8
{nf} addq foo@gottpoff(%rip), %rax, %r20
.size _start, .-_start
diff --git a/gold/testsuite/x86_64_ie_to_le.sh b/gold/testsuite/x86_64_ie_to_le.sh
index 2927272..10e8468 100755
--- a/gold/testsuite/x86_64_ie_to_le.sh
+++ b/gold/testsuite/x86_64_ie_to_le.sh
@@ -29,5 +29,6 @@ grep -q "add[ \t]\+\$0x[a-f0-9]\+,%r16" x86_64_ie_to_le.stdout
grep -q "mov[ \t]\+\$0x[a-f0-9]\+,%r20" x86_64_ie_to_le.stdout
grep -q "add[ \t]\+\$0x[a-f0-9]\+,%r30,%r8" x86_64_ie_to_le.stdout
grep -q "add[ \t]\+\$0x[a-f0-9]\+,%rax,%r20" x86_64_ie_to_le.stdout
+grep -q "\{nf\} add[ \t]\+\$0x[a-f0-9]\+,%r16" x86_64_ie_to_le.stdout
grep -q "\{nf\} add[ \t]\+\$0x[a-f0-9]\+,%r30,%r8" x86_64_ie_to_le.stdout
grep -q "\{nf\} add[ \t]\+\$0x[a-f0-9]\+,%rax,%r20" x86_64_ie_to_le.stdout
diff --git a/gprof/ChangeLog b/gprof/ChangeLog
index 091274e..e2f2fab 100644
--- a/gprof/ChangeLog
+++ b/gprof/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-01-15 Nick Clifton <nickc@redhat.com>
* configure: Regenerate.
diff --git a/gprof/configure b/gprof/configure
index 64f14fa..af2d090 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprof 2.42.50.
+# Generated by GNU Autoconf 2.69 for gprof 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gprof'
PACKAGE_TARNAME='gprof'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='gprof 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='gprof 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1349,7 +1349,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gprof 2.42.50 to adapt to many kinds of systems.
+\`configure' configures gprof 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1420,7 +1420,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gprof 2.42.50:";;
+ short | recursive ) echo "Configuration of gprof 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1539,7 +1539,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gprof configure 2.42.50
+gprof configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1904,7 +1904,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gprof $as_me 2.42.50, which was
+It was created by gprof $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2884,7 +2884,7 @@ fi
# Define the identity of the package.
PACKAGE='gprof'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -14503,7 +14503,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gprof $as_me 2.42.50, which was
+This file was extended by gprof $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14569,7 +14569,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gprof config.status 2.42.50
+gprof config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/gprof/po/gprof.pot b/gprof/po/gprof.pot
index a84c22c..9fcaeb3 100644
--- a/gprof/po/gprof.pot
+++ b/gprof/po/gprof.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-01-15 15:06+0000\n"
+"POT-Creation-Date: 2024-07-20 13:07+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
diff --git a/gprofng/common/core_pcbe.c b/gprofng/common/core_pcbe.c
index 805bd14..fac8597 100644
--- a/gprofng/common/core_pcbe.c
+++ b/gprofng/common/core_pcbe.c
@@ -2752,6 +2752,9 @@ core_pcbe_init (void)
return 0;
case X86_VENDOR_Intel:
break;
+ case ANDES_VENDOR_ID:
+ case SIFIVE_VENDOR_ID:
+ case THEAD_VENDOR_ID:
default:
return -1;
}
@@ -2913,7 +2916,7 @@ core_pcbe_impl_name (void)
static const char *
core_pcbe_cpuref (void)
{
-#if defined(__aarch64__)
+#if defined(__aarch64__) || defined(__riscv)
return "";
#elif defined(__i386__) || defined(__x86_64)
switch (cpuid_getmodel ())
@@ -3017,8 +3020,7 @@ core_pcbe_get_eventnum (const char *eventname, uint_t pmc, eventsel_t *eventnum,
return 0;
}
}
- *eventnum = (eventsel_t) - 1;
- return -1;
+ return 0;
}
static hdrv_pcbe_api_t hdrv_pcbe_core_api = {
diff --git a/gprofng/common/cpuid.c b/gprofng/common/cpuid.c
index af15439..891d547 100644
--- a/gprofng/common/cpuid.c
+++ b/gprofng/common/cpuid.c
@@ -42,6 +42,11 @@ __get_cpuid (unsigned int op ATTRIBUTE_UNUSED, unsigned int *eax,
Tprintf (DBG_LT0, "cpuid.c:%d read_cpuid_id() MIDR_EL1=0x%016x\n", __LINE__, *eax);
return res;
}
+#elif defined(__riscv)
+#include <sched.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+#include <asm/hwprobe.h>
#endif
/*
@@ -180,6 +185,28 @@ get_cpuid_info ()
cpi->cpi_model += CPI_MODEL_XTD (regs.eax) << 4;
break;
}
+#elif defined(__riscv)
+ #ifndef __riscv_hwprobe
+ cpi->cpi_vendor = 0;
+ cpi->cpi_family = 0;
+ cpi->cpi_model = 0;
+ #else
+ struct riscv_hwprobe res;
+ res.key = RISCV_HWPROBE_KEY_MVENDORID;
+ cpu_set_t cpu_set;
+ int __riscv_hwprobe (struct riscv_hwprobe *pairs, \
+ long pair_count, long cpu_count, \
+ unsigned long *cpus, unsigned long flags) \
+ {
+ return syscall(__NR_riscv_hwprobe, pairs, pair_count, cpu_count, cpus, flags);
+ }
+ CPU_ZERO(&cpu_set);
+ CPU_SET(0, &cpu_set);
+ long ret = __riscv_hwprobe(&res, 1, 1, &cpu_set, 0);
+ cpi->cpi_vendor = res.value;
+ cpi->cpi_family = 0;
+ cpi->cpi_model = 0;
+ #endif
#endif
return cpi;
}
diff --git a/gprofng/common/gp-defs.h b/gprofng/common/gp-defs.h
index a1c1f05..e0471f3 100644
--- a/gprofng/common/gp-defs.h
+++ b/gprofng/common/gp-defs.h
@@ -32,6 +32,7 @@
*/
#define ARCH(x) TOK_A_##x(ARCH)
#define TOK_A_Aarch64(x) x##_Aarch64
+#define TOK_A_RISCV(x) x##_RISCV
#define TOK_A_SPARC(x) x##_SPARC
#define TOK_A_Intel(x) x##_Intel
@@ -45,11 +46,13 @@
#define ARCH_Intel 1
#elif defined(__aarch64__)
#define ARCH_Aarch64 1
+#elif defined(__riscv)
+#define ARCH_RISCV 1
#else
#error "Undefined platform"
#endif
-#if defined(__sparcv9) || defined(__x86_64) || defined(__aarch64__)
+#if defined(__sparcv9) || defined(__x86_64) || defined(__aarch64__) || defined(__riscv)
#define WSIZE_64 1
#else
#define WSIZE_32 1
diff --git a/gprofng/common/hwc_cpus.h b/gprofng/common/hwc_cpus.h
index 59052a0..88788f3 100644
--- a/gprofng/common/hwc_cpus.h
+++ b/gprofng/common/hwc_cpus.h
@@ -107,6 +107,7 @@ extern cpu_info_t *read_cpuinfo();
#define CPC_INTEL_HASWELL 2060
#define CPC_INTEL_BROADWELL 2070
#define CPC_INTEL_SKYLAKE 2080
+#define CPC_INTEL_ICELAKE 2081
#define CPC_INTEL_UNKNOWN 2499
#define CPC_AMD_K8C 2500 /* Opteron, Athlon... */
#define CPC_AMD_FAM_10H 2501 /* Barcelona, Shanghai... */
@@ -167,6 +168,13 @@ enum {
ARM_CPU_IMP_AMPERE = 0xC0
};
+// riscv Constants from arch/riscv/include/asm/vendorid_list.h
+enum {
+ ANDES_VENDOR_ID = 0x31e,
+ SIFIVE_VENDOR_ID = 0x489,
+ THEAD_VENDOR_ID = 0x5b7
+};
+
#define AARCH64_VENDORSTR_ARM "ARM"
/* strings below must match those returned by cpc_getcpuver() */
diff --git a/gprofng/common/hwcdrv.c b/gprofng/common/hwcdrv.c
index 0b4cfc3..aaf3acd 100644
--- a/gprofng/common/hwcdrv.c
+++ b/gprofng/common/hwcdrv.c
@@ -215,29 +215,29 @@ set_x86_attr_bits (eventsel_t *result_mask, eventsel_t evnt_valid_umask,
}
static int
-hwcfuncs_get_x86_eventsel (unsigned int regno, const char *int_name,
+hwcfuncs_get_x86_eventsel (Hwcentry *h,
eventsel_t *return_event, uint_t *return_pmc_sel)
{
hwcfuncs_attr_t attrs[HWCFUNCS_MAX_ATTRS + 1];
unsigned nattrs = 0;
char *nameOnly = NULL;
- eventsel_t evntsel = 0; // event number
+ eventsel_t evntsel = h->config;
eventsel_t evnt_valid_umask = 0;
uint_t pmc_sel = 0;
int rc = -1;
*return_event = 0;
*return_pmc_sel = 0;
- void *attr_mem = hwcfuncs_parse_attrs (int_name, attrs, HWCFUNCS_MAX_ATTRS,
+ void *attr_mem = hwcfuncs_parse_attrs (h->int_name, attrs, HWCFUNCS_MAX_ATTRS,
&nattrs, NULL);
if (!attr_mem)
{
logerr (GTXT ("out of memory, could not parse attributes\n"));
return -1;
}
- hwcfuncs_parse_ctr (int_name, NULL, &nameOnly, NULL, NULL, NULL);
+ hwcfuncs_parse_ctr (h->int_name, NULL, &nameOnly, NULL, NULL, NULL);
/* look up evntsel */
- if (myperfctr_get_x86_eventnum (nameOnly, regno,
+ if (myperfctr_get_x86_eventnum (nameOnly, h->reg_num,
&evntsel, &evnt_valid_umask, &pmc_sel))
{
logerr (GTXT ("counter `%s' is not valid\n"), nameOnly);
@@ -335,6 +335,7 @@ typedef struct
hrtime_t min_time; // minimum time we're targeting between events
char *name;
} perf_event_def_t;
+static perf_event_def_t event_def_0;
typedef struct
{ // runtime state of perf_event buffer
@@ -601,11 +602,17 @@ static void
init_perf_event (struct perf_event_attr *hw, uint64_t event, uint64_t period,
Hwcentry *hwce)
{
- memset (hw, 0, sizeof (struct perf_event_attr));
- hw->size = sizeof (struct perf_event_attr);
+ static struct perf_event_attr perf_event_attr_0 = {
+ .size = sizeof (struct perf_event_attr),
+ .disabled = 1, /* off by default */
+ .exclude_hv = 1,
+ .wakeup_events = 1 /* wakeup every n events */
+ };
+ *hw = perf_event_attr_0;
if (hwce && hwce->use_perf_event_type)
{
hw->config = hwce->config;
+ hw->config1 = hwce->config1;
hw->type = hwce->type;
}
else
@@ -632,13 +639,10 @@ init_perf_event (struct perf_event_attr *hw, uint64_t event, uint64_t period,
// PERF_FORMAT_ID |
// PERF_FORMAT_GROUP |
0;
- hw->disabled = 1; /* off by default */
// Note: the following override config.priv bits!
hw->exclude_user = (event & (1 << 16)) == 0; /* don't count user */
hw->exclude_kernel = (event & (1 << 17)) == 0; /* ditto kernel */
- hw->exclude_hv = 1; /* ditto hypervisor */
- hw->wakeup_events = 1; /* wakeup every n events */
dump_perf_event_attr (hw);
}
@@ -773,8 +777,7 @@ hdrv_pcl_internal_open ()
}
// determine if PCL is available
- perf_event_def_t tmp_event_def;
- memset (&tmp_event_def, 0, sizeof (tmp_event_def));
+ perf_event_def_t tmp_event_def = event_def_0;
struct perf_event_attr *pe_attr = &tmp_event_def.hw;
init_perf_event (pe_attr, 0, 0, NULL);
pe_attr->type = PERF_TYPE_HARDWARE; // specify abstracted HW event
@@ -1186,11 +1189,10 @@ hwcdrv_create_counters (unsigned hwcdef_cnt, Hwcentry *hwcdef)
for (unsigned idx = 0; idx < hwcdef_cnt; idx++)
{
perf_event_def_t *glb_event_def = &global_perf_event_def[idx];
- memset (glb_event_def, 0, sizeof (perf_event_def_t));
+ *glb_event_def = event_def_0;
unsigned int pmc_sel;
eventsel_t evntsel;
- if (hwcfuncs_get_x86_eventsel (hwcdef[idx].reg_num,
- hwcdef[idx].int_name, &evntsel, &pmc_sel))
+ if (hwcfuncs_get_x86_eventsel (hwcdef + idx, &evntsel, &pmc_sel))
{
TprintfT (0, "hwcdrv: ERROR: hwcfuncs_get_x86_eventsel() failed\n");
return HWCFUNCS_ERROR_HWCARGS;
diff --git a/gprofng/common/hwcentry.h b/gprofng/common/hwcentry.h
index 946356e..b2ab8b9 100644
--- a/gprofng/common/hwcentry.h
+++ b/gprofng/common/hwcentry.h
@@ -118,6 +118,7 @@ extern "C"
unsigned int use_perf_event_type : 16; /* Set 1 to use two fields below */
unsigned int type : 16; /* Type of perf_event_attr */
long long config; /* perf_event_type -specific configuration */
+ long long config1; /* perf_event_type -specific configuration */
int sort_order; /* "tag" to associate experiment record with HWC def */
hrtime_t min_time; /* target minimum time between overflow events. 0 is off. See HWCTIME_* macros */
hrtime_t min_time_default; /* if min_time==HWCTIME_AUTO, use this value instead. 0 is off. */
diff --git a/gprofng/common/hwcfuncs.c b/gprofng/common/hwcfuncs.c
index e6448a9..750db10 100644
--- a/gprofng/common/hwcfuncs.c
+++ b/gprofng/common/hwcfuncs.c
@@ -293,6 +293,12 @@ process_data_descriptor (const char *defstring)
err = HWCFUNCS_ERROR_HWCARGS;
break;
}
+ hwcdef[idx].config1 = strtol (dsp, &dsp, 0);
+ if (*dsp++ != ':')
+ {
+ err = HWCFUNCS_ERROR_HWCARGS;
+ break;
+ }
/* name */
name = dsp;
diff --git a/gprofng/common/hwcfuncs.h b/gprofng/common/hwcfuncs.h
index f44b9a7..361a721 100644
--- a/gprofng/common/hwcfuncs.h
+++ b/gprofng/common/hwcfuncs.h
@@ -96,7 +96,6 @@ typedef struct { /* supplementary data fields */
#define HW_INTERVAL_MAX UINT64_MAX
#define HW_INTERVAL_PRESET(x) (HW_INTERVAL_MAX - ((uint64_t)(x) - 1))
-#define HW_INTERVAL_TYPE(x) ((uint64_t) (x)
/* parsing */
#define HWCFUNCS_MAX_ATTRS 20
diff --git a/gprofng/common/hwctable.c b/gprofng/common/hwctable.c
index b3ccb36..0baf63b 100644
--- a/gprofng/common/hwctable.c
+++ b/gprofng/common/hwctable.c
@@ -1304,6 +1304,7 @@ static Hwcentry generic_list[] = {
#include "hwc_amd_zen3.h"
#include "hwc_amd_zen4.h"
+#include "hwc_intel_icelake.h"
/* structure defining the counters for a CPU type */
typedef struct
@@ -1343,6 +1344,7 @@ static cpu_list_t cputabs[] = {
"insts,,cycles,,l3m,,dtlbm", 0}},
{CPC_INTEL_SKYLAKE, intelSkylakeList, {"insts,,cycles,,+l2m_latency,,dtlbm_stall",
"insts,,cycles,,l2m_stall,,dtlbm_stall", 0}},
+ {CPC_INTEL_ICELAKE, intelIcelakeList, {"insts,,cycles,,dTLB-load-misses", 0}},
{CPC_INTEL_UNKNOWN, intelLinuxUnknown, {"cycles,,insts,,llm",
"user_time,,system_time,,cycles,,insts,,llm", 0}},
{CPC_INTEL_ATOM, intelAtomList, {"insts", 0}},
@@ -1827,7 +1829,7 @@ setup_cpc_general (int skip_hwc_test)
hwcdrv->hwcdrv_get_info (&cpcx_cpuver, &cpcx_cciname, &cpcx_npics,
&cpcx_docref, &cpcx_support_bitmask);
- /* Fix cpcx_cpuver for new Zen machines */
+ /* Fix cpcx_cpuver for new Zen and Intel machines */
cpu_info_t *cpu_p = read_cpuinfo ();
if (strcmp (cpu_p->cpu_vendorstr, "AuthenticAMD") == 0)
{
@@ -1846,6 +1848,14 @@ setup_cpc_general (int skip_hwc_test)
break;
}
}
+ else if (strcmp (cpu_p->cpu_vendorstr, "GenuineIntel") == 0)
+ {
+ if (cpu_p->cpu_family == 6)
+ {
+ if (cpu_p->cpu_model == 106)
+ cpcx_cpuver = CPC_INTEL_ICELAKE;
+ }
+ }
#ifdef DISALLOW_PENTIUM_PRO_MMX_7007575
if (cpcx_cpuver == CPC_PENTIUM_PRO_MMX)
diff --git a/gprofng/configure b/gprofng/configure
index 9805535..34dbcbe 100755
--- a/gprofng/configure
+++ b/gprofng/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprofng 2.42.50.
+# Generated by GNU Autoconf 2.69 for gprofng 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gprofng'
PACKAGE_TARNAME='gprofng'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='gprofng 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='gprofng 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1362,7 +1362,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gprofng 2.42.50 to adapt to many kinds of systems.
+\`configure' configures gprofng 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1433,7 +1433,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gprofng 2.42.50:";;
+ short | recursive ) echo "Configuration of gprofng 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1547,7 +1547,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gprofng configure 2.42.50
+gprofng configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2079,7 +2079,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gprofng $as_me 2.42.50, which was
+It was created by gprofng $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3052,7 +3052,7 @@ fi
# Define the identity of the package.
PACKAGE='gprofng'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -15789,6 +15789,10 @@ build_src=
build_src=true
build_collector=true
;;
+ riscv*-*-linux*)
+ build_src=true
+ build_collector=true
+ ;;
esac
# Check whether --enable-gprofng-tools was given.
if test "${enable_gprofng_tools+set}" = set; then :
@@ -17558,7 +17562,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gprofng $as_me 2.42.50, which was
+This file was extended by gprofng $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -17624,7 +17628,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gprofng config.status 2.42.50
+gprofng config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/gprofng/configure.ac b/gprofng/configure.ac
index 691d6c9..5a4013c 100644
--- a/gprofng/configure.ac
+++ b/gprofng/configure.ac
@@ -63,6 +63,10 @@ build_src=
build_src=true
build_collector=true
;;
+ riscv*-*-linux*)
+ build_src=true
+ build_collector=true
+ ;;
esac
AC_ARG_ENABLE(gprofng-tools,
AS_HELP_STRING([--disable-gprofng-tools], [do not build gprofng/src directory]),
diff --git a/gprofng/doc/version.texi b/gprofng/doc/version.texi
index 9e8cf95..eb39181 100644
--- a/gprofng/doc/version.texi
+++ b/gprofng/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 4 January 2024
-@set UPDATED-MONTH January 2024
-@set EDITION 2.42.50
-@set VERSION 2.42.50
+@set UPDATED 19 July 2024
+@set UPDATED-MONTH July 2024
+@set EDITION 2.43.50
+@set VERSION 2.43.50
diff --git a/gprofng/libcollector/configure b/gprofng/libcollector/configure
index 9e47af8..f346fa1 100755
--- a/gprofng/libcollector/configure
+++ b/gprofng/libcollector/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gprofng 2.42.50.
+# Generated by GNU Autoconf 2.69 for gprofng 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='gprofng'
PACKAGE_TARNAME='gprofng'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='gprofng 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='gprofng 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1324,7 +1324,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gprofng 2.42.50 to adapt to many kinds of systems.
+\`configure' configures gprofng 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1395,7 +1395,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gprofng 2.42.50:";;
+ short | recursive ) echo "Configuration of gprofng 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1504,7 +1504,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gprofng configure 2.42.50
+gprofng configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1990,7 +1990,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gprofng $as_me 2.42.50, which was
+It was created by gprofng $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2967,7 +2967,7 @@ fi
# Define the identity of the package.
PACKAGE='gprofng'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -16136,7 +16136,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gprofng $as_me 2.42.50, which was
+This file was extended by gprofng $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16202,7 +16202,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-gprofng config.status 2.42.50
+gprofng config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/gprofng/libcollector/hwprofile.h b/gprofng/libcollector/hwprofile.h
index b1ddd1c..9d0a309 100644
--- a/gprofng/libcollector/hwprofile.h
+++ b/gprofng/libcollector/hwprofile.h
@@ -84,6 +84,16 @@ typedef struct MHwcntr_packet
(ucp)->uc_mcontext.regs[CONTEXT_PC] = (greg_t)(funcp); \
(ucp)->uc_mcontext.regs[CONTEXT_SP] = 0; \
(ucp)->uc_mcontext.regs[CONTEXT_FP] = 0;
+
+#elif ARCH(RISCV)
+#define CONTEXT_PC REG_PC
+#define CONTEXT_FP 8
+#define CONTEXT_SP 2
+#define SETFUNCTIONCONTEXT(ucp,funcp) \
+ (ucp)->uc_mcontext.__gregs[CONTEXT_PC] = (greg_t)(funcp); \
+ (ucp)->uc_mcontext.__gregs[CONTEXT_FP] = 0; \
+ (ucp)->uc_mcontext.__gregs[CONTEXT_SP] = 0;
+
#endif /* ARCH() */
#endif
diff --git a/gprofng/libcollector/libcol_util.c b/gprofng/libcollector/libcol_util.c
index 15ba24d..1e58cf4 100644
--- a/gprofng/libcollector/libcol_util.c
+++ b/gprofng/libcollector/libcol_util.c
@@ -1459,7 +1459,10 @@ __collector_util_init ()
else if ((ptr = dlvsym (libc, "fopen", "GLIBC_2.0")) != NULL)
__collector_util_funcs.fopen = ptr;
else
+ {
ptr = dlsym (libc, "fopen");
+ if(ptr) __collector_util_funcs.fopen = ptr;
+ }
if (__collector_util_funcs.fopen == NULL)
{
CALL_UTIL (fprintf)(stderr, "COL_ERROR_UTIL_INIT fopen: %s\n", dlerror ());
@@ -1475,7 +1478,10 @@ __collector_util_init ()
else if ((ptr = dlvsym (libc, "popen", "GLIBC_2.0")) != NULL)
__collector_util_funcs.popen = ptr;
else
+ {
ptr = dlsym (libc, "popen");
+ if(ptr) __collector_util_funcs.popen = ptr;
+ }
if (__collector_util_funcs.popen == NULL)
{
CALL_UTIL (fprintf)(stderr, "COL_ERROR_UTIL_INIT popen: %s\n", dlerror ());
@@ -1491,7 +1497,10 @@ __collector_util_init ()
else if ((ptr = dlvsym (libc, "fclose", "GLIBC_2.0")) != NULL)
__collector_util_funcs.fclose = ptr;
else
+ {
ptr = dlsym (libc, "fclose");
+ if(ptr) __collector_util_funcs.fclose = ptr;
+ }
if (__collector_util_funcs.fclose == NULL)
{
CALL_UTIL (fprintf)(stderr, "COL_ERROR_UTIL_INIT fclose: %s\n", dlerror ());
diff --git a/gprofng/libcollector/libcol_util.h b/gprofng/libcollector/libcol_util.h
index 2eeeaee..c8ec83f 100644
--- a/gprofng/libcollector/libcol_util.h
+++ b/gprofng/libcollector/libcol_util.h
@@ -270,7 +270,7 @@ __collector_cas_ptr (void *mem, void *cmp, void *new)
return r;
}
-#elif ARCH(Aarch64)
+#elif ARCH(Aarch64) || ARCH(RISCV)
static __attribute__ ((always_inline)) inline uint32_t
__collector_inc_32 (volatile uint32_t *ptr)
{
diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
index e62da04..55fa2e9 100644
--- a/gprofng/libcollector/unwind.c
+++ b/gprofng/libcollector/unwind.c
@@ -180,6 +180,11 @@ memory_error_func (int status ATTRIBUTE_UNUSED, bfd_vma addr ATTRIBUTE_UNUSED,
#define GET_PC(ctx) (((ucontext_t*)ctx)->uc_mcontext.regs[15])
#define GET_SP(ctx) (((ucontext_t*)ctx)->uc_mcontext.regs[13])
#define GET_FP(ctx) (((ucontext_t*)ctx)->uc_mcontext.regs[14])
+
+#elif ARCH(RISCV)
+#define GET_PC(ctx) (((ucontext_t*)ctx)->uc_mcontext.__gregs[REG_PC])
+#define GET_SP(ctx) (((ucontext_t*)ctx)->uc_mcontext.__gregs[2])
+#define GET_FP(ctx) (((ucontext_t*)ctx)->uc_mcontext.__gregs[8])
#endif /* ARCH() */
/*
@@ -234,6 +239,12 @@ typedef uint64_t __u64;
context->uc_mcontext.sp = (__u64) __builtin_frame_address(0); \
}
+#elif ARCH(RISCV)
+#define FILL_CONTEXT(context) \
+ { CALL_UTIL(getcontext)(context); \
+ context->uc_mcontext.__gregs[2] = (uint64_t) __builtin_frame_address(0); \
+ }
+
#endif /* ARCH() */
static int
diff --git a/gprofng/src/DbeSession.cc b/gprofng/src/DbeSession.cc
index 2032909..a6808d8 100644
--- a/gprofng/src/DbeSession.cc
+++ b/gprofng/src/DbeSession.cc
@@ -94,6 +94,8 @@ Platform_t DbeSession::platform =
Sparc;
#elif ARCH(Aarch64)
Aarch64;
+#elif ARCH(RISCV)
+ RISCV;
#else // ARCH(Intel)
Intel;
#endif
diff --git a/gprofng/src/Disasm.cc b/gprofng/src/Disasm.cc
index 1396e4f..e41bf67 100644
--- a/gprofng/src/Disasm.cc
+++ b/gprofng/src/Disasm.cc
@@ -208,6 +208,7 @@ Disasm::disasm_open ()
case Amd64:
need_swap_endian = (DbeSession::platform == Sparc);
break;
+ case RISCV:
case Sparcv8plus:
case Sparcv9:
case Sparc:
@@ -246,6 +247,7 @@ Disasm::disasm_open ()
dis_info.arch = bfd_arch_i386;
dis_info.mach = bfd_mach_x86_64;
break;
+ case RISCV:
case Sparcv8plus:
case Sparcv9:
case Sparc:
diff --git a/gprofng/src/Experiment.cc b/gprofng/src/Experiment.cc
index 02a24eb..a1f78fc 100644
--- a/gprofng/src/Experiment.cc
+++ b/gprofng/src/Experiment.cc
@@ -542,6 +542,8 @@ Experiment::ExperimentHandler::startElement (char*, char*, char *qName, Attribut
exp->platform = Intel;
else if (strcmp (str, "aarch64") == 0)
exp->platform = Aarch64;
+ else if (strcmp (str, "riscv64") == 0)
+ exp->platform = RISCV;
else
exp->platform = Sparc;
exp->need_swap_endian = (DbeSession::platform == Sparc) ?
diff --git a/gprofng/src/checks.cc b/gprofng/src/checks.cc
index 8392bbe..4fe850d 100644
--- a/gprofng/src/checks.cc
+++ b/gprofng/src/checks.cc
@@ -332,6 +332,10 @@ collect::check_executable_arch (Elf *elf)
case EM_AARCH64:
is_64 = true;
break;
+#elif ARCH(RISCV)
+ case EM_RISCV:
+ is_64 = true;
+ break;
#endif
default:
return EXEC_ELF_ARCH;
diff --git a/gprofng/src/collctrl.cc b/gprofng/src/collctrl.cc
index 7c0219b..ece01d1 100644
--- a/gprofng/src/collctrl.cc
+++ b/gprofng/src/collctrl.cc
@@ -91,6 +91,9 @@ read_cpuinfo ()
#if defined(__aarch64__)
asm volatile("mrs %0, cntfrq_el0" : "=r" (cpu_info.cpu_clk_freq));
+#elif defined(__riscv)
+ // Set 1000 MHz for minimal support RISC-V, will fix with a better method to get cpu clock frequency.
+ cpu_info.cpu_clk_freq = 1000;
#endif
// Read /proc/cpuinfo to get CPU info and clock rate
@@ -106,7 +109,7 @@ read_cpuinfo ()
cpu_info.cpu_clk_freq = read_int (temp + 9);
else if (strncmp (temp, "cpu family", 10) == 0)
cpu_info.cpu_family = read_int (temp + 10);
- else if (strncmp (temp, "vendor_id", 9) == 0)
+ else if ((strncmp (temp, "vendor_id", 9) || strncmp (temp, "mvendorid", 9)) == 0)
{
if (cpu_info.cpu_vendorstr == NULL)
read_str (temp + 9, &cpu_info.cpu_vendorstr);
@@ -1688,8 +1691,9 @@ Coll_Ctrl::build_data_desc ()
min_time = h->min_time_default;
if (ii > 0)
sb.append (',');
- sb.appendf ("%d:%d:%lld:%s:%s:%lld:%d:m%lld:%d:%d:0x%x",
+ sb.appendf ("%d:%d:%lld:%lld:%s:%s:%lld:%d:m%lld:%d:%d:0x%x",
h->use_perf_event_type, h->type, (long long) h->config,
+ (long long) h->config1,
strcmp (h->name, h->int_name) ? h->name : "",
h->int_name, (long long) h->reg_num, h->val,
(long long) min_time, ii, /*tag*/ h->timecvt, h->memop);
diff --git a/gprofng/src/dbe_types.h b/gprofng/src/dbe_types.h
index dd97adc..430922a 100644
--- a/gprofng/src/dbe_types.h
+++ b/gprofng/src/dbe_types.h
@@ -42,7 +42,8 @@ enum Platform_t
Sparcv8plus,
Java,
Amd64,
- Aarch64
+ Aarch64,
+ RISCV
};
enum WSize_t
diff --git a/gprofng/src/hwc_intel_icelake.h b/gprofng/src/hwc_intel_icelake.h
new file mode 100644
index 0000000..46f4ac5
--- /dev/null
+++ b/gprofng/src/hwc_intel_icelake.h
@@ -0,0 +1,1171 @@
+/* Copyright (C) 2024 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 _HWC_INTEL_ICELAKE_H
+#define _HWC_INTEL_ICELAKE_H
+
+#define SH(val, n) (((unsigned long long) (val)) << n)
+#define I(nm, event, umask, edge, cmask, inv, \
+ offcore_rsp, ldlat, frontend, period, mtr) \
+ INIT_HWC(nm, mtr, SH(event, 0) | SH(umask, 8) | SH(edge, 18) \
+ | SH(cmask, 24) | SH(inv, 23), PERF_TYPE_RAW), \
+ .config1 = SH(offcore_rsp, 0) | SH(ldlat, 0) | SH(frontend, 0), \
+ .val = period
+
+static Hwcentry intelIcelakeList[] = {
+ HWC_GENERIC
+
+/* cache: */
+ { I("l1d.replacement", 0x51, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts the number of cache lines replaced in L1 data cache")) },
+ { I("l1d_pend_miss.fb_full", 0x48, 0x2, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Number of cycles a demand request has waited due to L1D Fill Buffer"
+ " (FB) unavailability")) },
+ { I("l1d_pend_miss.fb_full_periods", 0x48, 0x2, 0x1, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Number of phases a demand request has waited due to L1D Fill Buffer"
+ " (FB) unavailability")) },
+ { I("l1d_pend_miss.l2_stall", 0x48, 0x4, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Number of cycles a demand request has waited due to L1D due to lack of"
+ " L2 resources")) },
+ { I("l1d_pend_miss.pending", 0x48, 0x1, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Number of L1D misses that are outstanding")) },
+ { I("l1d_pend_miss.pending_cycles", 0x48, 0x1, 0, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles with L1D load Misses outstanding")) },
+ { I("l2_lines_in.all", 0xf1, 0x1f, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("L2 cache lines filling L2")) },
+ { I("l2_lines_out.non_silent", 0xf2, 0x2, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Cache lines that are evicted by L2 cache when triggered by an L2 cache"
+ " fill")) },
+ { I("l2_lines_out.silent", 0xf2, 0x1, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Non-modified cache lines that are silently dropped by L2 cache when"
+ " triggered by an L2 cache fill")) },
+ { I("l2_rqsts.all_code_rd", 0x24, 0xe4, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("L2 code requests")) },
+ { I("l2_rqsts.all_demand_data_rd", 0x24, 0xe1, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Demand Data Read requests")) },
+ { I("l2_rqsts.all_demand_miss", 0x24, 0x27, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Demand requests that miss L2 cache")) },
+ { I("l2_rqsts.all_rfo", 0x24, 0xe2, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("RFO requests to L2 cache")) },
+ { I("l2_rqsts.code_rd_hit", 0x24, 0xc4, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("L2 cache hits when fetching instructions, code reads")) },
+ { I("l2_rqsts.code_rd_miss", 0x24, 0x24, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("L2 cache misses when fetching instructions")) },
+ { I("l2_rqsts.demand_data_rd_hit", 0x24, 0xc1, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Demand Data Read requests that hit L2 cache")) },
+ { I("l2_rqsts.demand_data_rd_miss", 0x24, 0x21, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Demand Data Read miss L2, no rejects")) },
+ { I("l2_rqsts.rfo_hit", 0x24, 0xc2, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("RFO requests that hit L2 cache")) },
+ { I("l2_rqsts.rfo_miss", 0x24, 0x22, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("RFO requests that miss L2 cache")) },
+ { I("l2_rqsts.swpf_hit", 0x24, 0xc8, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("SW prefetch requests that hit L2 cache")) },
+ { I("l2_rqsts.swpf_miss", 0x24, 0x28, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("SW prefetch requests that miss L2 cache")) },
+ { I("l2_trans.l2_wb", 0xf0, 0x40, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("L2 writebacks that access L2 cache")) },
+ { I("longest_lat_cache.miss", 0x2e, 0x41, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Core-originated cacheable requests that missed L3 (Except hardware"
+ " prefetches to the L3)")) },
+ { I("longest_lat_cache.reference", 0x2e, 0x4f, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Core-originated cacheable requests that refer to L3 (Except hardware"
+ " prefetches to the L3)")) },
+ { I("mem_inst_retired.all_loads", 0xd0, 0x81, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Retired load instructions Supports address when precise (Precise"
+ " event)")) },
+ { I("mem_inst_retired.all_stores", 0xd0, 0x82, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Retired store instructions Supports address when precise (Precise"
+ " event)")) },
+ { I("mem_inst_retired.any", 0xd0, 0x83, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("All retired memory instructions Supports address when precise (Precise"
+ " event)")) },
+ { I("mem_inst_retired.lock_loads", 0xd0, 0x21, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Retired load instructions with locked access Supports address when"
+ " precise (Precise event)")) },
+ { I("mem_inst_retired.split_loads", 0xd0, 0x41, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Retired load instructions that split across a cacheline boundary"
+ " Supports address when precise (Precise event)")) },
+ { I("mem_inst_retired.split_stores", 0xd0, 0x42, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Retired store instructions that split across a cacheline boundary"
+ " Supports address when precise (Precise event)")) },
+ { I("mem_inst_retired.stlb_miss_loads", 0xd0, 0x11, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Retired load instructions that miss the STLB Supports address when"
+ " precise (Precise event)")) },
+ { I("mem_inst_retired.stlb_miss_stores", 0xd0, 0x12, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Retired store instructions that miss the STLB Supports address when"
+ " precise (Precise event)")) },
+ { I("mem_load_l3_hit_retired.xsnp_fwd", 0xd2, 0x4, 0, 0, 0, 0, 0, 0, 0x4e2b,
+ STXT("Retired load instructions whose data sources were HitM responses from"
+ " shared L3 Supports address when precise (Precise event)")) },
+ { I("mem_load_l3_hit_retired.xsnp_miss", 0xd2, 0x1, 0, 0, 0, 0, 0, 0, 0x4e2b,
+ STXT("Retired load instructions whose data sources were L3 hit and"
+ " cross-core snoop missed in on-pkg core cache Supports address when"
+ " precise (Precise event)")) },
+ { I("mem_load_l3_hit_retired.xsnp_no_fwd", 0xd2, 0x2, 0, 0, 0, 0, 0, 0, 0x4e2b,
+ STXT("Retired load instructions whose data sources were L3 and cross-core"
+ " snoop hits in on-pkg core cache Supports address when precise (Precise"
+ " event)")) },
+ { I("mem_load_l3_hit_retired.xsnp_none", 0xd2, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Retired load instructions whose data sources were hits in L3 without"
+ " snoops required Supports address when precise (Precise event)")) },
+ { I("mem_load_l3_miss_retired.local_dram", 0xd3, 0x1, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Retired load instructions which data sources missed L3 but serviced"
+ " from local dram Supports address when precise (Precise event)")) },
+ { I("mem_load_l3_miss_retired.remote_dram", 0xd3, 0x2, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Retired load instructions which data sources missed L3 but serviced"
+ " from remote dram Supports address when precise (Precise event)")) },
+ { I("mem_load_l3_miss_retired.remote_fwd", 0xd3, 0x8, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Retired load instructions whose data sources was forwarded from a"
+ " remote cache Supports address when precise (Precise event)")) },
+ { I("mem_load_l3_miss_retired.remote_hitm", 0xd3, 0x4, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Retired load instructions whose data sources was remote HITM Supports"
+ " address when precise (Precise event)")) },
+ { I("mem_load_l3_miss_retired.remote_pmm", 0xd3, 0x10, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Retired load instructions with remote Intel(R) Optane(TM) DC"
+ " persistent memory as the data source where the data request missed all"
+ " caches Supports address when precise (Precise event)")) },
+ { I("mem_load_misc_retired.uc", 0xd4, 0x4, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Retired instructions with at least 1 uncacheable load or Bus Lock"
+ " Supports address when precise (Precise event)")) },
+ { I("mem_load_retired.fb_hit", 0xd1, 0x40, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Number of completed demand load requests that missed the L1, but hit"
+ " the FB(fill buffer), because a preceding miss to the same cacheline"
+ " initiated the line to be brought into L1, but data is not yet ready in"
+ " L1 Supports address when precise (Precise event)")) },
+ { I("mem_load_retired.l1_hit", 0xd1, 0x1, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Retired load instructions with L1 cache hits as data sources Supports"
+ " address when precise (Precise event)")) },
+ { I("mem_load_retired.l1_miss", 0xd1, 0x8, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Retired load instructions missed L1 cache as data sources Supports"
+ " address when precise (Precise event)")) },
+ { I("mem_load_retired.l2_hit", 0xd1, 0x2, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Retired load instructions with L2 cache hits as data sources Supports"
+ " address when precise (Precise event)")) },
+ { I("mem_load_retired.l2_miss", 0xd1, 0x10, 0, 0, 0, 0, 0, 0, 0x186b5,
+ STXT("Retired load instructions missed L2 cache as data sources Supports"
+ " address when precise (Precise event)")) },
+ { I("mem_load_retired.l3_hit", 0xd1, 0x4, 0, 0, 0, 0, 0, 0, 0x186b5,
+ STXT("Retired load instructions with L3 cache hits as data sources Supports"
+ " address when precise (Precise event)")) },
+ { I("mem_load_retired.l3_miss", 0xd1, 0x20, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("Retired load instructions missed L3 cache as data sources Supports"
+ " address when precise (Precise event)")) },
+ { I("mem_load_retired.local_pmm", 0xd1, 0x80, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Retired load instructions with local Intel(R) Optane(TM) DC persistent"
+ " memory as the data source where the data request missed all caches"
+ " Supports address when precise (Precise event)")) },
+ { I("ocr.demand_code_rd.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x3f803c0004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that hit in the L3 or were snooped from another core's caches on the"
+ " same socket")) },
+ { I("ocr.demand_code_rd.l3_hit.snoop_hitm", 0xb7, 0x1, 0, 0, 0, 0x10003c0004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that resulted in a snoop hit a modified line in another core's caches"
+ " which forwarded the data")) },
+ { I("ocr.demand_code_rd.snc_cache.hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x808000004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that either hit a non-modified line in a distant L3 Cache or were"
+ " snooped from a distant core's L1/L2 caches on this socket when the"
+ " system is in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.demand_code_rd.snc_cache.hitm", 0xb7, 0x1, 0, 0, 0, 0x1008000004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that hit a modified line in a distant L3 Cache or were snooped from a"
+ " distant core's L1/L2 caches on this socket when the system is in SNC"
+ " (sub-NUMA cluster) mode")) },
+ { I("ocr.demand_data_rd.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x3f803c0001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that hit in the L3 or were snooped from"
+ " another core's caches on the same socket")) },
+ { I("ocr.demand_data_rd.l3_hit.snoop_hit_no_fwd", 0xb7, 0x1, 0, 0, 0, 0x4003c0001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that resulted in a snoop that hit in another"
+ " core, which did not forward the data")) },
+ { I("ocr.demand_data_rd.l3_hit.snoop_hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x8003c0001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that resulted in a snoop hit in another"
+ " core's caches which forwarded the unmodified data to the requesting"
+ " core")) },
+ { I("ocr.demand_data_rd.l3_hit.snoop_hitm", 0xb7, 0x1, 0, 0, 0, 0x10003c0001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that resulted in a snoop hit a modified line"
+ " in another core's caches which forwarded the data")) },
+ { I("ocr.demand_data_rd.remote_cache.snoop_hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x830000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by a cache on a remote"
+ " socket where a snoop hit in another core's caches which forwarded the"
+ " unmodified data to the requesting core")) },
+ { I("ocr.demand_data_rd.remote_cache.snoop_hitm", 0xb7, 0x1, 0, 0, 0, 0x1030000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by a cache on a remote"
+ " socket where a snoop hit a modified line in another core's caches"
+ " which forwarded the data")) },
+ { I("ocr.demand_data_rd.snc_cache.hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x808000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that either hit a non-modified line in a"
+ " distant L3 Cache or were snooped from a distant core's L1/L2 caches on"
+ " this socket when the system is in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.demand_data_rd.snc_cache.hitm", 0xb7, 0x1, 0, 0, 0, 0x1008000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that hit a modified line in a distant L3"
+ " Cache or were snooped from a distant core's L1/L2 caches on this"
+ " socket when the system is in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.demand_rfo.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x3f803c0002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that hit in the L3 or"
+ " were snooped from another core's caches on the same socket")) },
+ { I("ocr.demand_rfo.l3_hit.snoop_hitm", 0xb7, 0x1, 0, 0, 0, 0x10003c0002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that resulted in a"
+ " snoop hit a modified line in another core's caches which forwarded the"
+ " data")) },
+ { I("ocr.demand_rfo.snc_cache.hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x808000002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that either hit a"
+ " non-modified line in a distant L3 Cache or were snooped from a distant"
+ " core's L1/L2 caches on this socket when the system is in SNC (sub-NUMA"
+ " cluster) mode")) },
+ { I("ocr.demand_rfo.snc_cache.hitm", 0xb7, 0x1, 0, 0, 0, 0x1008000002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that hit a modified"
+ " line in a distant L3 Cache or were snooped from a distant core's L1/L2"
+ " caches on this socket when the system is in SNC (sub-NUMA cluster)"
+ " mode")) },
+ { I("ocr.hwpf_l1d_and_swpf.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x3f803c0400, 0, 0, 0x186a3,
+ STXT("Counts L1 data cache prefetch requests and software prefetches (except"
+ " PREFETCHW) that hit in the L3 or were snooped from another core's"
+ " caches on the same socket")) },
+ { I("ocr.hwpf_l3.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x80082380, 0, 0, 0x186a3,
+ STXT("Counts hardware prefetches to the L3 only that hit in the L3 or were"
+ " snooped from another core's caches on the same socket")) },
+ { I("ocr.prefetches.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x3f803c27f0, 0, 0, 0x186a3,
+ STXT("Counts hardware and software prefetches to all cache levels that hit"
+ " in the L3 or were snooped from another core's caches on the same"
+ " socket")) },
+ { I("ocr.reads_to_core.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x3f003c0477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that hit in the"
+ " L3 or were snooped from another core's caches on the same socket")) },
+ { I("ocr.reads_to_core.l3_hit.snoop_hit_no_fwd", 0xb7, 0x1, 0, 0, 0, 0x4003c0477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that resulted in"
+ " a snoop that hit in another core, which did not forward the data")) },
+ { I("ocr.reads_to_core.l3_hit.snoop_hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x8003c0477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that resulted in"
+ " a snoop hit in another core's caches which forwarded the unmodified"
+ " data to the requesting core")) },
+ { I("ocr.reads_to_core.l3_hit.snoop_hitm", 0xb7, 0x1, 0, 0, 0, 0x10003c0477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that resulted in"
+ " a snoop hit a modified line in another core's caches which forwarded"
+ " the data")) },
+ { I("ocr.reads_to_core.remote_cache.snoop_fwd", 0xb7, 0x1, 0, 0, 0, 0x1830000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by a cache on a remote socket where a snoop was sent and data"
+ " was returned (Modified or Not Modified)")) },
+ { I("ocr.reads_to_core.remote_cache.snoop_hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x830000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by a cache on a remote socket where a snoop hit in another"
+ " core's caches which forwarded the unmodified data to the requesting"
+ " core")) },
+ { I("ocr.reads_to_core.remote_cache.snoop_hitm", 0xb7, 0x1, 0, 0, 0, 0x1030000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by a cache on a remote socket where a snoop hit a modified"
+ " line in another core's caches which forwarded the data")) },
+ { I("ocr.reads_to_core.snc_cache.hit_with_fwd", 0xb7, 0x1, 0, 0, 0, 0x808000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that either hit a"
+ " non-modified line in a distant L3 Cache or were snooped from a distant"
+ " core's L1/L2 caches on this socket when the system is in SNC (sub-NUMA"
+ " cluster) mode")) },
+ { I("ocr.reads_to_core.snc_cache.hitm", 0xb7, 0x1, 0, 0, 0, 0x1008000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that hit a"
+ " modified line in a distant L3 Cache or were snooped from a distant"
+ " core's L1/L2 caches on this socket when the system is in SNC (sub-NUMA"
+ " cluster) mode")) },
+ { I("ocr.streaming_wr.l3_hit", 0xb7, 0x1, 0, 0, 0, 0x80080800, 0, 0, 0x186a3,
+ STXT("Counts streaming stores that hit in the L3 or were snooped from"
+ " another core's caches on the same socket")) },
+ { I("offcore_requests.all_data_rd", 0xb0, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Demand and prefetch data reads")) },
+ { I("offcore_requests.all_requests", 0xb0, 0x80, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts memory transactions sent to the uncore")) },
+ { I("offcore_requests.demand_code_rd", 0xb0, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts cacheable and non-cacheable code reads to the core")) },
+ { I("offcore_requests.demand_data_rd", 0xb0, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Demand Data Read requests sent to uncore")) },
+ { I("offcore_requests.demand_rfo", 0xb0, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Demand RFO requests including regular RFOs, locks, ItoM")) },
+ { I("offcore_requests_outstanding.all_data_rd", 0x60, 0x8, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("For every cycle, increments by the number of outstanding data read"
+ " requests pending")) },
+ { I("offcore_requests_outstanding.cycles_with_data_rd", 0x60, 0x8, 0, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles where at least 1 outstanding data read request is pending")) },
+ { I("offcore_requests_outstanding.cycles_with_demand_code_rd", 0x60, 0x2, 0, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles with outstanding code read requests pending")) },
+ { I("offcore_requests_outstanding.cycles_with_demand_rfo", 0x60, 0x4, 0, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles where at least 1 outstanding Demand RFO request is pending")) },
+ { I("offcore_requests_outstanding.demand_code_rd", 0x60, 0x2, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("For every cycle, increments by the number of outstanding code read"
+ " requests pending")) },
+ { I("offcore_requests_outstanding.demand_data_rd", 0x60, 0x1, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("For every cycle, increments by the number of outstanding demand data"
+ " read requests pending")) },
+ { I("sq_misc.bus_lock", 0xf4, 0x10, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts bus locks, accounts for cache line split locks and UC locks")) },
+ { I("sq_misc.sq_full", 0xf4, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Cycles the queue waiting for offcore responses is full")) },
+ { I("sw_prefetch_access.nta", 0x32, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of PREFETCHNTA instructions executed")) },
+ { I("sw_prefetch_access.prefetchw", 0x32, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of PREFETCHW instructions executed")) },
+ { I("sw_prefetch_access.t0", 0x32, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of PREFETCHT0 instructions executed")) },
+ { I("sw_prefetch_access.t1_t2", 0x32, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of PREFETCHT1 or PREFETCHT2 instructions executed")) },
+/* floating point: */
+ { I("assists.fp", 0xc1, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts all microcode FP assists")) },
+ { I("fp_arith_inst_retired.128b_packed_double", 0xc7, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts number of SSE/AVX computational 128-bit packed double precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 2 computation operations,"
+ " one for each element. Applies to SSE* and AVX* packed double precision"
+ " floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX"
+ " SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice"
+ " as they perform 2 calculations per element")) },
+ { I("fp_arith_inst_retired.128b_packed_single", 0xc7, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of SSE/AVX computational 128-bit packed single precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 4 computation operations,"
+ " one for each element. Applies to SSE* and AVX* packed single precision"
+ " floating-point instructions: ADD SUB MUL DIV MIN MAX RCP14 RSQRT14"
+ " SQRT DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions count twice"
+ " as they perform 2 calculations per element")) },
+ { I("fp_arith_inst_retired.256b_packed_double", 0xc7, 0x10, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts number of SSE/AVX computational 256-bit packed double precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 4 computation operations,"
+ " one for each element. Applies to SSE* and AVX* packed double precision"
+ " floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX"
+ " SQRT FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they"
+ " perform 2 calculations per element")) },
+ { I("fp_arith_inst_retired.256b_packed_single", 0xc7, 0x20, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts number of SSE/AVX computational 256-bit packed single precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 8 computation operations,"
+ " one for each element. Applies to SSE* and AVX* packed single precision"
+ " floating-point instructions: ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX"
+ " SQRT RSQRT RCP DPP FM(N)ADD/SUB. DPP and FM(N)ADD/SUB instructions"
+ " count twice as they perform 2 calculations per element")) },
+ { I("fp_arith_inst_retired.4_flops", 0xc7, 0x18, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of SSE/AVX computational 128-bit packed single and 256-bit"
+ " packed double precision FP instructions retired; some instructions"
+ " will count twice as noted below. Each count represents 2 or/and 4"
+ " computation operations, 1 for each element. Applies to SSE* and AVX*"
+ " packed single precision and packed double precision FP instructions:"
+ " ADD SUB HADD HSUB SUBADD MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP"
+ " FM(N)ADD/SUB. DPP and FM(N)ADD/SUB count twice as they perform 2"
+ " calculations per element")) },
+ { I("fp_arith_inst_retired.512b_packed_double", 0xc7, 0x40, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts number of SSE/AVX computational 512-bit packed double precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 8 computation operations,"
+ " one for each element. Applies to SSE* and AVX* packed double precision"
+ " floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT RSQRT14"
+ " RCP14 FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they"
+ " perform 2 calculations per element")) },
+ { I("fp_arith_inst_retired.512b_packed_single", 0xc7, 0x80, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts number of SSE/AVX computational 512-bit packed single precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 16 computation operations,"
+ " one for each element. Applies to SSE* and AVX* packed single precision"
+ " floating-point instructions: ADD SUB MUL DIV MIN MAX SQRT RSQRT14"
+ " RCP14 FM(N)ADD/SUB. FM(N)ADD/SUB instructions count twice as they"
+ " perform 2 calculations per element")) },
+ { I("fp_arith_inst_retired.8_flops", 0xc7, 0x60, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of SSE/AVX computational 256-bit packed single precision and"
+ " 512-bit packed double precision FP instructions retired; some"
+ " instructions will count twice as noted below. Each count represents 8"
+ " computation operations, 1 for each element. Applies to SSE* and AVX*"
+ " packed single precision and double precision FP instructions: ADD SUB"
+ " HADD HSUB SUBADD MUL DIV MIN MAX SQRT RSQRT RSQRT14 RCP RCP14 DPP"
+ " FM(N)ADD/SUB. DPP and FM(N)ADD/SUB count twice as they perform 2"
+ " calculations per element")) },
+ { I("fp_arith_inst_retired.scalar", 0xc7, 0x3, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Number of SSE/AVX computational scalar floating-point instructions"
+ " retired; some instructions will count twice as noted below. Applies to"
+ " SSE* and AVX* scalar, double and single precision floating-point: ADD"
+ " SUB MUL DIV MIN MAX RCP14 RSQRT14 SQRT DPP FM(N)ADD/SUB. DPP and"
+ " FM(N)ADD/SUB instructions count twice as they perform multiple"
+ " calculations per element")) },
+ { I("fp_arith_inst_retired.scalar_double", 0xc7, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts number of SSE/AVX computational scalar double precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 1 computational operation."
+ " Applies to SSE* and AVX* scalar double precision floating-point"
+ " instructions: ADD SUB MUL DIV MIN MAX SQRT FM(N)ADD/SUB. FM(N)ADD/SUB"
+ " instructions count twice as they perform 2 calculations per element")) },
+ { I("fp_arith_inst_retired.scalar_single", 0xc7, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts number of SSE/AVX computational scalar single precision"
+ " floating-point instructions retired; some instructions will count"
+ " twice as noted below. Each count represents 1 computational operation."
+ " Applies to SSE* and AVX* scalar single precision floating-point"
+ " instructions: ADD SUB MUL DIV MIN MAX SQRT RSQRT RCP FM(N)ADD/SUB."
+ " FM(N)ADD/SUB instructions count twice as they perform 2 calculations"
+ " per element")) },
+ { I("fp_arith_inst_retired.vector", 0xc7, 0xfc, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Number of any Vector retired FP arithmetic instructions")) },
+/* frontend: */
+ { I("baclears.any", 0xe6, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts the total number when the front end is resteered, mainly when"
+ " the BPU cannot provide a correct prediction and this is corrected by"
+ " other branch handling mechanisms at the front end")) },
+ { I("decode.lcp", 0x87, 0x1, 0, 0, 0, 0, 0, 0, 0x7a129,
+ STXT("Stalls caused by changing prefix length of the instruction. [This"
+ " event is alias to ILD_STALL.LCP]")) },
+ { I("dsb2mite_switches.count", 0xab, 0x2, 0x1, 0x1, 0, 0, 0, 0, 0x186a3,
+ STXT("Decode Stream Buffer (DSB)-to-MITE transitions count")) },
+ { I("dsb2mite_switches.penalty_cycles", 0xab, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("DSB-to-MITE switch true penalty cycles")) },
+ { I("frontend_retired.any_dsb_miss", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x1, 0x186a7,
+ STXT("Retired Instructions who experienced DSB miss (Precise event)")) },
+ { I("frontend_retired.dsb_miss", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x11, 0x186a7,
+ STXT("Retired Instructions who experienced a critical DSB miss (Precise"
+ " event)")) },
+ { I("frontend_retired.itlb_miss", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x14, 0x186a7,
+ STXT("Retired Instructions who experienced iTLB true miss (Precise event)")) },
+ { I("frontend_retired.l1i_miss", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x12, 0x186a7,
+ STXT("Retired Instructions who experienced Instruction L1 Cache true miss"
+ " (Precise event)")) },
+ { I("frontend_retired.l2_miss", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x13, 0x186a7,
+ STXT("Retired Instructions who experienced Instruction L2 Cache true miss"
+ " (Precise event)")) },
+ { I("frontend_retired.latency_ge_1", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x500106, 0x186a7,
+ STXT("Retired instructions after front-end starvation of at least 1 cycle"
+ " (Precise event)")) },
+ { I("frontend_retired.latency_ge_128", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x508006, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 128 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_16", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x501006, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 16 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_2", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x500206, 0x186a7,
+ STXT("Retired instructions after front-end starvation of at least 2 cycles"
+ " (Precise event)")) },
+ { I("frontend_retired.latency_ge_256", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x510006, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 256 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_2_bubbles_ge_1", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x100206, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end had at least 1 bubble-slot for a period of 2 cycles which"
+ " was not interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_32", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x502006, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 32 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_4", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x500406, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 4 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_512", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x520006, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 512 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_64", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x504006, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 64 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.latency_ge_8", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x500806, 0x186a7,
+ STXT("Retired instructions that are fetched after an interval where the"
+ " front-end delivered no uops for a period of 8 cycles which was not"
+ " interrupted by a back-end stall (Precise event)")) },
+ { I("frontend_retired.stlb_miss", 0xc6, 0x1, 0, 0, 0, 0, 0, 0x15, 0x186a7,
+ STXT("Retired Instructions who experienced STLB (2nd level TLB) true miss"
+ " (Precise event)")) },
+ { I("icache_16b.ifdata_stall", 0x80, 0x4, 0, 0, 0, 0, 0, 0, 0x7a129,
+ STXT("Cycles where a code fetch is stalled due to L1 instruction cache miss."
+ " [This event is alias to ICACHE_DATA.STALLS]")) },
+ { I("icache_64b.iftag_hit", 0x83, 0x1, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Instruction fetch tag lookups that hit in the instruction cache (L1I)."
+ " Counts at 64-byte cache-line granularity")) },
+ { I("icache_64b.iftag_miss", 0x83, 0x2, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Instruction fetch tag lookups that miss in the instruction cache"
+ " (L1I). Counts at 64-byte cache-line granularity")) },
+ { I("icache_64b.iftag_stall", 0x83, 0x4, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Cycles where a code fetch is stalled due to L1 instruction cache tag"
+ " miss. [This event is alias to ICACHE_TAG.STALLS]")) },
+ { I("icache_data.stalls", 0x80, 0x4, 0, 0, 0, 0, 0, 0, 0x7a129,
+ STXT("Cycles where a code fetch is stalled due to L1 instruction cache miss."
+ " [This event is alias to ICACHE_16B.IFDATA_STALL]")) },
+ { I("icache_tag.stalls", 0x83, 0x4, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Cycles where a code fetch is stalled due to L1 instruction cache tag"
+ " miss. [This event is alias to ICACHE_64B.IFTAG_STALL]")) },
+ { I("idq.dsb_cycles_any", 0x79, 0x8, 0, 0x1, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles Decode Stream Buffer (DSB) is delivering any Uop")) },
+ { I("idq.dsb_cycles_ok", 0x79, 0x8, 0, 0x5, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles DSB is delivering optimal number of Uops")) },
+ { I("idq.dsb_uops", 0x79, 0x8, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Uops delivered to Instruction Decode Queue (IDQ) from the Decode"
+ " Stream Buffer (DSB) path")) },
+ { I("idq.mite_cycles_any", 0x79, 0x4, 0, 0x1, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles MITE is delivering any Uop")) },
+ { I("idq.mite_cycles_ok", 0x79, 0x4, 0, 0x5, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles MITE is delivering optimal number of Uops")) },
+ { I("idq.mite_uops", 0x79, 0x4, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Uops delivered to Instruction Decode Queue (IDQ) from MITE path")) },
+ { I("idq.ms_switches", 0x79, 0x30, 0x1, 0x1, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of switches from DSB or MITE to the MS")) },
+ { I("idq.ms_uops", 0x79, 0x30, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Uops delivered to IDQ while MS is busy")) },
+ { I("idq_uops_not_delivered.core", 0x9c, 0x1, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Uops not delivered by IDQ when backend of the machine is not stalled")) },
+ { I("idq_uops_not_delivered.cycles_0_uops_deliv.core", 0x9c, 0x1, 0, 0x5, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles when no uops are not delivered by the IDQ when backend of the"
+ " machine is not stalled")) },
+ { I("idq_uops_not_delivered.cycles_fe_was_ok", 0x9c, 0x1, 0, 0x1, 0x1, 0, 0, 0, 0xf4243,
+ STXT("Cycles when optimal number of uops was delivered to the back-end when"
+ " the back-end is not stalled")) },
+/* memory: */
+ { I("cycle_activity.stalls_l3_miss", 0xa3, 0x6, 0, 0x6, 0, 0, 0, 0, 0xf4243,
+ STXT("Execution stalls while L3 cache miss demand load is outstanding")) },
+ { I("machine_clears.memory_ordering", 0xc3, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of machine clears due to memory ordering conflicts")) },
+ { I("mem_trans_retired.load_latency_gt_128", 0xcd, 0x1, 0, 0, 0, 0, 0x80, 0, 0x3f1,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 128 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("mem_trans_retired.load_latency_gt_16", 0xcd, 0x1, 0, 0, 0, 0, 0x10, 0, 0x4e2b,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 16 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("mem_trans_retired.load_latency_gt_256", 0xcd, 0x1, 0, 0, 0, 0, 0x100, 0, 0x1f7,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 256 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("mem_trans_retired.load_latency_gt_32", 0xcd, 0x1, 0, 0, 0, 0, 0x20, 0, 0x186a7,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 32 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("mem_trans_retired.load_latency_gt_4", 0xcd, 0x1, 0, 0, 0, 0, 0x4, 0, 0x186a3,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 4 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("mem_trans_retired.load_latency_gt_512", 0xcd, 0x1, 0, 0, 0, 0, 0x200, 0, 0x65,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 512 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("mem_trans_retired.load_latency_gt_64", 0xcd, 0x1, 0, 0, 0, 0, 0x40, 0, 0x7d3,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 64 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("mem_trans_retired.load_latency_gt_8", 0xcd, 0x1, 0, 0, 0, 0, 0x8, 0, 0xc365,
+ STXT("Counts randomly selected loads when the latency from first dispatch to"
+ " completion is greater than 8 cycles Supports address when precise"
+ " (Must be precise)")) },
+ { I("ocr.demand_code_rd.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x3fbfc00004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that were not supplied by the local socket's L1, L2, or L3 caches")) },
+ { I("ocr.demand_code_rd.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x3f84400004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that were not supplied by the local socket's L1, L2, or L3 caches and"
+ " the cacheline is homed locally")) },
+ { I("ocr.demand_data_rd.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x3fbfc00001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were not supplied by the local socket's"
+ " L1, L2, or L3 caches")) },
+ { I("ocr.demand_data_rd.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x3f84400001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were not supplied by the local socket's"
+ " L1, L2, or L3 caches and the cacheline is homed locally")) },
+ { I("ocr.demand_rfo.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x3f3fc00002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were not supplied"
+ " by the local socket's L1, L2, or L3 caches")) },
+ { I("ocr.demand_rfo.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x3f04400002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were not supplied"
+ " by the local socket's L1, L2, or L3 caches and were supplied by the"
+ " local socket")) },
+ { I("ocr.hwpf_l1d_and_swpf.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x3fbfc00400, 0, 0, 0x186a3,
+ STXT("Counts L1 data cache prefetch requests and software prefetches (except"
+ " PREFETCHW) that were not supplied by the local socket's L1, L2, or L3"
+ " caches")) },
+ { I("ocr.hwpf_l1d_and_swpf.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x3f84400400, 0, 0, 0x186a3,
+ STXT("Counts L1 data cache prefetch requests and software prefetches (except"
+ " PREFETCHW) that were not supplied by the local socket's L1, L2, or L3"
+ " caches and the cacheline is homed locally")) },
+ { I("ocr.hwpf_l3.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x94002380, 0, 0, 0x186a3,
+ STXT("Counts hardware prefetches to the L3 only that missed the local"
+ " socket's L1, L2, and L3 caches")) },
+ { I("ocr.hwpf_l3.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x84002380, 0, 0, 0x186a3,
+ STXT("Counts hardware prefetches to the L3 only that were not supplied by"
+ " the local socket's L1, L2, or L3 caches and the cacheline is homed"
+ " locally")) },
+ { I("ocr.itom.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x84000002, 0, 0, 0x186a3,
+ STXT("Counts full cacheline writes (ItoM) that were not supplied by the"
+ " local socket's L1, L2, or L3 caches and the cacheline is homed locally")) },
+ { I("ocr.other.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x3fbfc08000, 0, 0, 0x186a3,
+ STXT("Counts miscellaneous requests, such as I/O and un-cacheable accesses"
+ " that were not supplied by the local socket's L1, L2, or L3 caches")) },
+ { I("ocr.other.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x3f84408000, 0, 0, 0x186a3,
+ STXT("Counts miscellaneous requests, such as I/O and un-cacheable accesses"
+ " that were not supplied by the local socket's L1, L2, or L3 caches and"
+ " the cacheline is homed locally")) },
+ { I("ocr.prefetches.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x3f844027f0, 0, 0, 0x186a3,
+ STXT("Counts hardware and software prefetches to all cache levels that were"
+ " not supplied by the local socket's L1, L2, or L3 caches and the"
+ " cacheline is homed locally")) },
+ { I("ocr.reads_to_core.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x3f3fc00477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were not"
+ " supplied by the local socket's L1, L2, or L3 caches")) },
+ { I("ocr.reads_to_core.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x3f04400477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were not"
+ " supplied by the local socket's L1, L2, or L3 caches and were supplied"
+ " by the local socket")) },
+ { I("ocr.reads_to_core.l3_miss_local_socket", 0xb7, 0x1, 0, 0, 0, 0x70cc00477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that missed the"
+ " L3 Cache and were supplied by the local socket (DRAM or PMM), whether"
+ " or not in Sub NUMA Cluster(SNC) Mode. In SNC Mode counts PMM or DRAM"
+ " accesses that are controlled by the close or distant SNC Cluster")) },
+ { I("ocr.streaming_wr.l3_miss", 0xb7, 0x1, 0, 0, 0, 0x94000800, 0, 0, 0x186a3,
+ STXT("Counts streaming stores that missed the local socket's L1, L2, and L3"
+ " caches")) },
+ { I("ocr.streaming_wr.l3_miss_local", 0xb7, 0x1, 0, 0, 0, 0x84000800, 0, 0, 0x186a3,
+ STXT("Counts streaming stores that were not supplied by the local socket's"
+ " L1, L2, or L3 caches and the cacheline is homed locally")) },
+ { I("offcore_requests.l3_miss_demand_data_rd", 0xb0, 0x10, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts demand data read requests that miss the L3 cache")) },
+ { I("offcore_requests_outstanding.cycles_with_l3_miss_demand_data_rd", 0x60, 0x10, 0, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles where at least one demand data read request known to have"
+ " missed the L3 cache is pending")) },
+ { I("offcore_requests_outstanding.l3_miss_demand_data_rd_ge_6", 0x60, 0x10, 0, 0x6, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles where the core is waiting on at least 6 outstanding demand data"
+ " read requests known to have missed the L3 cache")) },
+ { I("rtm_retired.aborted", 0xc9, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an RTM execution aborted")) },
+ { I("rtm_retired.aborted_events", 0xc9, 0x80, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an RTM execution aborted due to none of the previous 4"
+ " categories (e.g. interrupt)")) },
+ { I("rtm_retired.aborted_mem", 0xc9, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an RTM execution aborted due to various memory events"
+ " (e.g. read/write capacity and conflicts)")) },
+ { I("rtm_retired.aborted_memtype", 0xc9, 0x40, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an RTM execution aborted due to incompatible memory"
+ " type")) },
+ { I("rtm_retired.aborted_unfriendly", 0xc9, 0x20, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an RTM execution aborted due to HLE-unfriendly"
+ " instructions")) },
+ { I("rtm_retired.commit", 0xc9, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an RTM execution successfully committed")) },
+ { I("rtm_retired.start", 0xc9, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an RTM execution started")) },
+ { I("tx_exec.misc2", 0x5d, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts the number of times a class of instructions that may cause a"
+ " transactional abort was executed inside a transactional region")) },
+ { I("tx_exec.misc3", 0x5d, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times an instruction execution caused the transactional nest"
+ " count supported to be exceeded")) },
+ { I("tx_mem.abort_capacity_read", 0x54, 0x80, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Speculatively counts the number of TSX aborts due to a data capacity"
+ " limitation for transactional reads")) },
+ { I("tx_mem.abort_capacity_write", 0x54, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Speculatively counts the number of TSX aborts due to a data capacity"
+ " limitation for transactional writes")) },
+ { I("tx_mem.abort_conflict", 0x54, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of times a transactional abort was signaled due to a data"
+ " conflict on a transactionally accessed address")) },
+/* other: */
+ { I("core_power.lvl0_turbo_license", 0x28, 0x7, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Core cycles where the core was running in a manner where Turbo may be"
+ " clipped to the Non-AVX turbo schedule")) },
+ { I("core_power.lvl1_turbo_license", 0x28, 0x18, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Core cycles where the core was running in a manner where Turbo may be"
+ " clipped to the AVX2 turbo schedule")) },
+ { I("core_power.lvl2_turbo_license", 0x28, 0x20, 0, 0, 0, 0, 0, 0, 0x30d43,
+ STXT("Core cycles where the core was running in a manner where Turbo may be"
+ " clipped to the AVX512 turbo schedule")) },
+ { I("core_snoop_response.i_fwd_fe", 0xef, 0x20, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Hit snoop reply with data, line invalidated")) },
+ { I("core_snoop_response.i_fwd_m", 0xef, 0x10, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("HitM snoop reply with data, line invalidated")) },
+ { I("core_snoop_response.i_hit_fse", 0xef, 0x2, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Hit snoop reply without sending the data, line invalidated")) },
+ { I("core_snoop_response.miss", 0xef, 0x1, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Line not found snoop reply")) },
+ { I("core_snoop_response.s_fwd_fe", 0xef, 0x40, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Hit snoop reply with data, line kept in Shared state")) },
+ { I("core_snoop_response.s_fwd_m", 0xef, 0x8, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("HitM snoop reply with data, line kept in Shared state")) },
+ { I("core_snoop_response.s_hit_fse", 0xef, 0x4, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Hit snoop reply without sending the data, line kept in Shared state")) },
+ { I("ocr.demand_code_rd.any_response", 0xb7, 0x1, 0, 0, 0, 0x10004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that have any type of response")) },
+ { I("ocr.demand_code_rd.dram", 0xb7, 0x1, 0, 0, 0, 0x73c000004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that were supplied by DRAM")) },
+ { I("ocr.demand_code_rd.local_dram", 0xb7, 0x1, 0, 0, 0, 0x104000004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that were supplied by DRAM attached to this socket, unless in Sub NUMA"
+ " Cluster(SNC) Mode. In SNC Mode counts only those DRAM accesses that"
+ " are controlled by the close SNC Cluster")) },
+ { I("ocr.demand_code_rd.snc_dram", 0xb7, 0x1, 0, 0, 0, 0x708000004, 0, 0, 0x186a3,
+ STXT("Counts demand instruction fetches and L1 instruction cache prefetches"
+ " that were supplied by DRAM on a distant memory controller of this"
+ " socket when the system is in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.demand_data_rd.any_response", 0xb7, 0x1, 0, 0, 0, 0x10001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that have any type of response")) },
+ { I("ocr.demand_data_rd.dram", 0xb7, 0x1, 0, 0, 0, 0x73c000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by DRAM")) },
+ { I("ocr.demand_data_rd.local_dram", 0xb7, 0x1, 0, 0, 0, 0x104000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by DRAM attached to this"
+ " socket, unless in Sub NUMA Cluster(SNC) Mode. In SNC Mode counts only"
+ " those DRAM accesses that are controlled by the close SNC Cluster")) },
+ { I("ocr.demand_data_rd.local_pmm", 0xb7, 0x1, 0, 0, 0, 0x100400001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by PMM attached to this"
+ " socket, unless in Sub NUMA Cluster(SNC) Mode. In SNC Mode counts only"
+ " those PMM accesses that are controlled by the close SNC Cluster")) },
+ { I("ocr.demand_data_rd.pmm", 0xb7, 0x1, 0, 0, 0, 0x703c00001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by PMM")) },
+ { I("ocr.demand_data_rd.remote_dram", 0xb7, 0x1, 0, 0, 0, 0x730000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by DRAM attached to"
+ " another socket")) },
+ { I("ocr.demand_data_rd.remote_pmm", 0xb7, 0x1, 0, 0, 0, 0x703000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by PMM attached to another"
+ " socket")) },
+ { I("ocr.demand_data_rd.snc_dram", 0xb7, 0x1, 0, 0, 0, 0x708000001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by DRAM on a distant"
+ " memory controller of this socket when the system is in SNC (sub-NUMA"
+ " cluster) mode")) },
+ { I("ocr.demand_data_rd.snc_pmm", 0xb7, 0x1, 0, 0, 0, 0x700800001, 0, 0, 0x186a3,
+ STXT("Counts demand data reads that were supplied by PMM on a distant memory"
+ " controller of this socket when the system is in SNC (sub-NUMA cluster)"
+ " mode")) },
+ { I("ocr.demand_rfo.any_response", 0xb7, 0x1, 0, 0, 0, 0x3f3ffc0002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that have any type of"
+ " response")) },
+ { I("ocr.demand_rfo.dram", 0xb7, 0x1, 0, 0, 0, 0x73c000002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were supplied by"
+ " DRAM")) },
+ { I("ocr.demand_rfo.local_dram", 0xb7, 0x1, 0, 0, 0, 0x104000002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were supplied by"
+ " DRAM attached to this socket, unless in Sub NUMA Cluster(SNC) Mode. In"
+ " SNC Mode counts only those DRAM accesses that are controlled by the"
+ " close SNC Cluster")) },
+ { I("ocr.demand_rfo.local_pmm", 0xb7, 0x1, 0, 0, 0, 0x100400002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were supplied by"
+ " PMM attached to this socket, unless in Sub NUMA Cluster(SNC) Mode. In"
+ " SNC Mode counts only those PMM accesses that are controlled by the"
+ " close SNC Cluster")) },
+ { I("ocr.demand_rfo.pmm", 0xb7, 0x1, 0, 0, 0, 0x703c00002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were supplied by"
+ " PMM")) },
+ { I("ocr.demand_rfo.remote_pmm", 0xb7, 0x1, 0, 0, 0, 0x703000002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were supplied by"
+ " PMM attached to another socket")) },
+ { I("ocr.demand_rfo.snc_dram", 0xb7, 0x1, 0, 0, 0, 0x708000002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were supplied by"
+ " DRAM on a distant memory controller of this socket when the system is"
+ " in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.demand_rfo.snc_pmm", 0xb7, 0x1, 0, 0, 0, 0x700800002, 0, 0, 0x186a3,
+ STXT("Counts demand reads for ownership (RFO) requests and software"
+ " prefetches for exclusive ownership (PREFETCHW) that were supplied by"
+ " PMM on a distant memory controller of this socket when the system is"
+ " in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.hwpf_l1d_and_swpf.dram", 0xb7, 0x1, 0, 0, 0, 0x73c000400, 0, 0, 0x186a3,
+ STXT("Counts L1 data cache prefetch requests and software prefetches (except"
+ " PREFETCHW) that were supplied by DRAM")) },
+ { I("ocr.hwpf_l1d_and_swpf.local_dram", 0xb7, 0x1, 0, 0, 0, 0x104000400, 0, 0, 0x186a3,
+ STXT("Counts L1 data cache prefetch requests and software prefetches (except"
+ " PREFETCHW) that were supplied by DRAM attached to this socket, unless"
+ " in Sub NUMA Cluster(SNC) Mode. In SNC Mode counts only those DRAM"
+ " accesses that are controlled by the close SNC Cluster")) },
+ { I("ocr.hwpf_l2.any_response", 0xb7, 0x1, 0, 0, 0, 0x10070, 0, 0, 0x186a3,
+ STXT("Counts hardware prefetch (which bring data to L2) that have any type"
+ " of response")) },
+ { I("ocr.hwpf_l3.any_response", 0xb7, 0x1, 0, 0, 0, 0x12380, 0, 0, 0x186a3,
+ STXT("Counts hardware prefetches to the L3 only that have any type of"
+ " response")) },
+ { I("ocr.hwpf_l3.remote", 0xb7, 0x1, 0, 0, 0, 0x90002380, 0, 0, 0x186a3,
+ STXT("Counts hardware prefetches to the L3 only that were not supplied by"
+ " the local socket's L1, L2, or L3 caches and the cacheline was homed in"
+ " a remote socket")) },
+ { I("ocr.itom.remote", 0xb7, 0x1, 0, 0, 0, 0x90000002, 0, 0, 0x186a3,
+ STXT("Counts full cacheline writes (ItoM) that were not supplied by the"
+ " local socket's L1, L2, or L3 caches and the cacheline was homed in a"
+ " remote socket")) },
+ { I("ocr.other.any_response", 0xb7, 0x1, 0, 0, 0, 0x18000, 0, 0, 0x186a3,
+ STXT("Counts miscellaneous requests, such as I/O and un-cacheable accesses"
+ " that have any type of response")) },
+ { I("ocr.reads_to_core.any_response", 0xb7, 0x1, 0, 0, 0, 0x3f3ffc0477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that have any"
+ " type of response")) },
+ { I("ocr.reads_to_core.dram", 0xb7, 0x1, 0, 0, 0, 0x73c000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by DRAM")) },
+ { I("ocr.reads_to_core.local_dram", 0xb7, 0x1, 0, 0, 0, 0x104000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by DRAM attached to this socket, unless in Sub NUMA"
+ " Cluster(SNC) Mode. In SNC Mode counts only those DRAM accesses that"
+ " are controlled by the close SNC Cluster")) },
+ { I("ocr.reads_to_core.local_pmm", 0xb7, 0x1, 0, 0, 0, 0x100400477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by PMM attached to this socket, unless in Sub NUMA"
+ " Cluster(SNC) Mode. In SNC Mode counts only those PMM accesses that are"
+ " controlled by the close SNC Cluster")) },
+ { I("ocr.reads_to_core.local_socket_dram", 0xb7, 0x1, 0, 0, 0, 0x70c000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by DRAM attached to this socket, whether or not in Sub NUMA"
+ " Cluster(SNC) Mode. In SNC Mode counts DRAM accesses that are"
+ " controlled by the close or distant SNC Cluster")) },
+ { I("ocr.reads_to_core.local_socket_pmm", 0xb7, 0x1, 0, 0, 0, 0x700c00477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by PMM attached to this socket, whether or not in Sub NUMA"
+ " Cluster(SNC) Mode. In SNC Mode counts PMM accesses that are controlled"
+ " by the close or distant SNC Cluster")) },
+ { I("ocr.reads_to_core.remote", 0xb7, 0x1, 0, 0, 0, 0x3f33000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were not"
+ " supplied by the local socket's L1, L2, or L3 caches and were supplied"
+ " by a remote socket")) },
+ { I("ocr.reads_to_core.remote_dram", 0xb7, 0x1, 0, 0, 0, 0x730000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by DRAM attached to another socket")) },
+ { I("ocr.reads_to_core.remote_memory", 0xb7, 0x1, 0, 0, 0, 0x731800477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by DRAM or PMM attached to another socket")) },
+ { I("ocr.reads_to_core.remote_pmm", 0xb7, 0x1, 0, 0, 0, 0x703000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by PMM attached to another socket")) },
+ { I("ocr.reads_to_core.snc_dram", 0xb7, 0x1, 0, 0, 0, 0x708000477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by DRAM on a distant memory controller of this socket when"
+ " the system is in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.reads_to_core.snc_pmm", 0xb7, 0x1, 0, 0, 0, 0x700800477, 0, 0, 0x186a3,
+ STXT("Counts all (cacheable) data read, code read and RFO requests including"
+ " demands and prefetches to the core caches (L1 or L2) that were"
+ " supplied by PMM on a distant memory controller of this socket when the"
+ " system is in SNC (sub-NUMA cluster) mode")) },
+ { I("ocr.streaming_wr.any_response", 0xb7, 0x1, 0, 0, 0, 0x10800, 0, 0, 0x186a3,
+ STXT("Counts streaming stores that have any type of response")) },
+ { I("ocr.write_estimate.memory", 0xb7, 0x1, 0, 0, 0, 0xfbff80822, 0, 0, 0x186a3,
+ STXT("Counts Demand RFOs, ItoM's, PREFECTHW's, Hardware RFO Prefetches to"
+ " the L1/L2 and Streaming stores that likely resulted in a store to"
+ " Memory (DRAM or PMM)")) },
+/* pipeline: */
+ { I("arith.divider_active", 0x14, 0x9, 0, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles when divide unit is busy executing divide or square root"
+ " operations")) },
+ { I("assists.any", 0xc1, 0x7, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of occurrences where a microcode assist is invoked by hardware")) },
+ { I("br_inst_retired.all_branches", 0xc4, 0, 0, 0, 0, 0, 0, 0, 0x61a89,
+ STXT("All branch instructions retired (Precise event)")) },
+ { I("br_inst_retired.cond", 0xc4, 0x11, 0, 0, 0, 0, 0, 0, 0x61a89,
+ STXT("Conditional branch instructions retired (Precise event)")) },
+ { I("br_inst_retired.cond_ntaken", 0xc4, 0x10, 0, 0, 0, 0, 0, 0, 0x61a89,
+ STXT("Not taken branch instructions retired (Precise event)")) },
+ { I("br_inst_retired.cond_taken", 0xc4, 0x1, 0, 0, 0, 0, 0, 0, 0x61a89,
+ STXT("Taken conditional branch instructions retired (Precise event)")) },
+ { I("br_inst_retired.far_branch", 0xc4, 0x40, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Far branch instructions retired (Precise event)")) },
+ { I("br_inst_retired.indirect", 0xc4, 0x80, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Indirect near branch instructions retired (excluding returns) (Precise"
+ " event)")) },
+ { I("br_inst_retired.near_call", 0xc4, 0x2, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Direct and indirect near call instructions retired (Precise event)")) },
+ { I("br_inst_retired.near_return", 0xc4, 0x8, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("Return instructions retired (Precise event)")) },
+ { I("br_inst_retired.near_taken", 0xc4, 0x20, 0, 0, 0, 0, 0, 0, 0x61a89,
+ STXT("Taken branch instructions retired (Precise event)")) },
+ { I("br_misp_retired.all_branches", 0xc5, 0, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("All mispredicted branch instructions retired (Precise event)")) },
+ { I("br_misp_retired.cond", 0xc5, 0x11, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("Mispredicted conditional branch instructions retired (Precise event)")) },
+ { I("br_misp_retired.cond_ntaken", 0xc5, 0x10, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("Mispredicted non-taken conditional branch instructions retired"
+ " (Precise event)")) },
+ { I("br_misp_retired.cond_taken", 0xc5, 0x1, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("number of branch instructions retired that were mispredicted and taken"
+ " (Precise event)")) },
+ { I("br_misp_retired.indirect", 0xc5, 0x80, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("All miss-predicted indirect branch instructions retired (excluding"
+ " RETs. TSX aborts is considered indirect branch) (Precise event)")) },
+ { I("br_misp_retired.indirect_call", 0xc5, 0x2, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("Mispredicted indirect CALL instructions retired (Precise event)")) },
+ { I("br_misp_retired.near_taken", 0xc5, 0x20, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("Number of near branch instructions retired that were mispredicted and"
+ " taken (Precise event)")) },
+ { I("br_misp_retired.ret", 0xc5, 0x8, 0, 0, 0, 0, 0, 0, 0xc365,
+ STXT("This event counts the number of mispredicted ret instructions retired."
+ " Non PEBS (Precise event)")) },
+ { I("cpu_clk_unhalted.distributed", 0xec, 0x2, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycle counts are evenly distributed between active threads in the Core")) },
+ { I("cpu_clk_unhalted.one_thread_active", 0x3c, 0x2, 0, 0, 0, 0, 0, 0, 0x61ab,
+ STXT("Core crystal clock cycles when this thread is unhalted and the other"
+ " thread is halted")) },
+ { I("cpu_clk_unhalted.ref_distributed", 0x3c, 0x8, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Core crystal clock cycles. Cycle counts are evenly distributed between"
+ " active threads in the Core")) },
+ { I("cpu_clk_unhalted.ref_tsc", 0, 0x3, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Reference cycles when the core is not in halt state")) },
+ { I("cpu_clk_unhalted.ref_xclk", 0x3c, 0x1, 0, 0, 0, 0, 0, 0, 0x61ab,
+ STXT("Core crystal clock cycles when the thread is unhalted")) },
+ { I("cpu_clk_unhalted.thread", 0x3c, 0, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Core cycles when the thread is not in halt state")) },
+ { I("cpu_clk_unhalted.thread_p", 0x3c, 0, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Thread cycles when thread is not in halt state")) },
+ { I("cycle_activity.cycles_l1d_miss", 0xa3, 0x8, 0, 0x8, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles while L1 cache miss demand load is outstanding")) },
+ { I("cycle_activity.cycles_l2_miss", 0xa3, 0x1, 0, 0x1, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles while L2 cache miss demand load is outstanding")) },
+ { I("cycle_activity.cycles_mem_any", 0xa3, 0x10, 0, 0x10, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles while memory subsystem has an outstanding load")) },
+ { I("cycle_activity.stalls_l1d_miss", 0xa3, 0xc, 0, 0xc, 0, 0, 0, 0, 0xf4243,
+ STXT("Execution stalls while L1 cache miss demand load is outstanding")) },
+ { I("cycle_activity.stalls_l2_miss", 0xa3, 0x5, 0, 0x5, 0, 0, 0, 0, 0xf4243,
+ STXT("Execution stalls while L2 cache miss demand load is outstanding")) },
+ { I("cycle_activity.stalls_mem_any", 0xa3, 0x14, 0, 0x14, 0, 0, 0, 0, 0xf4243,
+ STXT("Execution stalls while memory subsystem has an outstanding load")) },
+ { I("cycle_activity.stalls_total", 0xa3, 0x4, 0, 0x4, 0, 0, 0, 0, 0xf4243,
+ STXT("Total execution stalls")) },
+ { I("exe_activity.1_ports_util", 0xa6, 0x2, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles total of 1 uop is executed on all ports and Reservation Station"
+ " was not empty")) },
+ { I("exe_activity.2_ports_util", 0xa6, 0x4, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles total of 2 uops are executed on all ports and Reservation"
+ " Station was not empty")) },
+ { I("exe_activity.3_ports_util", 0xa6, 0x8, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles total of 3 uops are executed on all ports and Reservation"
+ " Station was not empty")) },
+ { I("exe_activity.4_ports_util", 0xa6, 0x10, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles total of 4 uops are executed on all ports and Reservation"
+ " Station was not empty")) },
+ { I("exe_activity.bound_on_stores", 0xa6, 0x40, 0, 0x2, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles where the Store Buffer was full and no loads caused an"
+ " execution stall")) },
+ { I("ild_stall.lcp", 0x87, 0x1, 0, 0, 0, 0, 0, 0, 0x7a129,
+ STXT("Stalls caused by changing prefix length of the instruction. [This"
+ " event is alias to DECODE.LCP]")) },
+ { I("inst_decoded.decoders", 0x55, 0x1, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Instruction decoders utilized in a cycle")) },
+ { I("inst_retired.any", 0xc0, 0, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of instructions retired. Fixed Counter - architectural event"
+ " (Precise event)")) },
+ { I("inst_retired.any_p", 0xc0, 0, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of instructions retired. General Counter - architectural event"
+ " (Precise event)")) },
+ { I("inst_retired.nop", 0xc0, 0x2, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of all retired NOP instructions (Precise event)")) },
+ { I("inst_retired.prec_dist", 0, 0x1, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Precise instruction retired event with a reduced effect of PEBS shadow"
+ " in IP distribution (Precise event)")) },
+ { I("int_misc.all_recovery_cycles", 0xd, 0x3, 0, 0x1, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles the Backend cluster is recovering after a miss-speculation or a"
+ " Store Buffer or Load Buffer drain stall")) },
+ { I("int_misc.clear_resteer_cycles", 0xd, 0x80, 0, 0, 0, 0, 0, 0, 0x7a129,
+ STXT("Counts cycles after recovery from a branch misprediction or machine"
+ " clear till the first uop is issued from the resteered path")) },
+ { I("int_misc.clears_count", 0xd, 0x1, 0x1, 0x1, 0, 0, 0, 0, 0x7a129,
+ STXT("Clears speculative count")) },
+ { I("int_misc.recovery_cycles", 0xd, 0x1, 0, 0, 0, 0, 0, 0, 0x7a129,
+ STXT("Core cycles the allocator was stalled due to recovery from earlier"
+ " clear event for this thread")) },
+ { I("int_misc.uop_dropping", 0xd, 0x10, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("TMA slots where uops got dropped")) },
+ { I("ld_blocks.no_sr", 0x3, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("The number of times that split load operations are temporarily blocked"
+ " because all resources for handling the split accesses are in use")) },
+ { I("ld_blocks.store_forward", 0x3, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Loads blocked due to overlapping with a preceding store that cannot be"
+ " forwarded")) },
+ { I("ld_blocks_partial.address_alias", 0x7, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("False dependencies due to partial compare on address")) },
+ { I("load_hit_prefetch.swpf", 0x4c, 0x1, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts the number of demand load dispatches that hit L1D fill buffer"
+ " (FB) allocated for software prefetch")) },
+ { I("lsd.cycles_active", 0xa8, 0x1, 0, 0x1, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles Uops delivered by the LSD, but didn't come from the decoder")) },
+ { I("lsd.cycles_ok", 0xa8, 0x1, 0, 0x5, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles optimal number of Uops delivered by the LSD, but did not come"
+ " from the decoder")) },
+ { I("lsd.uops", 0xa8, 0x1, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of Uops delivered by the LSD")) },
+ { I("machine_clears.count", 0xc3, 0x1, 0x1, 0x1, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of machine clears (nukes) of any type")) },
+ { I("machine_clears.smc", 0xc3, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Self-modifying code (SMC) detected")) },
+ { I("misc_retired.lbr_inserts", 0xcc, 0x20, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Increments whenever there is an update to the LBR array")) },
+ { I("misc_retired.pause_inst", 0xcc, 0x40, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of retired PAUSE instructions. This event is not supported on"
+ " first SKL and KBL products")) },
+ { I("resource_stalls.sb", 0xa2, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Cycles stalled due to no store buffers available. (not including"
+ " draining form sync)")) },
+ { I("resource_stalls.scoreboard", 0xa2, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Counts cycles where the pipeline is stalled due to serializing"
+ " operations")) },
+ { I("rs_events.empty_cycles", 0x5e, 0x1, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Cycles when Reservation Station (RS) is empty for the thread")) },
+ { I("rs_events.empty_end", 0x5e, 0x1, 0x1, 0x1, 0x1, 0, 0, 0, 0x186a3,
+ STXT("Counts end of periods where the Reservation Station (RS) was empty")) },
+ { I("topdown.backend_bound_slots", 0xa4, 0x2, 0, 0, 0, 0, 0, 0, 0x989683,
+ STXT("TMA slots where no uops were being issued due to lack of back-end"
+ " resources")) },
+ { I("topdown.slots", 0, 0x4, 0, 0, 0, 0, 0, 0, 0x989683,
+ STXT("TMA slots available for an unhalted logical processor. Fixed counter -"
+ " architectural event")) },
+ { I("topdown.slots_p", 0xa4, 0x1, 0, 0, 0, 0, 0, 0, 0x989683,
+ STXT("TMA slots available for an unhalted logical processor. General counter"
+ " - architectural event")) },
+ { I("uops_decoded.dec0", 0x56, 0x1, 0, 0, 0, 0, 0, 0, 0xf4243,
+ STXT("Number of uops decoded out of instructions exclusively fetched by"
+ " decoder 0")) },
+ { I("uops_dispatched.port_0", 0xa1, 0x1, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of uops executed on port 0")) },
+ { I("uops_dispatched.port_1", 0xa1, 0x2, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of uops executed on port 1")) },
+ { I("uops_dispatched.port_2_3", 0xa1, 0x4, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of uops executed on port 2 and 3")) },
+ { I("uops_dispatched.port_4_9", 0xa1, 0x10, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of uops executed on port 4 and 9")) },
+ { I("uops_dispatched.port_5", 0xa1, 0x20, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of uops executed on port 5")) },
+ { I("uops_dispatched.port_6", 0xa1, 0x40, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of uops executed on port 6")) },
+ { I("uops_dispatched.port_7_8", 0xa1, 0x80, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Number of uops executed on port 7 and 8")) },
+ { I("uops_executed.core_cycles_ge_1", 0xb1, 0x2, 0, 0x1, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles at least 1 micro-op is executed from any thread on physical"
+ " core")) },
+ { I("uops_executed.core_cycles_ge_2", 0xb1, 0x2, 0, 0x2, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles at least 2 micro-op is executed from any thread on physical"
+ " core")) },
+ { I("uops_executed.core_cycles_ge_3", 0xb1, 0x2, 0, 0x3, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles at least 3 micro-op is executed from any thread on physical"
+ " core")) },
+ { I("uops_executed.core_cycles_ge_4", 0xb1, 0x2, 0, 0x4, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles at least 4 micro-op is executed from any thread on physical"
+ " core")) },
+ { I("uops_executed.cycles_ge_1", 0xb1, 0x1, 0, 0x1, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles where at least 1 uop was executed per-thread")) },
+ { I("uops_executed.cycles_ge_2", 0xb1, 0x1, 0, 0x2, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles where at least 2 uops were executed per-thread")) },
+ { I("uops_executed.cycles_ge_3", 0xb1, 0x1, 0, 0x3, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles where at least 3 uops were executed per-thread")) },
+ { I("uops_executed.cycles_ge_4", 0xb1, 0x1, 0, 0x4, 0, 0, 0, 0, 0x1e8483,
+ STXT("Cycles where at least 4 uops were executed per-thread")) },
+ { I("uops_executed.stall_cycles", 0xb1, 0x1, 0, 0x1, 0x1, 0, 0, 0, 0x1e8483,
+ STXT("Counts number of cycles no uops were dispatched to be executed on this"
+ " thread")) },
+ { I("uops_executed.thread", 0xb1, 0x1, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Counts the number of uops to be executed per-thread each cycle")) },
+ { I("uops_executed.x87", 0xb1, 0x10, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Counts the number of x87 uops dispatched")) },
+ { I("uops_issued.any", 0xe, 0x1, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Uops that RAT issues to RS")) },
+ { I("uops_issued.stall_cycles", 0xe, 0x1, 0, 0x1, 0x1, 0, 0, 0, 0xf4243,
+ STXT("Cycles when RAT does not issue Uops to RS for the thread")) },
+ { I("uops_issued.vector_width_mismatch", 0xe, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Uops inserted at issue-stage in order to preserve upper bits of vector"
+ " registers")) },
+ { I("uops_retired.slots", 0xc2, 0x2, 0, 0, 0, 0, 0, 0, 0x1e8483,
+ STXT("Retirement slots used")) },
+ { I("uops_retired.stall_cycles", 0xc2, 0x2, 0, 0x1, 0x1, 0, 0, 0, 0xf4243,
+ STXT("Cycles without actually retired uops")) },
+ { I("uops_retired.total_cycles", 0xc2, 0x2, 0, 0xa, 0x1, 0, 0, 0, 0xf4243,
+ STXT("Cycles with less than 10 actually retired uops")) },
+/* virtual memory: */
+ { I("dtlb_load_misses.stlb_hit", 0x8, 0x20, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Loads that miss the DTLB and hit the STLB")) },
+ { I("dtlb_load_misses.walk_active", 0x8, 0x10, 0, 0x1, 0, 0, 0, 0, 0x186a3,
+ STXT("Cycles when at least one PMH is busy with a page walk for a demand"
+ " load")) },
+ { I("dtlb_load_misses.walk_completed", 0x8, 0xe, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Load miss in all TLB levels causes a page walk that completes. (All"
+ " page sizes)")) },
+ { I("dtlb_load_misses.walk_completed_1g", 0x8, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Page walks completed due to a demand data load to a 1G page")) },
+ { I("dtlb_load_misses.walk_completed_2m_4m", 0x8, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Page walks completed due to a demand data load to a 2M/4M page")) },
+ { I("dtlb_load_misses.walk_completed_4k", 0x8, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Page walks completed due to a demand data load to a 4K page")) },
+ { I("dtlb_load_misses.walk_pending", 0x8, 0x10, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of page walks outstanding for a demand load in the PMH each"
+ " cycle")) },
+ { I("dtlb_store_misses.stlb_hit", 0x49, 0x20, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Stores that miss the DTLB and hit the STLB")) },
+ { I("dtlb_store_misses.walk_active", 0x49, 0x10, 0, 0x1, 0, 0, 0, 0, 0x186a3,
+ STXT("Cycles when at least one PMH is busy with a page walk for a store")) },
+ { I("dtlb_store_misses.walk_completed", 0x49, 0xe, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Store misses in all TLB levels causes a page walk that completes. (All"
+ " page sizes)")) },
+ { I("dtlb_store_misses.walk_completed_1g", 0x49, 0x8, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Page walks completed due to a demand data store to a 1G page")) },
+ { I("dtlb_store_misses.walk_completed_2m_4m", 0x49, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Page walks completed due to a demand data store to a 2M/4M page")) },
+ { I("dtlb_store_misses.walk_completed_4k", 0x49, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Page walks completed due to a demand data store to a 4K page")) },
+ { I("dtlb_store_misses.walk_pending", 0x49, 0x10, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of page walks outstanding for a store in the PMH each cycle")) },
+ { I("itlb_misses.stlb_hit", 0x85, 0x20, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Instruction fetch requests that miss the ITLB and hit the STLB")) },
+ { I("itlb_misses.walk_active", 0x85, 0x10, 0, 0x1, 0, 0, 0, 0, 0x186a3,
+ STXT("Cycles when at least one PMH is busy with a page walk for code"
+ " (instruction fetch) request")) },
+ { I("itlb_misses.walk_completed", 0x85, 0xe, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Code miss in all TLB levels causes a page walk that completes. (All"
+ " page sizes)")) },
+ { I("itlb_misses.walk_completed_2m_4m", 0x85, 0x4, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Code miss in all TLB levels causes a page walk that completes. (2M/4M)")) },
+ { I("itlb_misses.walk_completed_4k", 0x85, 0x2, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Code miss in all TLB levels causes a page walk that completes. (4K)")) },
+ { I("itlb_misses.walk_pending", 0x85, 0x10, 0, 0, 0, 0, 0, 0, 0x186a3,
+ STXT("Number of page walks outstanding for an outstanding code request in"
+ " the PMH each cycle")) },
+ { I("tlb_flush.dtlb_thread", 0xbd, 0x1, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("DTLB flush attempts of the thread-specific entries")) },
+ { I("tlb_flush.stlb_any", 0xbd, 0x20, 0, 0, 0, 0, 0, 0, 0x186a7,
+ STXT("STLB flush attempts")) },
+ { NULL, NULL, 0, NULL }
+};
+
+#undef SH
+#undef I
+#endif
diff --git a/include/ChangeLog b/include/ChangeLog
index bf4aa1d..45fc628 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-04-07 Simon Marchi <simon.marchi@efficios.com>
* diagnostics.h (DIAGNOSTIC_IGNORE_DEPRECATED_REGISTER): Rename
diff --git a/include/bfdlink.h b/include/bfdlink.h
index 015370d..f802ec6 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -117,6 +117,9 @@ struct bfd_link_hash_entry
/* The symbol, SYM, is referenced by __real_SYM in an object file. */
unsigned int ref_real : 1;
+ /* The symbol is a wrapper symbol, __wrap_SYM. */
+ unsigned int wrapper_symbol : 1;
+
/* Symbol is a built-in define. These will be overridden by PROVIDE
in a linker script. */
unsigned int linker_def : 1;
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index 9daa911..bc779c9 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -183,6 +183,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_LSE128,
/* ARMv8.9-A RAS Extensions. */
AARCH64_FEATURE_RASv2,
+ /* Delegated SError exceptions for EL3. */
+ AARCH64_FEATURE_E3DSE,
/* System Control Register2. */
AARCH64_FEATURE_SCTLR2,
/* Fine Grained Traps. */
@@ -220,6 +222,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_PMUv3_ICNTR,
/* System Performance Monitors Extension */
AARCH64_FEATURE_SPMU,
+ /* System Performance Monitors Extension version 2 */
+ AARCH64_FEATURE_SPMU2,
/* Performance Monitors Synchronous-Exception-Based Event Extension. */
AARCH64_FEATURE_SEBEP,
/* SVE2.1 and SME2.1 non-widening BFloat16 instructions. */
@@ -230,6 +234,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SVE2p1,
/* RCPC3 instructions. */
AARCH64_FEATURE_RCPC3,
+ /* Enhanced Software Step Extension. */
+ AARCH64_FEATURE_STEP2,
/* Checked Pointer Arithmetic instructions. */
AARCH64_FEATURE_CPA,
/* FAMINMAX instructions. */
@@ -366,7 +372,11 @@ enum aarch64_feature_bit {
#define AARCH64_ARCH_V9_5A_FEATURES(X) (AARCH64_FEATBIT (X, V9_5A) \
| AARCH64_FEATBIT (X, CPA) \
| AARCH64_FEATBIT (X, LUT) \
- | AARCH64_FEATBIT (X, FAMINMAX))
+ | AARCH64_FEATBIT (X, FAMINMAX)\
+ | AARCH64_FEATBIT (X, E3DSE) \
+ | AARCH64_FEATBIT (X, SPMU2) \
+ | AARCH64_FEATBIT (X, STEP2) \
+ )
/* Architectures are the sum of the base and extensions. */
#define AARCH64_ARCH_V8A(X) (AARCH64_FEATBIT (X, V8) \
@@ -779,6 +789,7 @@ enum aarch64_opnd
AARCH64_OPND_SME_ZA_array_vrsh_2, /* Tile to vector, four registers (H). */
AARCH64_OPND_SME_ZA_array_vrss_2, /* Tile to vector, four registers (S). */
AARCH64_OPND_SME_ZA_array_vrsd_2, /* Tile to vector, four registers (D). */
+ AARCH64_OPND_SME_ZA_ARRAY4, /* Tile to vector, single (BHSDQ). */
AARCH64_OPND_SVE_Za_5, /* SVE vector register in Za, bits [9,5]. */
AARCH64_OPND_SVE_Za_16, /* SVE vector register in Za, bits [20,16]. */
AARCH64_OPND_SVE_Zd, /* SVE vector register in Zd. */
@@ -857,6 +868,14 @@ enum aarch64_opnd
AARCH64_OPND_SME_Zn_INDEX3_14, /* Zn[index], bits [9:5] and [16:14]. */
AARCH64_OPND_SME_Zn_INDEX3_15, /* Zn[index], bits [9:5] and [17:15]. */
AARCH64_OPND_SME_Zn_INDEX4_14, /* Zn[index], bits [9:5] and [17:14]. */
+ AARCH64_OPND_SVE_Zn0_INDEX, /* Zn[index], bits [9:5]. */
+ AARCH64_OPND_SVE_Zn1_17_INDEX, /* Zn[index], bits [9:5,17]. */
+ AARCH64_OPND_SVE_Zn2_18_INDEX, /* Zn[index], bits [9:5,18:17]. */
+ AARCH64_OPND_SVE_Zn3_22_INDEX, /* Zn[index], bits [9:5,18:17,22]. */
+ AARCH64_OPND_SVE_Zd0_INDEX, /* Zn[index], bits [4:0]. */
+ AARCH64_OPND_SVE_Zd1_17_INDEX, /* Zn[index], bits [4:0,17]. */
+ AARCH64_OPND_SVE_Zd2_18_INDEX, /* Zn[index], bits [4:0,18:17]. */
+ AARCH64_OPND_SVE_Zd3_22_INDEX, /* Zn[index], bits [4:0,18:17,22]. */
AARCH64_OPND_SME_VLxN_10, /* VLx2 or VLx4, in bit 10. */
AARCH64_OPND_SME_VLxN_13, /* VLx2 or VLx4, in bit 13. */
AARCH64_OPND_SME_ZT0, /* The fixed token zt0/ZT0 (not encoded). */
@@ -1049,6 +1068,7 @@ enum aarch64_insn_class
sme_ldr,
sme_psel,
sme_shift,
+ sme_size_12_bh,
sme_size_12_bhs,
sme_size_12_hs,
sme_size_12_b,
@@ -1090,7 +1110,8 @@ enum aarch64_insn_class
sve2_urqvs,
sve_index1,
rcpc3,
- lut
+ lut,
+ last_iclass = lut
};
/* Opcode enumerators. */
@@ -1367,7 +1388,30 @@ extern const aarch64_opcode aarch64_opcode_table[];
#define F_OPD_SIZE (1ULL << 34)
/* RCPC3 instruction has the field of 'size'. */
#define F_RCPC3_SIZE (1ULL << 35)
-/* Next bit is 36. */
+/* This instruction need VGx2 or VGx4 mandatorily in the operand passed to
+ assembler. */
+#define F_VG_REQ (1ULL << 36)
+
+/* 4-bit flag field to indicate subclass of instructions.
+ Note the overlap between the set of subclass flags in each logical category
+ (F_LDST_*, F_ARITH_*, F_BRANCH_* etc.); The usage of flags as
+ iclass-specific enums is intentional. */
+#define F_SUBCLASS (15ULL << 37)
+
+#define F_LDST_LOAD (1ULL << 37)
+#define F_LDST_STORE (2ULL << 37)
+/* Subclasses to denote add, sub and mov insns. */
+#define F_ARITH_ADD (1ULL << 37)
+#define F_ARITH_SUB (2ULL << 37)
+#define F_ARITH_MOV (3ULL << 37)
+/* Subclasses to denote call and ret insns. */
+#define F_BRANCH_CALL (1ULL << 37)
+#define F_BRANCH_RET (2ULL << 37)
+/* Subclass to denote that only tag update is involved. */
+#define F_DP_TAG_ONLY (1ULL << 37)
+
+#define F_SUBCLASS_OTHER (F_SUBCLASS)
+/* Next bit is 41. */
/* Instruction constraints. */
/* This instruction has a predication constraint on the instruction at PC+4. */
@@ -1406,6 +1450,16 @@ pseudo_opcode_p (const aarch64_opcode *opcode)
return (opcode->flags & F_PSEUDO) != 0lu;
}
+/* Whether the opcode has the specific subclass flag.
+ N.B. The overlap between F_LDST_*, F_ARITH_*, and F_BRANCH_* etc. subclass
+ flags means that the callers of this function have the responsibility of
+ checking for the flags appropriate for the specific iclass. */
+static inline bool
+aarch64_opcode_subclass_p (const aarch64_opcode *opcode, uint64_t flag)
+{
+ return ((opcode->flags & F_SUBCLASS) == flag);
+}
+
/* Deal with two possible scenarios: If F_OP_PAIR_OPT not set, as is the case
by default, F_OPDn_OPT must equal IDX + 1, else F_OPDn_OPT must be in range
[IDX, IDX + 1]. */
@@ -1431,6 +1485,12 @@ get_opcode_dependent_value (const aarch64_opcode *opcode)
}
static inline bool
+get_opcode_dependent_vg_status (const aarch64_opcode *opcode)
+{
+ return (opcode->flags >> 36) & 0x1;
+}
+
+static inline bool
opcode_has_special_coder (const aarch64_opcode *opcode)
{
return (opcode->flags & (F_SF | F_LSE_SZ | F_SIZEQ | F_FPTYPE | F_SSIZE | F_T
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
index 3ef74eb..67849ff 100644
--- a/include/opcode/mips.h
+++ b/include/opcode/mips.h
@@ -67,156 +67,14 @@ extern "C" {
#define OP_SH_OP 26
#define OP_MASK_RS 0x1f
#define OP_SH_RS 21
-#define OP_MASK_FR 0x1f
-#define OP_SH_FR 21
-#define OP_MASK_FMT 0x1f
-#define OP_SH_FMT 21
#define OP_MASK_BCC 0x7
#define OP_SH_BCC 18
-#define OP_MASK_CODE 0x3ff
-#define OP_SH_CODE 16
-#define OP_MASK_CODE2 0x3ff
-#define OP_SH_CODE2 6
#define OP_MASK_RT 0x1f
#define OP_SH_RT 16
-#define OP_MASK_FT 0x1f
-#define OP_SH_FT 16
-#define OP_MASK_CACHE 0x1f
-#define OP_SH_CACHE 16
#define OP_MASK_RD 0x1f
#define OP_SH_RD 11
-#define OP_MASK_FS 0x1f
-#define OP_SH_FS 11
-#define OP_MASK_PREFX 0x1f
-#define OP_SH_PREFX 11
-#define OP_MASK_CCC 0x7
-#define OP_SH_CCC 8
-#define OP_MASK_CODE20 0xfffff /* 20 bit syscall/breakpoint code. */
-#define OP_SH_CODE20 6
-#define OP_MASK_SHAMT 0x1f
-#define OP_SH_SHAMT 6
-#define OP_MASK_EXTLSB OP_MASK_SHAMT
-#define OP_SH_EXTLSB OP_SH_SHAMT
-#define OP_MASK_STYPE OP_MASK_SHAMT
-#define OP_SH_STYPE OP_SH_SHAMT
-#define OP_MASK_FD 0x1f
-#define OP_SH_FD 6
-#define OP_MASK_TARGET 0x3ffffff
-#define OP_SH_TARGET 0
-#define OP_MASK_COPZ 0x1ffffff
-#define OP_SH_COPZ 0
#define OP_MASK_IMMEDIATE 0xffff
#define OP_SH_IMMEDIATE 0
-#define OP_MASK_DELTA 0xffff
-#define OP_SH_DELTA 0
-#define OP_MASK_FUNCT 0x3f
-#define OP_SH_FUNCT 0
-#define OP_MASK_SPEC 0x3f
-#define OP_SH_SPEC 0
-#define OP_SH_LOCC 8 /* FP condition code. */
-#define OP_SH_HICC 18 /* FP condition code. */
-#define OP_MASK_CC 0x7
-#define OP_SH_COP1NORM 25 /* Normal COP1 encoding. */
-#define OP_MASK_COP1NORM 0x1 /* a single bit. */
-#define OP_SH_COP1SPEC 21 /* COP1 encodings. */
-#define OP_MASK_COP1SPEC 0xf
-#define OP_MASK_COP1SCLR 0x4
-#define OP_MASK_COP1CMP 0x3
-#define OP_SH_COP1CMP 4
-#define OP_SH_FORMAT 21 /* FP short format field. */
-#define OP_MASK_FORMAT 0x7
-#define OP_SH_TRUE 16
-#define OP_MASK_TRUE 0x1
-#define OP_SH_GE 17
-#define OP_MASK_GE 0x01
-#define OP_SH_UNSIGNED 16
-#define OP_MASK_UNSIGNED 0x1
-#define OP_SH_HINT 16
-#define OP_MASK_HINT 0x1f
-#define OP_SH_MMI 0 /* Multimedia (parallel) op. */
-#define OP_MASK_MMI 0x3f
-#define OP_SH_MMISUB 6
-#define OP_MASK_MMISUB 0x1f
-#define OP_MASK_PERFREG 0x1f /* Performance monitoring. */
-#define OP_SH_PERFREG 1
-#define OP_SH_SEL 0 /* Coprocessor select field. */
-#define OP_MASK_SEL 0x7 /* The sel field of mfcZ and mtcZ. */
-#define OP_SH_CODE19 6 /* 19 bit wait code. */
-#define OP_MASK_CODE19 0x7ffff
-#define OP_SH_ALN 21
-#define OP_MASK_ALN 0x7
-#define OP_SH_VSEL 21
-#define OP_MASK_VSEL 0x1f
-#define OP_MASK_VECBYTE 0x7 /* Selector field is really 4 bits,
- but 0x8-0xf don't select bytes. */
-#define OP_SH_VECBYTE 22
-#define OP_MASK_VECALIGN 0x7 /* Vector byte-align (alni.ob) op. */
-#define OP_SH_VECALIGN 21
-#define OP_MASK_INSMSB 0x1f /* "ins" MSB. */
-#define OP_SH_INSMSB 11
-#define OP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */
-#define OP_SH_EXTMSBD 11
-
-/* MIPS DSP ASE */
-#define OP_SH_DSPACC 11
-#define OP_MASK_DSPACC 0x3
-#define OP_SH_DSPACC_S 21
-#define OP_MASK_DSPACC_S 0x3
-#define OP_SH_DSPSFT 20
-#define OP_MASK_DSPSFT 0x3f
-#define OP_SH_DSPSFT_7 19
-#define OP_MASK_DSPSFT_7 0x7f
-#define OP_SH_SA3 21
-#define OP_MASK_SA3 0x7
-#define OP_SH_SA4 21
-#define OP_MASK_SA4 0xf
-#define OP_SH_IMM8 16
-#define OP_MASK_IMM8 0xff
-#define OP_SH_IMM10 16
-#define OP_MASK_IMM10 0x3ff
-#define OP_SH_WRDSP 11
-#define OP_MASK_WRDSP 0x3f
-#define OP_SH_RDDSP 16
-#define OP_MASK_RDDSP 0x3f
-#define OP_SH_BP 11
-#define OP_MASK_BP 0x3
-
-/* MIPS MT ASE */
-#define OP_SH_MT_U 5
-#define OP_MASK_MT_U 0x1
-#define OP_SH_MT_H 4
-#define OP_MASK_MT_H 0x1
-#define OP_SH_MTACC_T 18
-#define OP_MASK_MTACC_T 0x3
-#define OP_SH_MTACC_D 13
-#define OP_MASK_MTACC_D 0x3
-
-/* MIPS MCU ASE */
-#define OP_MASK_3BITPOS 0x7
-#define OP_SH_3BITPOS 12
-#define OP_MASK_OFFSET12 0xfff
-#define OP_SH_OFFSET12 0
-
-#define OP_OP_COP0 0x10
-#define OP_OP_COP1 0x11
-#define OP_OP_COP2 0x12
-#define OP_OP_COP3 0x13
-#define OP_OP_LWC1 0x31
-#define OP_OP_LWC2 0x32
-#define OP_OP_LWC3 0x33 /* a.k.a. pref */
-#define OP_OP_LDC1 0x35
-#define OP_OP_LDC2 0x36
-#define OP_OP_LDC3 0x37 /* a.k.a. ld */
-#define OP_OP_SWC1 0x39
-#define OP_OP_SWC2 0x3a
-#define OP_OP_SWC3 0x3b
-#define OP_OP_SDC1 0x3d
-#define OP_OP_SDC2 0x3e
-#define OP_OP_SDC3 0x3f /* a.k.a. sd */
-
-/* MIPS VIRT ASE */
-#define OP_MASK_CODE10 0x3ff
-#define OP_SH_CODE10 11
/* Values in the 'VSEL' field. */
#define MDMX_FMTSEL_IMM_QH 0x1d
@@ -224,116 +82,6 @@ extern "C" {
#define MDMX_FMTSEL_VEC_QH 0x15
#define MDMX_FMTSEL_VEC_OB 0x16
-/* UDI */
-#define OP_SH_UDI1 6
-#define OP_MASK_UDI1 0x1f
-#define OP_SH_UDI2 6
-#define OP_MASK_UDI2 0x3ff
-#define OP_SH_UDI3 6
-#define OP_MASK_UDI3 0x7fff
-#define OP_SH_UDI4 6
-#define OP_MASK_UDI4 0xfffff
-
-/* Octeon */
-#define OP_SH_BBITIND 16
-#define OP_MASK_BBITIND 0x1f
-#define OP_SH_CINSPOS 6
-#define OP_MASK_CINSPOS 0x1f
-#define OP_SH_CINSLM1 11
-#define OP_MASK_CINSLM1 0x1f
-#define OP_SH_SEQI 6
-#define OP_MASK_SEQI 0x3ff
-
-/* Loongson */
-#define OP_SH_OFFSET_A 6
-#define OP_MASK_OFFSET_A 0xff
-#define OP_SH_OFFSET_B 3
-#define OP_MASK_OFFSET_B 0xff
-#define OP_SH_OFFSET_C 6
-#define OP_MASK_OFFSET_C 0x1ff
-#define OP_SH_RZ 0
-#define OP_MASK_RZ 0x1f
-#define OP_SH_FZ 0
-#define OP_MASK_FZ 0x1f
-
-/* Every MICROMIPSOP_X definition requires a corresponding OP_X
- definition, and vice versa. This simplifies various parts
- of the operand handling in GAS. The fields below only exist
- in the microMIPS encoding, so define each one to have an empty
- range. */
-#define OP_MASK_TRAP 0
-#define OP_SH_TRAP 0
-#define OP_MASK_OFFSET10 0
-#define OP_SH_OFFSET10 0
-#define OP_MASK_RS3 0
-#define OP_SH_RS3 0
-#define OP_MASK_MB 0
-#define OP_SH_MB 0
-#define OP_MASK_MC 0
-#define OP_SH_MC 0
-#define OP_MASK_MD 0
-#define OP_SH_MD 0
-#define OP_MASK_ME 0
-#define OP_SH_ME 0
-#define OP_MASK_MF 0
-#define OP_SH_MF 0
-#define OP_MASK_MG 0
-#define OP_SH_MG 0
-#define OP_MASK_MH 0
-#define OP_SH_MH 0
-#define OP_MASK_MJ 0
-#define OP_SH_MJ 0
-#define OP_MASK_ML 0
-#define OP_SH_ML 0
-#define OP_MASK_MM 0
-#define OP_SH_MM 0
-#define OP_MASK_MN 0
-#define OP_SH_MN 0
-#define OP_MASK_MP 0
-#define OP_SH_MP 0
-#define OP_MASK_MQ 0
-#define OP_SH_MQ 0
-#define OP_MASK_IMMA 0
-#define OP_SH_IMMA 0
-#define OP_MASK_IMMB 0
-#define OP_SH_IMMB 0
-#define OP_MASK_IMMC 0
-#define OP_SH_IMMC 0
-#define OP_MASK_IMMF 0
-#define OP_SH_IMMF 0
-#define OP_MASK_IMMG 0
-#define OP_SH_IMMG 0
-#define OP_MASK_IMMH 0
-#define OP_SH_IMMH 0
-#define OP_MASK_IMMI 0
-#define OP_SH_IMMI 0
-#define OP_MASK_IMMJ 0
-#define OP_SH_IMMJ 0
-#define OP_MASK_IMML 0
-#define OP_SH_IMML 0
-#define OP_MASK_IMMM 0
-#define OP_SH_IMMM 0
-#define OP_MASK_IMMN 0
-#define OP_SH_IMMN 0
-#define OP_MASK_IMMO 0
-#define OP_SH_IMMO 0
-#define OP_MASK_IMMP 0
-#define OP_SH_IMMP 0
-#define OP_MASK_IMMQ 0
-#define OP_SH_IMMQ 0
-#define OP_MASK_IMMU 0
-#define OP_SH_IMMU 0
-#define OP_MASK_IMMW 0
-#define OP_SH_IMMW 0
-#define OP_MASK_IMMX 0
-#define OP_SH_IMMX 0
-#define OP_MASK_IMMY 0
-#define OP_SH_IMMY 0
-
-/* Enhanced VA Scheme */
-#define OP_SH_EVAOFFSET 7
-#define OP_MASK_EVAOFFSET 0x1ff
-
/* Enumerates the various types of MIPS operand. */
enum mips_operand_type {
/* Described by mips_int_operand. */
@@ -905,7 +653,6 @@ mips_opcode_32bit_p (const struct mips_opcode *mo)
"*" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_T)
"&" 2 bit dsp/smartmips accumulator register (OP_*_MTACC_D)
"y" 5 bit control target register (OP_*_RT)
- "+t" 5 bit coprocessor 0 destination register (OP_*_RT)
MCU ASE usage:
"~" 12 bit offset (OP_*_OFFSET12)
@@ -984,13 +731,12 @@ mips_opcode_32bit_p (const struct mips_opcode *mo)
"-b" (-131072 .. 131071) << 3 at bit 0
"-d" Same as destination register GP
"-s" 5 bit source register specifier (OP_*_RS) not $0
- "-t" 5 bit source register specifier (OP_*_RT) not $0
- "-u" 5 bit source register specifier (OP_*_RT) greater than OP_*_RS
- "-v" 5 bit source register specifier (OP_*_RT) not $0 not OP_*_RS
- "-w" 5 bit source register specifier (OP_*_RT) less than or equal to OP_*_RS
- "-x" 5 bit source register specifier (OP_*_RT) greater than or
- equal to OP_*_RS
- "-y" 5 bit source register specifier (OP_*_RT) not $0 less than OP_*_RS
+ "-t" 5 bit target register specifier (OP_*_RT) not $0
+ "-u" 5 bit target register specifier (OP_*_RT) greater than OP_*_RS
+ "-v" 5 bit target register specifier (OP_*_RT) not $0 not OP_*_RS
+ "-w" 5 bit target register specifier (OP_*_RT) less than or equal to OP_*_RS
+ "-x" 5 bit source register specifier (OP_*_RS) greater than OP_*_RT
+ "-y" 5 bit source register specifier (OP_*_RS) not $0 less than OP_*_RT
"-A" symbolic offset (-262144 .. 262143) << 2 at bit 0
"-B" symbolic offset (-131072 .. 131071) << 3 at bit 0
@@ -1013,7 +759,7 @@ mips_opcode_32bit_p (const struct mips_opcode *mo)
"1234567890"
"~!@#$%^&*|:'";\"
"ABCEFGHIJKLMNOPQRSTUVWXZ"
- "abcdefghijklmnopqrstuvwxyz"
+ "abcdefghijklmnopqrs uvwxyz"
Extension character sequences used so far ("-" followed by the
following), for quick reference when adding more:
@@ -1836,31 +1582,12 @@ extern int bfd_mips_num_opcodes;
The RI64 format uses RY and IMM5.
*/
-#define MIPS16OP_MASK_OP 0x1f
-#define MIPS16OP_SH_OP 11
-#define MIPS16OP_MASK_IMM11 0x7ff
-#define MIPS16OP_SH_IMM11 0
#define MIPS16OP_MASK_RX 0x7
#define MIPS16OP_SH_RX 8
-#define MIPS16OP_MASK_IMM8 0xff
-#define MIPS16OP_SH_IMM8 0
#define MIPS16OP_MASK_RY 0x7
#define MIPS16OP_SH_RY 5
-#define MIPS16OP_MASK_IMM5 0x1f
-#define MIPS16OP_SH_IMM5 0
#define MIPS16OP_MASK_RZ 0x7
#define MIPS16OP_SH_RZ 2
-#define MIPS16OP_MASK_IMM4 0xf
-#define MIPS16OP_SH_IMM4 0
-#define MIPS16OP_MASK_REGR32 0x1f
-#define MIPS16OP_SH_REGR32 0
-#define MIPS16OP_MASK_REG32R 0x1f
-#define MIPS16OP_SH_REG32R 3
-#define MIPS16OP_EXTRACT_REG32R(i) ((((i) >> 5) & 7) | ((i) & 0x18))
-#define MIPS16OP_MASK_MOVE32Z 0x7
-#define MIPS16OP_SH_MOVE32Z 0
-#define MIPS16OP_MASK_IMM6 0x3f
-#define MIPS16OP_SH_IMM6 5
/* These are the characters which may appears in the args field of a MIPS16
instruction. They appear in the order in which the fields appear when the
@@ -1973,201 +1700,18 @@ extern const int bfd_mips16_num_opcodes;
in the microMIPS instruction formats. No masks are provided for the
fixed portions of an instruction, since they are not needed. */
-#define MICROMIPSOP_MASK_IMMEDIATE 0xffff
-#define MICROMIPSOP_SH_IMMEDIATE 0
-#define MICROMIPSOP_MASK_DELTA 0xffff
-#define MICROMIPSOP_SH_DELTA 0
-#define MICROMIPSOP_MASK_CODE10 0x3ff
-#define MICROMIPSOP_SH_CODE10 16 /* 10-bit wait code. */
-#define MICROMIPSOP_MASK_TRAP 0xf
-#define MICROMIPSOP_SH_TRAP 12 /* 4-bit trap code. */
-#define MICROMIPSOP_MASK_SHAMT 0x1f
-#define MICROMIPSOP_SH_SHAMT 11
-#define MICROMIPSOP_MASK_TARGET 0x3ffffff
-#define MICROMIPSOP_SH_TARGET 0
-#define MICROMIPSOP_MASK_EXTLSB 0x1f /* "ext" LSB. */
-#define MICROMIPSOP_SH_EXTLSB 6
-#define MICROMIPSOP_MASK_EXTMSBD 0x1f /* "ext" MSBD. */
-#define MICROMIPSOP_SH_EXTMSBD 11
-#define MICROMIPSOP_MASK_INSMSB 0x1f /* "ins" MSB. */
-#define MICROMIPSOP_SH_INSMSB 11
-#define MICROMIPSOP_MASK_CODE 0x3ff
-#define MICROMIPSOP_SH_CODE 16 /* 10-bit higher break code. */
-#define MICROMIPSOP_MASK_CODE2 0x3ff
-#define MICROMIPSOP_SH_CODE2 6 /* 10-bit lower break code. */
-#define MICROMIPSOP_MASK_CACHE 0x1f
-#define MICROMIPSOP_SH_CACHE 21 /* 5-bit cache op. */
-#define MICROMIPSOP_MASK_SEL 0x7
-#define MICROMIPSOP_SH_SEL 11
-#define MICROMIPSOP_MASK_OFFSET12 0xfff
-#define MICROMIPSOP_SH_OFFSET12 0
-#define MICROMIPSOP_MASK_3BITPOS 0x7
-#define MICROMIPSOP_SH_3BITPOS 21
-#define MICROMIPSOP_MASK_STYPE 0x1f
-#define MICROMIPSOP_SH_STYPE 16
-#define MICROMIPSOP_MASK_OFFSET10 0x3ff
-#define MICROMIPSOP_SH_OFFSET10 6
#define MICROMIPSOP_MASK_RS 0x1f
#define MICROMIPSOP_SH_RS 16
#define MICROMIPSOP_MASK_RT 0x1f
#define MICROMIPSOP_SH_RT 21
#define MICROMIPSOP_MASK_RD 0x1f
#define MICROMIPSOP_SH_RD 11
-#define MICROMIPSOP_MASK_FS 0x1f
-#define MICROMIPSOP_SH_FS 16
-#define MICROMIPSOP_MASK_FT 0x1f
-#define MICROMIPSOP_SH_FT 21
-#define MICROMIPSOP_MASK_FD 0x1f
-#define MICROMIPSOP_SH_FD 11
-#define MICROMIPSOP_MASK_FR 0x1f
-#define MICROMIPSOP_SH_FR 6
-#define MICROMIPSOP_MASK_RS3 0x1f
-#define MICROMIPSOP_SH_RS3 6
-#define MICROMIPSOP_MASK_PREFX 0x1f
-#define MICROMIPSOP_SH_PREFX 11
#define MICROMIPSOP_MASK_BCC 0x7
#define MICROMIPSOP_SH_BCC 18
-#define MICROMIPSOP_MASK_CCC 0x7
-#define MICROMIPSOP_SH_CCC 13
-#define MICROMIPSOP_MASK_COPZ 0x7fffff
-#define MICROMIPSOP_SH_COPZ 3
-
-#define MICROMIPSOP_MASK_MB 0x7
-#define MICROMIPSOP_SH_MB 23
-#define MICROMIPSOP_MASK_MC 0x7
-#define MICROMIPSOP_SH_MC 4
#define MICROMIPSOP_MASK_MD 0x7
#define MICROMIPSOP_SH_MD 7
-#define MICROMIPSOP_MASK_ME 0x7
-#define MICROMIPSOP_SH_ME 1
-#define MICROMIPSOP_MASK_MF 0x7
-#define MICROMIPSOP_SH_MF 3
-#define MICROMIPSOP_MASK_MG 0x7
-#define MICROMIPSOP_SH_MG 0
-#define MICROMIPSOP_MASK_MH 0x7
-#define MICROMIPSOP_SH_MH 7
#define MICROMIPSOP_MASK_MJ 0x1f
#define MICROMIPSOP_SH_MJ 0
-#define MICROMIPSOP_MASK_ML 0x7
-#define MICROMIPSOP_SH_ML 4
-#define MICROMIPSOP_MASK_MM 0x7
-#define MICROMIPSOP_SH_MM 1
-#define MICROMIPSOP_MASK_MN 0x7
-#define MICROMIPSOP_SH_MN 4
-#define MICROMIPSOP_MASK_MP 0x1f
-#define MICROMIPSOP_SH_MP 5
-#define MICROMIPSOP_MASK_MQ 0x7
-#define MICROMIPSOP_SH_MQ 7
-
-#define MICROMIPSOP_MASK_IMMA 0x7f
-#define MICROMIPSOP_SH_IMMA 0
-#define MICROMIPSOP_MASK_IMMB 0x7
-#define MICROMIPSOP_SH_IMMB 1
-#define MICROMIPSOP_MASK_IMMC 0xf
-#define MICROMIPSOP_SH_IMMC 0
-#define MICROMIPSOP_MASK_IMMD 0x3ff
-#define MICROMIPSOP_SH_IMMD 0
-#define MICROMIPSOP_MASK_IMME 0x7f
-#define MICROMIPSOP_SH_IMME 0
-#define MICROMIPSOP_MASK_IMMF 0xf
-#define MICROMIPSOP_SH_IMMF 0
-#define MICROMIPSOP_MASK_IMMG 0xf
-#define MICROMIPSOP_SH_IMMG 0
-#define MICROMIPSOP_MASK_IMMH 0xf
-#define MICROMIPSOP_SH_IMMH 0
-#define MICROMIPSOP_MASK_IMMI 0x7f
-#define MICROMIPSOP_SH_IMMI 0
-#define MICROMIPSOP_MASK_IMMJ 0xf
-#define MICROMIPSOP_SH_IMMJ 0
-#define MICROMIPSOP_MASK_IMML 0xf
-#define MICROMIPSOP_SH_IMML 0
-#define MICROMIPSOP_MASK_IMMM 0x7
-#define MICROMIPSOP_SH_IMMM 1
-#define MICROMIPSOP_MASK_IMMN 0x3
-#define MICROMIPSOP_SH_IMMN 4
-#define MICROMIPSOP_MASK_IMMO 0xf
-#define MICROMIPSOP_SH_IMMO 0
-#define MICROMIPSOP_MASK_IMMP 0x1f
-#define MICROMIPSOP_SH_IMMP 0
-#define MICROMIPSOP_MASK_IMMQ 0x7fffff
-#define MICROMIPSOP_SH_IMMQ 0
-#define MICROMIPSOP_MASK_IMMU 0x1f
-#define MICROMIPSOP_SH_IMMU 0
-#define MICROMIPSOP_MASK_IMMW 0x3f
-#define MICROMIPSOP_SH_IMMW 1
-#define MICROMIPSOP_MASK_IMMX 0xf
-#define MICROMIPSOP_SH_IMMX 1
-#define MICROMIPSOP_MASK_IMMY 0x1ff
-#define MICROMIPSOP_SH_IMMY 1
-
-/* MIPS DSP ASE */
-#define MICROMIPSOP_MASK_DSPACC 0x3
-#define MICROMIPSOP_SH_DSPACC 14
-#define MICROMIPSOP_MASK_DSPSFT 0x3f
-#define MICROMIPSOP_SH_DSPSFT 16
-#define MICROMIPSOP_MASK_SA3 0x7
-#define MICROMIPSOP_SH_SA3 13
-#define MICROMIPSOP_MASK_SA4 0xf
-#define MICROMIPSOP_SH_SA4 12
-#define MICROMIPSOP_MASK_IMM8 0xff
-#define MICROMIPSOP_SH_IMM8 13
-#define MICROMIPSOP_MASK_IMM10 0x3ff
-#define MICROMIPSOP_SH_IMM10 16
-#define MICROMIPSOP_MASK_WRDSP 0x3f
-#define MICROMIPSOP_SH_WRDSP 14
-#define MICROMIPSOP_MASK_BP 0x3
-#define MICROMIPSOP_SH_BP 14
-
-/* Placeholders for fields that only exist in the traditional 32-bit
- instruction encoding; see the comment above for details. */
-#define MICROMIPSOP_MASK_CODE20 0
-#define MICROMIPSOP_SH_CODE20 0
-#define MICROMIPSOP_MASK_PERFREG 0
-#define MICROMIPSOP_SH_PERFREG 0
-#define MICROMIPSOP_MASK_CODE19 0
-#define MICROMIPSOP_SH_CODE19 0
-#define MICROMIPSOP_MASK_ALN 0
-#define MICROMIPSOP_SH_ALN 0
-#define MICROMIPSOP_MASK_VECBYTE 0
-#define MICROMIPSOP_SH_VECBYTE 0
-#define MICROMIPSOP_MASK_VECALIGN 0
-#define MICROMIPSOP_SH_VECALIGN 0
-#define MICROMIPSOP_MASK_DSPACC_S 0
-#define MICROMIPSOP_SH_DSPACC_S 0
-#define MICROMIPSOP_MASK_DSPSFT_7 0
-#define MICROMIPSOP_SH_DSPSFT_7 0
-#define MICROMIPSOP_MASK_RDDSP 0
-#define MICROMIPSOP_SH_RDDSP 0
-#define MICROMIPSOP_MASK_MT_U 0
-#define MICROMIPSOP_SH_MT_U 0
-#define MICROMIPSOP_MASK_MT_H 0
-#define MICROMIPSOP_SH_MT_H 0
-#define MICROMIPSOP_MASK_MTACC_T 0
-#define MICROMIPSOP_SH_MTACC_T 0
-#define MICROMIPSOP_MASK_MTACC_D 0
-#define MICROMIPSOP_SH_MTACC_D 0
-#define MICROMIPSOP_MASK_BBITIND 0
-#define MICROMIPSOP_SH_BBITIND 0
-#define MICROMIPSOP_MASK_CINSPOS 0
-#define MICROMIPSOP_SH_CINSPOS 0
-#define MICROMIPSOP_MASK_CINSLM1 0
-#define MICROMIPSOP_SH_CINSLM1 0
-#define MICROMIPSOP_MASK_SEQI 0
-#define MICROMIPSOP_SH_SEQI 0
-#define MICROMIPSOP_SH_OFFSET_A 0
-#define MICROMIPSOP_MASK_OFFSET_A 0
-#define MICROMIPSOP_SH_OFFSET_B 0
-#define MICROMIPSOP_MASK_OFFSET_B 0
-#define MICROMIPSOP_SH_OFFSET_C 0
-#define MICROMIPSOP_MASK_OFFSET_C 0
-#define MICROMIPSOP_SH_RZ 0
-#define MICROMIPSOP_MASK_RZ 0
-#define MICROMIPSOP_SH_FZ 0
-#define MICROMIPSOP_MASK_FZ 0
-
-/* microMIPS Enhanced VA Scheme */
-#define MICROMIPSOP_SH_EVAOFFSET 0
-#define MICROMIPSOP_MASK_EVAOFFSET 0x1ff
/* These are the characters which may appears in the args field of a microMIPS
instruction. They appear in the order in which the fields appear
@@ -2254,7 +1798,7 @@ extern const int bfd_mips16_num_opcodes;
(MICROMIPSOP_*_RS)
"w" 5-bit same register used as both target and destination
(MICROMIPSOP_*_RT)
- "y" 5-bit source 3 register for ALNV.PS (MICROMIPSOP_*_RS3)
+ "x" 5-bit source 3 register for ALNV.PS (MICROMIPSOP_*_RS3)
"z" must be zero register
"C" 23-bit coprocessor function code (MICROMIPSOP_*_COPZ)
"K" 5-bit Hardware Register (RDHWR instruction) (MICROMIPSOP_*_RS)
@@ -2364,7 +1908,7 @@ extern const int bfd_mips16_num_opcodes;
"12345678 0"
"<>(),+-.@\^|~"
"ABCDEFGHI KLMN RST V "
- "abcd fghijklmnopqrstuvw yz"
+ "abcd fghijklmnopqrstuvwx z"
Extension character sequences used so far ("+" followed by the
following), for quick reference when adding more:
diff --git a/include/sframe.h b/include/sframe.h
index b3d0c2e..347dbc7 100644
--- a/include/sframe.h
+++ b/include/sframe.h
@@ -282,20 +282,22 @@ typedef struct sframe_fre_info
S is the size of the stack frame offset for the FRE, and
N is the number of stack frame offsets in the FRE
- The offsets are interpreted in order as follows:
+ The interpretation of FRE stack offsets is ABI-specific:
- offset1 (interpreted as CFA = BASE_REG + offset1)
-
- if RA is being tracked
- offset2 (interpreted as RA = CFA + offset2)
- if FP is being tracked
- offset3 (intrepreted as FP = CFA + offset2)
- fi
- else
+ AMD64:
+ offset1 (interpreted as CFA = BASE_REG + offset1)
if FP is being tracked
offset2 (intrepreted as FP = CFA + offset2)
fi
- fi
+
+ AARCH64:
+ offset1 (interpreted as CFA = BASE_REG + offset1)
+ if FP is being tracked (in other words, if frame record created)
+ offset2 (interpreted as RA = CFA + offset2)
+ offset3 (intrepreted as FP = CFA + offset3)
+ fi
+ Note that in AAPCS64, a frame record, if created, will save both FP and
+ LR on stack.
*/
/* Used when SFRAME_FRE_TYPE_ADDR1 is specified as FRE type. */
diff --git a/ld/ChangeLog b/ld/ChangeLog
index ab88170..55c8d77 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-01-15 Nick Clifton <nickc@redhat.com>
* configure: Regenerate.
diff --git a/ld/NEWS b/ld/NEWS
index e0b9341..c1e4213 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,7 @@
-*- text -*-
+Changes in 2.43:
+
* Add -z isa-level-report=[none|all|needed|used] to the x86 ELF linker
to report needed and used x86-64 ISA levels.
diff --git a/ld/configure b/ld/configure
index 4e8de84..bf58214 100755
--- a/ld/configure
+++ b/ld/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ld 2.42.50.
+# Generated by GNU Autoconf 2.69 for ld 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ld'
PACKAGE_TARNAME='ld'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='ld 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='ld 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1437,7 +1437,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ld 2.42.50 to adapt to many kinds of systems.
+\`configure' configures ld 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1508,7 +1508,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ld 2.42.50:";;
+ short | recursive ) echo "Configuration of ld 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1689,7 +1689,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ld configure 2.42.50
+ld configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2404,7 +2404,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ld $as_me 2.42.50, which was
+It was created by ld $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3388,7 +3388,7 @@ fi
# Define the identity of the package.
PACKAGE='ld'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -20096,7 +20096,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ld $as_me 2.42.50, which was
+This file was extended by ld $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20162,7 +20162,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ld config.status 2.42.50
+ld config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/ld/emulparams/elf64loongarch.sh b/ld/emulparams/elf64loongarch.sh
index d7b2229..8c805da 100644
--- a/ld/emulparams/elf64loongarch.sh
+++ b/ld/emulparams/elf64loongarch.sh
@@ -1,4 +1,5 @@
source_sh ${srcdir}/emulparams/elf64loongarch-defs.sh
+source_sh ${srcdir}/emulparams/dt-relr.sh
OUTPUT_FORMAT="elf64-loongarch"
case "$target" in
diff --git a/ld/pdb.c b/ld/pdb.c
index 88639d5..7a08ae3 100644
--- a/ld/pdb.c
+++ b/ld/pdb.c
@@ -872,7 +872,7 @@ add_globals_ref (struct globals *glob, bfd *sym_rec_stream, const char *name,
*slot = xmalloc (offsetof (struct global, data) + len);
- hash = crc32 ((const uint8_t *) name, name_len);
+ hash = calc_hash (name, name_len);
hash %= NUM_GLOBALS_HASH_BUCKETS;
g = *slot;
diff --git a/ld/plugin.c b/ld/plugin.c
index 8107841..03ee988 100644
--- a/ld/plugin.c
+++ b/ld/plugin.c
@@ -777,14 +777,9 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
if (syms[n].def != LDPK_UNDEF && syms[n].def != LDPK_WEAKUNDEF)
{
blhe = h;
- if (blhe && link_info.wrap_hash != NULL)
- {
- /* Check if a symbol is a wrapper symbol. */
- struct bfd_link_hash_entry *unwrap
- = unwrap_hash_lookup (&link_info, (bfd *) abfd, blhe);
- if (unwrap && unwrap != h)
- wrap_status = wrapper;
- }
+ /* Check if a symbol is a wrapper symbol. */
+ if (blhe && blhe->wrapper_symbol)
+ wrap_status = wrapper;
}
else
{
diff --git a/ld/po/ld.pot b/ld/po/ld.pot
index eb7d69d..345a6d2 100644
--- a/ld/po/ld.pot
+++ b/ld/po/ld.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2023-11-15 11:18+0000\n"
+"POT-Creation-Date: 2024-07-20 13:15+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -55,15 +55,15 @@ msgstr ""
msgid "%P: symbol `%pT' missing from main hash table\n"
msgstr ""
-#: ldcref.c:517 ldcref.c:628 ldmain.c:1315 ldmisc.c:327 pe-dll.c:759
-#: pe-dll.c:1329 pe-dll.c:1450 pe-dll.c:1552 eaarch64pe.c:1653 earm64pe.c:1653
-#: earm_wince_pe.c:1661 earm_wince_pe.c:1833 earmpe.c:1661 earmpe.c:1833
-#: ei386pe.c:1661 ei386pe.c:1833 ei386pe_posix.c:1661 ei386pe_posix.c:1833
-#: ei386pep.c:1653 emcorepe.c:1661 emcorepe.c:1833 eshpe.c:1661 eshpe.c:1833
+#: ldcref.c:517 ldcref.c:628 ldmain.c:1346 ldmisc.c:327 pe-dll.c:759
+#: pe-dll.c:1329 pe-dll.c:1450 pe-dll.c:1552 eaarch64pe.c:1580 earm64pe.c:1580
+#: earm_wince_pe.c:1583 earm_wince_pe.c:1755 earmpe.c:1583 earmpe.c:1755
+#: ei386pe.c:1583 ei386pe.c:1755 ei386pe_posix.c:1583 ei386pe_posix.c:1755
+#: ei386pep.c:1580 emcorepe.c:1583 emcorepe.c:1755 eshpe.c:1583 eshpe.c:1755
msgid "%F%P: %pB: could not read symbols: %E\n"
msgstr ""
-#: ldcref.c:690 ldcref.c:697 ldmain.c:1377 ldmain.c:1384
+#: ldcref.c:690 ldcref.c:697 ldmain.c:1408 ldmain.c:1415
msgid "%F%P: %pB: could not read relocs: %E\n"
msgstr ""
@@ -102,10 +102,6 @@ msgid ""
"\n"
msgstr ""
-#: ldelf.c:77
-msgid "%P: warning: -z dynamic-undefined-weak ignored\n"
-msgstr ""
-
#: ldelf.c:97
msgid "%F%P: common page size (0x%v) > maximum page size (0x%v)\n"
msgstr ""
@@ -122,7 +118,7 @@ msgstr ""
msgid "%P: warning: %s, needed by %pB, may conflict with %s\n"
msgstr ""
-#: ldelf.c:286 ldfile.c:343
+#: ldelf.c:286 ldfile.c:361
#, c-format
msgid "attempt to open %s failed\n"
msgstr ""
@@ -140,7 +136,7 @@ msgstr ""
msgid "found %s at %s\n"
msgstr ""
-#: ldelf.c:410 ldlang.c:3118 ldlang.c:3132
+#: ldelf.c:410 ldlang.c:3119 ldlang.c:3133
msgid "%F%P: %pB: error adding symbols: %E\n"
msgstr ""
@@ -193,9 +189,9 @@ msgstr ""
msgid "%P: warning: .note.gnu.build-id section discarded, --build-id ignored\n"
msgstr ""
-#: ldelf.c:1500 eaarch64pe.c:1427 earm64pe.c:1427 earm_wince_pe.c:1417
-#: earmpe.c:1417 ei386pe.c:1417 ei386pe_posix.c:1417 ei386pep.c:1427
-#: emcorepe.c:1417 eshpe.c:1417
+#: ldelf.c:1500 eaarch64pe.c:1354 earm64pe.c:1354 earm_wince_pe.c:1339
+#: earmpe.c:1339 ei386pe.c:1339 ei386pe_posix.c:1339 ei386pep.c:1354
+#: emcorepe.c:1339 eshpe.c:1339
msgid "%P: warning: unrecognized --build-id style ignored\n"
msgstr ""
@@ -225,13 +221,13 @@ msgid ""
"ignored\n"
msgstr ""
-#: ldelf.c:1666 eaix5ppc.c:1574 eaix5rs6.c:1574 eaixppc.c:1574 eaixrs6.c:1574
-#: eppcmacos.c:1574
+#: ldelf.c:1666 eaix5ppc.c:1546 eaix5rs6.c:1546 eaixppc.c:1546 eaixrs6.c:1546
+#: eppcmacos.c:1546
msgid "%F%P: failed to record assignment to %s: %E\n"
msgstr ""
-#: ldelf.c:1844 ldelf.c:1909 eaix5ppc.c:844 eaix5rs6.c:844 eaixppc.c:844
-#: eaixrs6.c:844 eelf64_ia64_vms.c:210 eppcmacos.c:844
+#: ldelf.c:1844 ldelf.c:1909 eaix5ppc.c:816 eaix5rs6.c:816 eaixppc.c:816
+#: eaixrs6.c:816 eelf64_ia64_vms.c:209 eppcmacos.c:816
msgid "%F%P: failed to set dynamic section sizes: %E\n"
msgstr ""
@@ -243,7 +239,7 @@ msgstr ""
msgid "%F%P: %pA has both ordered and unordered sections\n"
msgstr ""
-#: ldelfgen.c:310
+#: ldelfgen.c:310 eelf32loongarch.c:106 eelf64loongarch.c:106
msgid "%F%P: map sections to segments failed: %E\n"
msgstr ""
@@ -316,11 +312,11 @@ msgstr ""
msgid "%F%P:%pS / by zero\n"
msgstr ""
-#: ldexp.c:764 ldlang.c:3976 ldmain.c:1282 eaarch64pe.c:1241 eaarch64pe.c:1842
-#: earm64pe.c:1241 earm64pe.c:1842 earm_wince_pe.c:1232 earm_wince_pe.c:1944
-#: earmpe.c:1232 earmpe.c:1944 ei386pe.c:1232 ei386pe.c:1944
-#: ei386pe_posix.c:1232 ei386pe_posix.c:1944 ei386pep.c:1241 ei386pep.c:1842
-#: emcorepe.c:1232 emcorepe.c:1944 eshpe.c:1232 eshpe.c:1944
+#: ldexp.c:764 ldlang.c:3977 ldmain.c:1313 eaarch64pe.c:1168 eaarch64pe.c:1769
+#: earm64pe.c:1168 earm64pe.c:1769 earm_wince_pe.c:1154 earm_wince_pe.c:1866
+#: earmpe.c:1154 earmpe.c:1866 ei386pe.c:1154 ei386pe.c:1866
+#: ei386pe_posix.c:1154 ei386pe_posix.c:1866 ei386pep.c:1168 ei386pep.c:1769
+#: emcorepe.c:1154 emcorepe.c:1866 eshpe.c:1154 eshpe.c:1866
msgid "%F%P: bfd_link_hash_lookup failed: %E\n"
msgstr ""
@@ -368,7 +364,7 @@ msgstr ""
msgid "%F%P:%pS: nonconstant expression for %s\n"
msgstr ""
-#: ldexp.c:1710 ldlang.c:1328 ldlang.c:3451 ldlang.c:8146
+#: ldexp.c:1710 ldlang.c:1329 ldlang.c:3452 ldlang.c:8181
msgid "%F%P: can not create hash table: %E\n"
msgstr ""
@@ -408,752 +404,758 @@ msgstr ""
msgid "<discard>"
msgstr ""
-#: ldfile.c:345
+#: ldfile.c:363
#, c-format
msgid "attempt to open %s succeeded\n"
msgstr ""
-#: ldfile.c:351
+#: ldfile.c:369
msgid "%F%P: invalid BFD target `%s'\n"
msgstr ""
-#: ldfile.c:481 ldfile.c:511
+#: ldfile.c:499 ldfile.c:529
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr ""
-#: ldfile.c:494
+#: ldfile.c:512
msgid "%F%P: attempted static link of dynamic object `%s'\n"
msgstr ""
-#: ldfile.c:621
+#: ldfile.c:647
msgid "%P: cannot find %s (%s): %E\n"
msgstr ""
#. We ignore the return status of the script
#. and always print the error message.
-#: ldfile.c:624 ldfile.c:708 ldfile.c:712
+#: ldfile.c:650 ldfile.c:734 ldfile.c:738
msgid "%P: cannot find %s: %E\n"
msgstr ""
-#: ldfile.c:676
+#: ldfile.c:702
msgid "%P: cannot find %s inside %s\n"
msgstr ""
-#: ldfile.c:691 ldmain.c:1462
+#: ldfile.c:717 ldmain.c:1493
msgid "%P: About to run error handling script '%s' with arguments: '%s' '%s'\n"
msgstr ""
-#: ldfile.c:695 ldmain.c:1466
+#: ldfile.c:721 ldmain.c:1497
msgid "error handling script"
msgstr ""
-#: ldfile.c:701 ldmain.c:1472
+#: ldfile.c:727 ldmain.c:1503
msgid "%P: Failed to run error handling script '%s', reason: "
msgstr ""
-#: ldfile.c:722
+#: ldfile.c:748
msgid "%P: note to link with %s use -l:%s or rename it to lib%s\n"
msgstr ""
-#: ldfile.c:754
+#: ldfile.c:780
#, c-format
msgid "cannot find script file %s\n"
msgstr ""
-#: ldfile.c:756
+#: ldfile.c:782
#, c-format
msgid "opened script file %s\n"
msgstr ""
-#: ldfile.c:905
+#: ldfile.c:923
msgid "%F%P: error: linker script file '%s' appears multiple times\n"
msgstr ""
-#: ldfile.c:927
+#: ldfile.c:945
msgid "%F%P: cannot open linker script file %s: %E\n"
msgstr ""
-#: ldfile.c:998
+#: ldfile.c:1016
msgid "%F%P: cannot represent machine `%s'\n"
msgstr ""
-#: ldlang.c:1414
+#: ldlang.c:1415
msgid "%P:%pS: warning: redeclaration of memory region `%s'\n"
msgstr ""
-#: ldlang.c:1420
+#: ldlang.c:1421
msgid "%P:%pS: warning: memory region `%s' not declared\n"
msgstr ""
-#: ldlang.c:1456
+#: ldlang.c:1457
msgid "%F%P:%pS: error: alias for default memory region\n"
msgstr ""
-#: ldlang.c:1467
+#: ldlang.c:1468
msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n"
msgstr ""
-#: ldlang.c:1474
+#: ldlang.c:1475
msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
msgstr ""
-#: ldlang.c:1535 ldlang.c:1570
+#: ldlang.c:1536 ldlang.c:1571
msgid "%F%P: failed creating section `%s': %E\n"
msgstr ""
-#: ldlang.c:2275
+#: ldlang.c:2276
msgid ""
"\n"
"As-needed library included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-#: ldlang.c:2340
+#: ldlang.c:2341
msgid ""
"\n"
"Discarded input sections\n"
"\n"
msgstr ""
-#: ldlang.c:2348
+#: ldlang.c:2349
msgid ""
"\n"
"There are no discarded input sections\n"
msgstr ""
-#: ldlang.c:2350
+#: ldlang.c:2351
msgid ""
"\n"
"Memory Configuration\n"
"\n"
msgstr ""
-#: ldlang.c:2352
+#: ldlang.c:2353
msgid "Name"
msgstr ""
-#: ldlang.c:2352
+#: ldlang.c:2353
msgid "Origin"
msgstr ""
-#: ldlang.c:2352
+#: ldlang.c:2353
msgid "Length"
msgstr ""
-#: ldlang.c:2352
+#: ldlang.c:2353
msgid "Attributes"
msgstr ""
-#: ldlang.c:2376
+#: ldlang.c:2377
msgid ""
"\n"
"Linker script and memory map\n"
"\n"
msgstr ""
-#: ldlang.c:2429
+#: ldlang.c:2430
msgid "%F%P: illegal use of `%s' section\n"
msgstr ""
-#: ldlang.c:2438
+#: ldlang.c:2439
msgid "%F%P: output format %s cannot represent section called %s: %E\n"
msgstr ""
-#: ldlang.c:2619
+#: ldlang.c:2620
msgid ""
"%P:%pS: warning: --enable-non-contiguous-regions makes section `%pA' from `%"
"pB' match /DISCARD/ clause.\n"
msgstr ""
-#: ldlang.c:2643
+#: ldlang.c:2644
msgid ""
"%P:%pS: warning: --enable-non-contiguous-regions may change behaviour for "
"section `%pA' from `%pB' (assigned to %pA, but additional match: %pA)\n"
msgstr ""
-#: ldlang.c:3021
+#: ldlang.c:3022
msgid "%P: %pB: file not recognized: %E; matching formats:"
msgstr ""
-#: ldlang.c:3030
+#: ldlang.c:3031
msgid "%F%P: %pB: file not recognized: %E\n"
msgstr ""
-#: ldlang.c:3103
+#: ldlang.c:3104
msgid "%F%P: %pB: member %pB in archive is not an object\n"
msgstr ""
-#: ldlang.c:3373
+#: ldlang.c:3374
msgid "%F%P: input file '%s' is the same as output file\n"
msgstr ""
-#: ldlang.c:3421
+#: ldlang.c:3422
msgid ""
"%P: warning: could not find any targets that match endianness requirement\n"
msgstr ""
-#: ldlang.c:3435
+#: ldlang.c:3436
msgid "%F%P: target %s not found\n"
msgstr ""
-#: ldlang.c:3437
+#: ldlang.c:3438
msgid "%F%P: cannot open output file %s: %E\n"
msgstr ""
-#: ldlang.c:3443
+#: ldlang.c:3444
msgid "%F%P: %s: can not make object file: %E\n"
msgstr ""
-#: ldlang.c:3447
+#: ldlang.c:3448
msgid "%F%P: %s: can not set architecture: %E\n"
msgstr ""
-#: ldlang.c:3634
+#: ldlang.c:3635
msgid "%P: warning: %s contains output sections; did you forget -T?\n"
msgstr ""
-#: ldlang.c:3681
+#: ldlang.c:3682
#, c-format
msgid "%s: %s\n"
msgstr ""
-#: ldlang.c:3681
+#: ldlang.c:3682
msgid "CTF warning"
msgstr ""
-#: ldlang.c:3681
+#: ldlang.c:3682
msgid "CTF error"
msgstr ""
-#: ldlang.c:3687
+#: ldlang.c:3688
#, c-format
msgid "CTF error: cannot get CTF errors: `%s'\n"
msgstr ""
-#: ldlang.c:3721
+#: ldlang.c:3722
msgid ""
"%P: warning: CTF section in %pB not loaded; its types will be discarded: %s\n"
msgstr ""
-#: ldlang.c:3750
+#: ldlang.c:3751
msgid "%P: warning: CTF output not created: `%s'\n"
msgstr ""
-#: ldlang.c:3793
+#: ldlang.c:3794
msgid "%P: warning: CTF section in %pB cannot be linked: `%s'\n"
msgstr ""
-#: ldlang.c:3813
+#: ldlang.c:3814
msgid "%P: warning: CTF linking failed; output will have no CTF section: %s\n"
msgstr ""
-#: ldlang.c:3884
+#: ldlang.c:3885
msgid ""
"%P: warning: CTF section emission failed; output will have no CTF section: %"
"s\n"
msgstr ""
-#: ldlang.c:3923
+#: ldlang.c:3924
msgid ""
"%P: warning: CTF section in %pB not linkable: %P was built without support "
"for CTF\n"
msgstr ""
-#: ldlang.c:4061
+#: ldlang.c:4062
msgid "%X%P: required symbol `%s' not defined\n"
msgstr ""
-#: ldlang.c:4262 ldlang.c:4271
+#: ldlang.c:4263 ldlang.c:4272
msgid "%F%P: invalid type for output section `%s'\n"
msgstr ""
-#: ldlang.c:4407
+#: ldlang.c:4408
msgid ""
"warning: INSERT statement in linker script is incompatible with --enable-non-"
"contiguous-regions.\n"
msgstr ""
-#: ldlang.c:4420
+#: ldlang.c:4421
msgid "%F%P: %s not found for insert\n"
msgstr ""
-#: ldlang.c:4692
+#: ldlang.c:4693
msgid " load address 0x%V"
msgstr ""
-#: ldlang.c:4957
+#: ldlang.c:4958
msgid "%W (size before relaxing)\n"
msgstr ""
-#: ldlang.c:5086
+#: ldlang.c:5087
#, c-format
msgid "Address of section %s set to "
msgstr ""
-#: ldlang.c:5288
+#: ldlang.c:5289
#, c-format
msgid "Fail with %d\n"
msgstr ""
-#: ldlang.c:5502
+#: ldlang.c:5506
msgid ""
"%F%P: Output section `%pA' not large enough for the linker-created stubs "
"section `%pA'.\n"
msgstr ""
-#: ldlang.c:5507
+#: ldlang.c:5511
msgid ""
"%F%P: Relaxation not supported with --enable-non-contiguous-regions (section "
"`%pA' would overflow `%pA' after it changed size).\n"
msgstr ""
-#: ldlang.c:5616
+#: ldlang.c:5620
msgid "%X%P: section %s VMA wraps around address space\n"
msgstr ""
-#: ldlang.c:5622
+#: ldlang.c:5626
msgid "%X%P: section %s LMA wraps around address space\n"
msgstr ""
-#: ldlang.c:5674
+#: ldlang.c:5678
msgid "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
msgstr ""
-#: ldlang.c:5718
+#: ldlang.c:5722
msgid "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
msgstr ""
-#: ldlang.c:5741
+#: ldlang.c:5745
msgid "%X%P: region `%s' overflowed by %lu byte\n"
msgid_plural "%X%P: region `%s' overflowed by %lu bytes\n"
msgstr[0] ""
msgstr[1] ""
-#: ldlang.c:5766
+#: ldlang.c:5770
msgid "%X%P: address 0x%v of %pB section `%s' is not within region `%s'\n"
msgstr ""
-#: ldlang.c:5777
+#: ldlang.c:5781
msgid "%X%P: %pB section `%s' will not fit in region `%s'\n"
msgstr ""
-#: ldlang.c:5863
+#: ldlang.c:5867
msgid ""
"%F%P:%pS: non constant or forward reference address expression for section %"
"s\n"
msgstr ""
-#: ldlang.c:5888
+#: ldlang.c:5892
msgid "%X%P: internal error on COFF shared library section %s\n"
msgstr ""
-#: ldlang.c:5946
+#: ldlang.c:5950
msgid "%F%P: error: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:5950
+#: ldlang.c:5954
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr ""
-#: ldlang.c:5984
+#: ldlang.c:5988
msgid "%P: warning: start of section %s changed by %ld\n"
msgstr ""
-#: ldlang.c:6077
+#: ldlang.c:6081
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr ""
-#: ldlang.c:6253
+#: ldlang.c:6257
msgid "%F%P: can't relax section: %E\n"
msgstr ""
-#: ldlang.c:6662
+#: ldlang.c:6666
msgid "%F%P: invalid data statement\n"
msgstr ""
-#: ldlang.c:6695
+#: ldlang.c:6699
msgid "%F%P: invalid reloc statement\n"
msgstr ""
-#: ldlang.c:7113
+#: ldlang.c:7117
msgid ""
"%F%P: --gc-sections requires a defined symbol root specified by -e or -u\n"
msgstr ""
-#: ldlang.c:7138
+#: ldlang.c:7142
msgid "%F%P: %s: can't set start address\n"
msgstr ""
-#: ldlang.c:7151 ldlang.c:7170
+#: ldlang.c:7155 ldlang.c:7174
msgid "%F%P: can't set start address\n"
msgstr ""
-#: ldlang.c:7164
+#: ldlang.c:7168
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr ""
-#: ldlang.c:7175 ldlang.c:7183
+#: ldlang.c:7179 ldlang.c:7187
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr ""
-#: ldlang.c:7239
+#: ldlang.c:7243
msgid ""
"%F%P: relocatable linking with relocations from format %s (%pB) to format %s "
"(%pB) is not supported\n"
msgstr ""
-#: ldlang.c:7249
+#: ldlang.c:7253
msgid ""
"%X%P: %s architecture of input file `%pB' is incompatible with %s output\n"
msgstr ""
-#: ldlang.c:7273
+#: ldlang.c:7277
msgid "%X%P: failed to merge target specific data of file %pB\n"
msgstr ""
-#: ldlang.c:7344
+#: ldlang.c:7348
msgid "%F%P: could not define common symbol `%pT': %E\n"
msgstr ""
-#: ldlang.c:7356
+#: ldlang.c:7360
msgid ""
"\n"
"Allocating common symbols\n"
msgstr ""
-#: ldlang.c:7357
+#: ldlang.c:7361
msgid ""
"Common symbol size file\n"
"\n"
msgstr ""
-#: ldlang.c:7414
+#: ldlang.c:7418
msgid "%X%P: error: unplaced orphan section `%pA' from `%pB'\n"
msgstr ""
-#: ldlang.c:7432
+#: ldlang.c:7436
msgid ""
"%P: warning: orphan section `%pA' from `%pB' being placed in section `%s'\n"
msgstr ""
-#: ldlang.c:7522
+#: ldlang.c:7526
msgid "%F%P: invalid character %c (%d) in flags\n"
msgstr ""
-#: ldlang.c:7634
+#. && in_section_ordering
+#: ldlang.c:7620
+msgid "%F%P:%pS: error: output section '%s' must already exist\n"
+msgstr ""
+
+#: ldlang.c:7644
msgid "%F%P:%pS: error: align with input and explicit align specified\n"
msgstr ""
-#: ldlang.c:8105
+#: ldlang.c:8115
msgid ""
"%P: warning: --enable-non-contiguous-regions discards section `%pA' from `%"
"pB'\n"
msgstr ""
-#: ldlang.c:8184
+#: ldlang.c:8219
msgid "%F%P: %s: plugin reported error after all symbols read\n"
msgstr ""
-#: ldlang.c:8762
+#: ldlang.c:8797
msgid "%F%P: multiple STARTUP files\n"
msgstr ""
-#: ldlang.c:8808
+#: ldlang.c:8843
msgid "%X%P:%pS: section has both a load address and a load region\n"
msgstr ""
-#: ldlang.c:8914
+#: ldlang.c:8952
msgid ""
"%X%P:%pS: PHDRS and FILEHDR are not supported when prior PT_LOAD headers "
"lack them\n"
msgstr ""
-#: ldlang.c:8987
+#: ldlang.c:9025
msgid "%F%P: no sections assigned to phdrs\n"
msgstr ""
-#: ldlang.c:9025
+#: ldlang.c:9063
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr ""
-#: ldlang.c:9045
+#: ldlang.c:9083
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr ""
-#: ldlang.c:9468
+#: ldlang.c:9506
msgid "%X%P: unknown language `%s' in version information\n"
msgstr ""
-#: ldlang.c:9613
+#: ldlang.c:9651
msgid ""
"%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr ""
-#: ldlang.c:9622
+#: ldlang.c:9660
msgid "%X%P: duplicate version tag `%s'\n"
msgstr ""
-#: ldlang.c:9643 ldlang.c:9652 ldlang.c:9670 ldlang.c:9680
+#: ldlang.c:9681 ldlang.c:9690 ldlang.c:9708 ldlang.c:9718
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr ""
-#: ldlang.c:9720
+#: ldlang.c:9758
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr ""
-#: ldlang.c:9743
+#: ldlang.c:9781
msgid "%X%P: unable to read .exports section contents\n"
msgstr ""
-#: ldlang.c:9789
+#: ldlang.c:9827
msgid "%P: invalid origin for memory region %s\n"
msgstr ""
-#: ldlang.c:9801
+#: ldlang.c:9839
msgid "%P: invalid length for memory region %s\n"
msgstr ""
-#: ldlang.c:9913
+#: ldlang.c:9951
msgid "%X%P: unknown feature `%s'\n"
msgstr ""
-#: ldmain.c:195
+#: ldmain.c:197
msgid "%F%P: cannot open dependency file %s: %E\n"
msgstr ""
-#: ldmain.c:268
+#: ldmain.c:290
msgid "%F%P: fatal error: libbfd ABI mismatch\n"
msgstr ""
-#: ldmain.c:304
+#: ldmain.c:326
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr ""
-#: ldmain.c:409
+#: ldmain.c:431
msgid "built in linker script"
msgstr ""
-#: ldmain.c:419
-msgid "using external linker script:"
+#: ldmain.c:441
+#, c-format
+msgid "using external linker script: %s"
msgstr ""
-#: ldmain.c:421
+#: ldmain.c:443
msgid "using internal linker script:"
msgstr ""
-#: ldmain.c:468
+#: ldmain.c:493
msgid "%F%P: --no-define-common may not be used without -shared\n"
msgstr ""
-#: ldmain.c:474
+#: ldmain.c:500
msgid "%F%P: no input files\n"
msgstr ""
-#: ldmain.c:478
+#: ldmain.c:504
msgid "%P: mode %s\n"
msgstr ""
-#: ldmain.c:494 ends32belf.c:461 ends32belf16m.c:461 ends32belf_linux.c:594
-#: ends32elf.c:461 ends32elf16m.c:461 ends32elf_linux.c:594
+#: ldmain.c:522 ends32belf.c:450 ends32belf16m.c:450 ends32belf_linux.c:593
+#: ends32elf.c:450 ends32elf16m.c:450 ends32elf_linux.c:593
msgid "%F%P: cannot open map file %s: %E\n"
msgstr ""
-#: ldmain.c:558
+#: ldmain.c:586
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr ""
-#: ldmain.c:569
+#: ldmain.c:597
msgid "%F%P: %s: final close failed: %E\n"
msgstr ""
-#: ldmain.c:596
+#: ldmain.c:624
msgid "%F%P: unable to open for source of copy `%s'\n"
msgstr ""
-#: ldmain.c:599
+#: ldmain.c:627
msgid "%F%P: unable to open for destination of copy `%s'\n"
msgstr ""
-#: ldmain.c:606
+#: ldmain.c:634
msgid "%P: error writing file `%s'\n"
msgstr ""
-#: ldmain.c:611 pe-dll.c:1985
+#: ldmain.c:639 pe-dll.c:1985
#, c-format
msgid "%P: error closing file `%s'\n"
msgstr ""
-#: ldmain.c:623
+#: ldmain.c:651
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr ""
-#: ldmain.c:710
+#: ldmain.c:738
msgid "%F%P: missing argument to -m\n"
msgstr ""
-#: ldmain.c:764 ldmain.c:781 ldmain.c:801 ldmain.c:833 pe-dll.c:1410
+#: ldmain.c:792 ldmain.c:809 ldmain.c:829 ldmain.c:861 pe-dll.c:1410
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:768 ldmain.c:785 ldmain.c:805
+#: ldmain.c:796 ldmain.c:813 ldmain.c:833
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:819
+#: ldmain.c:847
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr ""
-#: ldmain.c:863
+#: ldmain.c:891
msgid "%F%P: bfd_hash_lookup for insertion failed: %E\n"
msgstr ""
-#: ldmain.c:868
+#: ldmain.c:896
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr ""
-#: ldmain.c:984
+#: ldmain.c:1015
msgid ""
"Archive member included to satisfy reference by file (symbol)\n"
"\n"
msgstr ""
-#: ldmain.c:1090
+#: ldmain.c:1121
msgid "%P: %C: warning: multiple definition of `%pT'"
msgstr ""
-#: ldmain.c:1093
+#: ldmain.c:1124
msgid "%X%P: %C: multiple definition of `%pT'"
msgstr ""
-#: ldmain.c:1096
+#: ldmain.c:1127
msgid "; %D: first defined here"
msgstr ""
-#: ldmain.c:1101
+#: ldmain.c:1132
msgid "%P: disabling relaxation; it will not work with multiple definitions\n"
msgstr ""
-#: ldmain.c:1154
+#: ldmain.c:1185
msgid "%P: %pB: warning: definition of `%pT' overriding common from %pB\n"
msgstr ""
-#: ldmain.c:1158
+#: ldmain.c:1189
msgid "%P: %pB: warning: definition of `%pT' overriding common\n"
msgstr ""
-#: ldmain.c:1167
+#: ldmain.c:1198
msgid "%P: %pB: warning: common of `%pT' overridden by definition from %pB\n"
msgstr ""
-#: ldmain.c:1171
+#: ldmain.c:1202
msgid "%P: %pB: warning: common of `%pT' overridden by definition\n"
msgstr ""
-#: ldmain.c:1180
+#: ldmain.c:1211
msgid ""
"%P: %pB: warning: common of `%pT' overridden by larger common from %pB\n"
msgstr ""
-#: ldmain.c:1184
+#: ldmain.c:1215
msgid "%P: %pB: warning: common of `%pT' overridden by larger common\n"
msgstr ""
-#: ldmain.c:1191
+#: ldmain.c:1222
msgid "%P: %pB: warning: common of `%pT' overriding smaller common from %pB\n"
msgstr ""
-#: ldmain.c:1195
+#: ldmain.c:1226
msgid "%P: %pB: warning: common of `%pT' overriding smaller common\n"
msgstr ""
-#: ldmain.c:1202
+#: ldmain.c:1233
msgid "%P: %pB and %pB: warning: multiple common of `%pT'\n"
msgstr ""
-#: ldmain.c:1205
+#: ldmain.c:1236
msgid "%P: %pB: warning: multiple common of `%pT'\n"
msgstr ""
-#: ldmain.c:1224 ldmain.c:1260
+#: ldmain.c:1255 ldmain.c:1291
msgid "%P: warning: global constructor %s used\n"
msgstr ""
-#: ldmain.c:1270
+#: ldmain.c:1301
msgid "%F%P: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr ""
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1342 ldmain.c:1344 ldmain.c:1346 ldmain.c:1354 ldmain.c:1397
+#: ldmain.c:1373 ldmain.c:1375 ldmain.c:1377 ldmain.c:1385 ldmain.c:1428
msgid "warning: "
msgstr ""
-#: ldmain.c:1487
+#: ldmain.c:1518
msgid "%X%P: %H: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1490
+#: ldmain.c:1521
msgid "%P: %H: warning: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1496
+#: ldmain.c:1527
msgid "%X%P: %D: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1499
+#: ldmain.c:1530
msgid "%P: %D: warning: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1510
+#: ldmain.c:1541
msgid "%X%P: %pB: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1513
+#: ldmain.c:1544
msgid "%P: %pB: warning: undefined reference to `%pT'\n"
msgstr ""
-#: ldmain.c:1519
+#: ldmain.c:1550
msgid "%X%P: %pB: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1522
+#: ldmain.c:1553
msgid "%P: %pB: warning: more undefined references to `%pT' follow\n"
msgstr ""
-#: ldmain.c:1559
+#: ldmain.c:1590
msgid " additional relocation overflows omitted from the output\n"
msgstr ""
-#: ldmain.c:1572
+#: ldmain.c:1603
#, c-format
msgid " relocation truncated to fit: %s against undefined symbol `%pT'"
msgstr ""
-#: ldmain.c:1578
+#: ldmain.c:1609
#, c-format
msgid ""
" relocation truncated to fit: %s against symbol `%pT' defined in %pA section "
"in %pB"
msgstr ""
-#: ldmain.c:1591
+#: ldmain.c:1622
#, c-format
msgid " relocation truncated to fit: %s against `%pT'"
msgstr ""
-#: ldmain.c:1607
+#: ldmain.c:1638
msgid "%X%H: dangerous relocation: %s\n"
msgstr ""
-#: ldmain.c:1621
+#: ldmain.c:1652
msgid "%X%H: reloc refers to symbol `%pT' which is not being output\n"
msgstr ""
-#: ldmain.c:1655
+#: ldmain.c:1686
msgid "%P: %pB: reference to %s\n"
msgstr ""
-#: ldmain.c:1657
+#: ldmain.c:1688
msgid "%P: %pB: definition of %s\n"
msgstr ""
@@ -1167,19 +1169,27 @@ msgstr ""
msgid "no symbol"
msgstr ""
-#: ldmisc.c:626
-msgid "%F%P: internal error %s %d\n"
+#: ldmisc.c:688
+msgid "%P: error: unsupported option: %s\n"
msgstr ""
#: ldmisc.c:690
+msgid "%P: warning: %s ignored\n"
+msgstr ""
+
+#: ldmisc.c:701
+msgid "%F%P: internal error %s %d\n"
+msgstr ""
+
+#: ldmisc.c:765
msgid "%P: internal error: aborting at %s:%d in %s\n"
msgstr ""
-#: ldmisc.c:693
+#: ldmisc.c:768
msgid "%P: internal error: aborting at %s:%d\n"
msgstr ""
-#: ldmisc.c:695
+#: ldmisc.c:770
msgid "%F%P: please report this bug\n"
msgstr ""
@@ -1191,7 +1201,7 @@ msgstr ""
#: ldver.c:42
#, c-format
-msgid "Copyright (C) 2023 Free Software Foundation, Inc.\n"
+msgid "Copyright (C) 2024 Free Software Foundation, Inc.\n"
msgstr ""
#: ldver.c:43
@@ -1208,28 +1218,33 @@ msgstr ""
msgid " Supported emulations:\n"
msgstr ""
-#: ldwrite.c:60 ldwrite.c:170 ldwrite.c:222 ldwrite.c:263
-msgid "%F%P: bfd_new_link_order failed\n"
+#: ldwrite.c:60 ldwrite.c:67 ldwrite.c:173 ldwrite.c:181 ldwrite.c:227
+#: ldwrite.c:268
+msgid "%F%P: bfd_new_link_order failed: %E\n"
msgstr ""
-#: ldwrite.c:332
+#: ldwrite.c:337
msgid "%F%P: cannot create split section name for %s\n"
msgstr ""
-#: ldwrite.c:344
+#: ldwrite.c:349
msgid "%F%P: clone section failed: %E\n"
msgstr ""
-#: ldwrite.c:382
+#: ldwrite.c:387
#, c-format
msgid "%8x something else\n"
msgstr ""
-#: ldwrite.c:552
+#: ldwrite.c:553
msgid "%F%P: final link failed: %E\n"
msgstr ""
-#: lexsup.c:105 lexsup.c:300
+#: ldwrite.c:555
+msgid "%F%P: final link failed\n"
+msgstr ""
+
+#: lexsup.c:105 lexsup.c:303
msgid "KEYWORD"
msgstr ""
@@ -1245,7 +1260,7 @@ msgstr ""
msgid "Set architecture"
msgstr ""
-#: lexsup.c:110 lexsup.c:440
+#: lexsup.c:110 lexsup.c:443
msgid "TARGET"
msgstr ""
@@ -1253,9 +1268,9 @@ msgstr ""
msgid "Specify target for following input files"
msgstr ""
-#: lexsup.c:113 lexsup.c:119 lexsup.c:180 lexsup.c:184 lexsup.c:220
-#: lexsup.c:224 lexsup.c:239 lexsup.c:241 lexsup.c:462 lexsup.c:531
-#: lexsup.c:544 lexsup.c:548
+#: lexsup.c:113 lexsup.c:119 lexsup.c:180 lexsup.c:184 lexsup.c:223
+#: lexsup.c:227 lexsup.c:242 lexsup.c:244 lexsup.c:465 lexsup.c:491
+#: lexsup.c:537 lexsup.c:550 lexsup.c:554
msgid "FILE"
msgstr ""
@@ -1275,8 +1290,8 @@ msgstr ""
msgid "Force group members out of groups"
msgstr ""
-#: lexsup.c:124 lexsup.c:508 lexsup.c:510 lexsup.c:512 lexsup.c:514
-#: lexsup.c:516 lexsup.c:518
+#: lexsup.c:124 lexsup.c:514 lexsup.c:516 lexsup.c:518 lexsup.c:520
+#: lexsup.c:522 lexsup.c:524
msgid "ADDRESS"
msgstr ""
@@ -1418,7 +1433,7 @@ msgstr ""
msgid "Generate import library"
msgstr ""
-#: lexsup.c:187 lexsup.c:198
+#: lexsup.c:187 lexsup.c:201
msgid "PLUGIN"
msgstr ""
@@ -1426,7 +1441,7 @@ msgstr ""
msgid "Load named plugin"
msgstr ""
-#: lexsup.c:189 lexsup.c:200
+#: lexsup.c:189 lexsup.c:203
msgid "ARG"
msgstr ""
@@ -1434,502 +1449,510 @@ msgstr ""
msgid "Send arg to last-loaded plugin"
msgstr ""
-#: lexsup.c:191 lexsup.c:194
+#: lexsup.c:191
+msgid "Store plugin intermediate files permanently"
+msgstr ""
+
+#: lexsup.c:194 lexsup.c:197
msgid "Ignored for GCC LTO option compatibility"
msgstr ""
-#: lexsup.c:198
+#: lexsup.c:201
msgid "Load named plugin (ignored)"
msgstr ""
-#: lexsup.c:200
+#: lexsup.c:203
msgid "Send arg to last-loaded plugin (ignored)"
msgstr ""
-#: lexsup.c:203
+#: lexsup.c:206
msgid "Ignored for GCC linker option compatibility"
msgstr ""
-#: lexsup.c:206 lexsup.c:209
+#: lexsup.c:209 lexsup.c:212
msgid "Ignored for gold option compatibility"
msgstr ""
-#: lexsup.c:212
+#: lexsup.c:215
msgid "Ignored for SVR4 compatibility"
msgstr ""
-#: lexsup.c:216
+#: lexsup.c:219
msgid "Generate relocatable output"
msgstr ""
-#: lexsup.c:220
+#: lexsup.c:223
msgid "Just link symbols (if directory, same as --rpath)"
msgstr ""
-#: lexsup.c:226
+#: lexsup.c:229
msgid "PATTERN=FILE"
msgstr ""
-#: lexsup.c:229
+#: lexsup.c:232
msgid "Strip all symbols"
msgstr ""
-#: lexsup.c:231
+#: lexsup.c:234
msgid "Strip debugging symbols"
msgstr ""
-#: lexsup.c:233
+#: lexsup.c:236
msgid "Strip symbols in discarded sections"
msgstr ""
-#: lexsup.c:235
+#: lexsup.c:238
msgid "Do not strip symbols in discarded sections"
msgstr ""
-#: lexsup.c:237
+#: lexsup.c:240
msgid "Trace file opens"
msgstr ""
-#: lexsup.c:239
+#: lexsup.c:242
msgid "Read linker script"
msgstr ""
-#: lexsup.c:241
+#: lexsup.c:244
msgid "Read default linker script"
msgstr ""
-#: lexsup.c:245 lexsup.c:248 lexsup.c:266 lexsup.c:358 lexsup.c:382
-#: lexsup.c:501 lexsup.c:534 lexsup.c:546 lexsup.c:605 lexsup.c:608
+#: lexsup.c:248 lexsup.c:251 lexsup.c:269 lexsup.c:361 lexsup.c:385
+#: lexsup.c:507 lexsup.c:540 lexsup.c:552 lexsup.c:611 lexsup.c:614
msgid "SYMBOL"
msgstr ""
-#: lexsup.c:245
+#: lexsup.c:248
msgid "Start with undefined reference to SYMBOL"
msgstr ""
-#: lexsup.c:248
+#: lexsup.c:251
msgid "Require SYMBOL be defined in the final output"
msgstr ""
-#: lexsup.c:251
+#: lexsup.c:254
msgid "[=SECTION]"
msgstr ""
-#: lexsup.c:252
+#: lexsup.c:255
msgid "Don't merge input [SECTION | orphan] sections"
msgstr ""
-#: lexsup.c:254
+#: lexsup.c:257
msgid "Build global constructor/destructor tables"
msgstr ""
-#: lexsup.c:256
+#: lexsup.c:259
msgid "Print version information"
msgstr ""
-#: lexsup.c:258
+#: lexsup.c:261
msgid "Print version and emulation information"
msgstr ""
-#: lexsup.c:260
+#: lexsup.c:263
msgid "Discard all local symbols"
msgstr ""
-#: lexsup.c:262
+#: lexsup.c:265
msgid "Discard temporary local symbols (default)"
msgstr ""
-#: lexsup.c:264
+#: lexsup.c:267
msgid "Don't discard any local symbols"
msgstr ""
-#: lexsup.c:266
+#: lexsup.c:269
msgid "Trace mentions of SYMBOL"
msgstr ""
-#: lexsup.c:268 lexsup.c:464 lexsup.c:466
+#: lexsup.c:271 lexsup.c:467 lexsup.c:469
msgid "PATH"
msgstr ""
-#: lexsup.c:268
+#: lexsup.c:271
msgid "Default search path for Solaris compatibility"
msgstr ""
-#: lexsup.c:271
+#: lexsup.c:274
msgid "Start a group"
msgstr ""
-#: lexsup.c:273
+#: lexsup.c:276
msgid "End a group"
msgstr ""
-#: lexsup.c:277
+#: lexsup.c:280
msgid "Accept input files whose architecture cannot be determined"
msgstr ""
-#: lexsup.c:281
+#: lexsup.c:284
msgid "Reject input files whose architecture is unknown"
msgstr ""
-#: lexsup.c:293
+#: lexsup.c:296
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr ""
-#: lexsup.c:296
+#: lexsup.c:299
msgid ""
"Always set DT_NEEDED for dynamic libraries mentioned on\n"
" the command line"
msgstr ""
-#: lexsup.c:300
+#: lexsup.c:303
msgid "Ignored for SunOS compatibility"
msgstr ""
-#: lexsup.c:302
+#: lexsup.c:305
msgid "Link against shared libraries"
msgstr ""
-#: lexsup.c:308
+#: lexsup.c:311
msgid "Do not link against shared libraries"
msgstr ""
-#: lexsup.c:316
+#: lexsup.c:319
msgid "Don't bind global references locally"
msgstr ""
-#: lexsup.c:318
+#: lexsup.c:321
msgid "Bind global references locally"
msgstr ""
-#: lexsup.c:320
+#: lexsup.c:323
msgid "Bind global function references locally"
msgstr ""
-#: lexsup.c:322
+#: lexsup.c:325
msgid "Check section addresses for overlaps (default)"
msgstr ""
-#: lexsup.c:325
+#: lexsup.c:328
msgid "Do not check section addresses for overlaps"
msgstr ""
-#: lexsup.c:329
+#: lexsup.c:332
msgid "Copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr ""
-#: lexsup.c:333
+#: lexsup.c:336
msgid "Do not copy DT_NEEDED links mentioned inside DSOs that follow"
msgstr ""
-#: lexsup.c:337
+#: lexsup.c:340
msgid "Output cross reference table"
msgstr ""
-#: lexsup.c:339
+#: lexsup.c:342
msgid "SYMBOL=EXPRESSION"
msgstr ""
-#: lexsup.c:339
+#: lexsup.c:342
msgid "Define a symbol"
msgstr ""
-#: lexsup.c:341
+#: lexsup.c:344
msgid "[=STYLE]"
msgstr ""
-#: lexsup.c:341
+#: lexsup.c:344
msgid "Demangle symbol names [using STYLE]"
msgstr ""
-#: lexsup.c:345
+#: lexsup.c:348
msgid ""
"Do not allow multiple definitions with symbols included\n"
" in filename invoked by -R or --just-symbols"
msgstr ""
-#: lexsup.c:350
+#: lexsup.c:353
msgid "Generate embedded relocs"
msgstr ""
-#: lexsup.c:352
+#: lexsup.c:355
msgid "Treat warnings as errors"
msgstr ""
-#: lexsup.c:355
+#: lexsup.c:358
msgid "Do not treat warnings as errors (default)"
msgstr ""
-#: lexsup.c:358
+#: lexsup.c:361
msgid "Call SYMBOL at unload-time"
msgstr ""
-#: lexsup.c:360
+#: lexsup.c:363
msgid "Force generation of file with .exe suffix"
msgstr ""
-#: lexsup.c:362
+#: lexsup.c:365
msgid "Remove unused sections (on some targets)"
msgstr ""
-#: lexsup.c:365
+#: lexsup.c:368
msgid "Don't remove unused sections (default)"
msgstr ""
-#: lexsup.c:368
+#: lexsup.c:371
msgid "List removed unused sections on stderr"
msgstr ""
-#: lexsup.c:371
+#: lexsup.c:374
msgid "Do not list removed unused sections"
msgstr ""
-#: lexsup.c:374
+#: lexsup.c:377
msgid "Keep exported symbols when removing unused sections"
msgstr ""
-#: lexsup.c:377
+#: lexsup.c:380
msgid "Set default hash table size close to <NUMBER>"
msgstr ""
-#: lexsup.c:380
+#: lexsup.c:383
msgid "Print option help"
msgstr ""
-#: lexsup.c:382
+#: lexsup.c:385
msgid "Call SYMBOL at load-time"
msgstr ""
-#: lexsup.c:384
+#: lexsup.c:387
msgid "FILE/DIR"
msgstr ""
-#: lexsup.c:384
+#: lexsup.c:387
msgid "Write a linker map to FILE or DIR/<outputname>.map"
msgstr ""
-#: lexsup.c:386
+#: lexsup.c:389
msgid "Do not define Common storage"
msgstr ""
-#: lexsup.c:388
+#: lexsup.c:391
msgid "Do not demangle symbol names"
msgstr ""
-#: lexsup.c:390
+#: lexsup.c:393
msgid "Use less memory and more disk I/O"
msgstr ""
-#: lexsup.c:392
+#: lexsup.c:395
msgid "Do not allow unresolved references in object files"
msgstr ""
-#: lexsup.c:395
+#: lexsup.c:398
msgid "Do not display any warning or error messages"
msgstr ""
-#: lexsup.c:398
+#: lexsup.c:401
msgid "Allow unresolved references in shared libraries"
msgstr ""
-#: lexsup.c:402
+#: lexsup.c:405
msgid "Do not allow unresolved references in shared libs"
msgstr ""
-#: lexsup.c:406
+#: lexsup.c:409
msgid "Allow multiple definitions"
msgstr ""
-#: lexsup.c:410
+#: lexsup.c:413
msgid "SCRIPT"
msgstr ""
-#: lexsup.c:410
+#: lexsup.c:413
msgid "Provide a script to help with undefined symbol errors"
msgstr ""
-#: lexsup.c:413
+#: lexsup.c:416
msgid "Allow undefined version"
msgstr ""
-#: lexsup.c:415
+#: lexsup.c:418
msgid "Disallow undefined version"
msgstr ""
-#: lexsup.c:417
+#: lexsup.c:420
msgid "Create default symbol version"
msgstr ""
-#: lexsup.c:420
+#: lexsup.c:423
msgid "Create default symbol version for imported symbols"
msgstr ""
-#: lexsup.c:423
+#: lexsup.c:426
msgid "Don't warn about mismatched input files"
msgstr ""
-#: lexsup.c:426
+#: lexsup.c:429
msgid "Don't warn on finding an incompatible library"
msgstr ""
-#: lexsup.c:429
+#: lexsup.c:432
msgid "Turn off --whole-archive"
msgstr ""
-#: lexsup.c:431
+#: lexsup.c:434
msgid "Create an output file even if errors occur"
msgstr ""
-#: lexsup.c:436
+#: lexsup.c:439
msgid ""
"Only use library directories specified on\n"
" the command line"
msgstr ""
-#: lexsup.c:440
+#: lexsup.c:443
msgid "Specify target of output file"
msgstr ""
-#: lexsup.c:443
+#: lexsup.c:446
msgid "Print default output format"
msgstr ""
-#: lexsup.c:445
+#: lexsup.c:448
msgid "Print current sysroot"
msgstr ""
-#: lexsup.c:447
+#: lexsup.c:450
msgid "Ignored for Linux compatibility"
msgstr ""
-#: lexsup.c:450
+#: lexsup.c:453
msgid "Reduce memory overheads, possibly taking much longer"
msgstr ""
-#: lexsup.c:454
+#: lexsup.c:457
msgid "Set the maximum cache size to SIZE bytes"
msgstr ""
-#: lexsup.c:457
+#: lexsup.c:460
msgid "Reduce code size by using target specific optimizations"
msgstr ""
-#: lexsup.c:459
+#: lexsup.c:462
msgid "Do not use relaxation techniques to reduce code size"
msgstr ""
-#: lexsup.c:462
+#: lexsup.c:465
msgid "Keep only symbols listed in FILE"
msgstr ""
-#: lexsup.c:464
+#: lexsup.c:467
msgid "Set runtime shared library search path"
msgstr ""
-#: lexsup.c:466
+#: lexsup.c:469
msgid "Set link time shared library search path"
msgstr ""
-#: lexsup.c:469
+#: lexsup.c:472
msgid "Create a shared library"
msgstr ""
-#: lexsup.c:473
+#: lexsup.c:476
msgid "Create a position independent executable"
msgstr ""
-#: lexsup.c:477
+#: lexsup.c:480
msgid "Create a position dependent executable (default)"
msgstr ""
-#: lexsup.c:479
+#: lexsup.c:482
msgid "[=ascending|descending]"
msgstr ""
-#: lexsup.c:480
+#: lexsup.c:483
msgid "Sort common symbols by alignment [in specified order]"
msgstr ""
-#: lexsup.c:485
+#: lexsup.c:488
msgid "name|alignment"
msgstr ""
-#: lexsup.c:486
+#: lexsup.c:489
msgid "Sort sections by name or maximum alignment"
msgstr ""
-#: lexsup.c:488
+#: lexsup.c:492
+msgid "Sort sections by statements in FILE"
+msgstr ""
+
+#: lexsup.c:494
msgid "COUNT"
msgstr ""
-#: lexsup.c:488
+#: lexsup.c:494
msgid "How many tags to reserve in .dynamic section"
msgstr ""
-#: lexsup.c:491
+#: lexsup.c:497
msgid "[=SIZE]"
msgstr ""
-#: lexsup.c:491
+#: lexsup.c:497
msgid "Split output sections every SIZE octets"
msgstr ""
-#: lexsup.c:494
+#: lexsup.c:500
msgid "[=COUNT]"
msgstr ""
-#: lexsup.c:494
+#: lexsup.c:500
msgid "Split output sections every COUNT relocs"
msgstr ""
-#: lexsup.c:497
+#: lexsup.c:503
msgid "Print memory usage statistics"
msgstr ""
-#: lexsup.c:499
+#: lexsup.c:505
msgid "Display target specific options"
msgstr ""
-#: lexsup.c:501
+#: lexsup.c:507
msgid "Do task level linking"
msgstr ""
-#: lexsup.c:503
+#: lexsup.c:509
msgid "Use same format as native linker"
msgstr ""
-#: lexsup.c:505
+#: lexsup.c:511
msgid "SECTION=ADDRESS"
msgstr ""
-#: lexsup.c:505
+#: lexsup.c:511
msgid "Set address of named section"
msgstr ""
-#: lexsup.c:508
+#: lexsup.c:514
msgid "Set address of .bss section"
msgstr ""
-#: lexsup.c:510
+#: lexsup.c:516
msgid "Set address of .data section"
msgstr ""
-#: lexsup.c:512
+#: lexsup.c:518
msgid "Set address of .text section"
msgstr ""
-#: lexsup.c:514
+#: lexsup.c:520
msgid "Set address of text segment"
msgstr ""
-#: lexsup.c:516
+#: lexsup.c:522
msgid "Set address of rodata segment"
msgstr ""
-#: lexsup.c:518
+#: lexsup.c:524
msgid "Set address of ldata segment"
msgstr ""
-#: lexsup.c:521
+#: lexsup.c:527
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-"
@@ -1937,206 +1960,206 @@ msgid ""
" ignore-in-shared-libs"
msgstr ""
-#: lexsup.c:526
+#: lexsup.c:532
msgid "[=NUMBER]"
msgstr ""
-#: lexsup.c:527
+#: lexsup.c:533
msgid "Output lots of information during link"
msgstr ""
-#: lexsup.c:531
+#: lexsup.c:537
msgid "Read version information script"
msgstr ""
-#: lexsup.c:534
+#: lexsup.c:540
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
msgstr ""
-#: lexsup.c:538
+#: lexsup.c:544
msgid "Add data symbols to dynamic list"
msgstr ""
-#: lexsup.c:540
+#: lexsup.c:546
msgid "Use C++ operator new/delete dynamic list"
msgstr ""
-#: lexsup.c:542
+#: lexsup.c:548
msgid "Use C++ typeinfo dynamic list"
msgstr ""
-#: lexsup.c:544
+#: lexsup.c:550
msgid "Read dynamic list"
msgstr ""
-#: lexsup.c:546
+#: lexsup.c:552
msgid "Export the specified symbol"
msgstr ""
-#: lexsup.c:548
+#: lexsup.c:554
msgid "Read export dynamic symbol list"
msgstr ""
-#: lexsup.c:550
+#: lexsup.c:556
msgid "Warn about duplicate common symbols"
msgstr ""
-#: lexsup.c:552
+#: lexsup.c:558
msgid "Warn if global constructors/destructors are seen"
msgstr ""
-#: lexsup.c:576
+#: lexsup.c:582
msgid "Warn if the multiple GP values are used"
msgstr ""
-#: lexsup.c:578
+#: lexsup.c:584
msgid "Warn only once per undefined symbol"
msgstr ""
-#: lexsup.c:580
+#: lexsup.c:586
msgid "Warn if start of section changes due to alignment"
msgstr ""
-#: lexsup.c:585
+#: lexsup.c:591
msgid "Warn if output has DT_TEXTREL (default)"
msgstr ""
-#: lexsup.c:587
+#: lexsup.c:593
msgid "Warn if output has DT_TEXTREL"
msgstr ""
-#: lexsup.c:593
+#: lexsup.c:599
msgid "Warn if an object has alternate ELF machine code"
msgstr ""
-#: lexsup.c:597
+#: lexsup.c:603
msgid "Report unresolved symbols as warnings"
msgstr ""
-#: lexsup.c:600
+#: lexsup.c:606
msgid "Report unresolved symbols as errors"
msgstr ""
-#: lexsup.c:602
+#: lexsup.c:608
msgid "Include all objects from following archives"
msgstr ""
-#: lexsup.c:605
+#: lexsup.c:611
msgid "Use wrapper functions for SYMBOL"
msgstr ""
-#: lexsup.c:609
+#: lexsup.c:615
msgid "Unresolved SYMBOL will not cause an error or warning"
msgstr ""
-#: lexsup.c:611
+#: lexsup.c:617
msgid "Push state of flags governing input file handling"
msgstr ""
-#: lexsup.c:614
+#: lexsup.c:620
msgid "Pop state of flags governing input file handling"
msgstr ""
-#: lexsup.c:617
+#: lexsup.c:623
msgid "Report target memory usage"
msgstr ""
-#: lexsup.c:619
+#: lexsup.c:625
msgid "=MODE"
msgstr ""
-#: lexsup.c:619
+#: lexsup.c:625
msgid "Control how orphan sections are handled."
msgstr ""
-#: lexsup.c:622
+#: lexsup.c:628
msgid "Show discarded sections in map file output (default)"
msgstr ""
-#: lexsup.c:625
+#: lexsup.c:631
msgid "Do not show discarded sections in map file output"
msgstr ""
-#: lexsup.c:628
+#: lexsup.c:634
msgid "Show local symbols in map file output"
msgstr ""
-#: lexsup.c:631
+#: lexsup.c:637
msgid "Do not show local symbols in map file output (default)"
msgstr ""
-#: lexsup.c:634
+#: lexsup.c:640
msgid "Emit names and types of static variables in CTF"
msgstr ""
-#: lexsup.c:637
+#: lexsup.c:643
msgid "Do not emit names and types of static variables in CTF"
msgstr ""
-#: lexsup.c:641
+#: lexsup.c:647
msgid ""
"How to share CTF types between translation units.\n"
" <method> is: share-unconflicted (default),\n"
" share-duplicated"
msgstr ""
-#: lexsup.c:805
+#: lexsup.c:811
msgid "%F%P: Error: unable to disambiguate: %s (did you mean -%s ?)\n"
msgstr ""
-#: lexsup.c:808
+#: lexsup.c:814
msgid "%P: Warning: grouped short command line options are deprecated: %s\n"
msgstr ""
-#: lexsup.c:835
+#: lexsup.c:841
msgid "%P: %s: missing argument\n"
msgstr ""
-#: lexsup.c:840
+#: lexsup.c:846
msgid "%P: unrecognized option '%s'\n"
msgstr ""
-#: lexsup.c:845
+#: lexsup.c:851
msgid "%F%P: use the --help option for usage information\n"
msgstr ""
-#: lexsup.c:864
+#: lexsup.c:870
msgid "%F%P: unrecognized -a option `%s'\n"
msgstr ""
-#: lexsup.c:877
+#: lexsup.c:883
msgid "%F%P: unrecognized -assert option `%s'\n"
msgstr ""
-#: lexsup.c:921
+#: lexsup.c:927
msgid "%F%P: unknown demangling style `%s'\n"
msgstr ""
-#: lexsup.c:1029 lexsup.c:1513 eaarch64cloudabi.c:849 eaarch64cloudabib.c:849
-#: eaarch64elf.c:844 eaarch64elf32.c:844 eaarch64elf32b.c:844
-#: eaarch64elfb.c:844 eaarch64fbsd.c:849 eaarch64fbsdb.c:849
-#: eaarch64haiku.c:849 eaarch64linux.c:849 eaarch64linux32.c:849
-#: eaarch64linux32b.c:849 eaarch64linuxb.c:849 eaarch64nto.c:1017
-#: earmelf.c:1107 earmelf_fbsd.c:1107 earmelf_fuchsia.c:1112
-#: earmelf_haiku.c:1112 earmelf_linux.c:1112 earmelf_linux_eabi.c:1112
-#: earmelf_linux_fdpiceabi.c:1112 earmelf_nacl.c:1112 earmelf_nbsd.c:1107
-#: earmelf_phoenix.c:1112 earmelf_vxworks.c:1143 earmelfb.c:1107
-#: earmelfb_fbsd.c:1107 earmelfb_fuchsia.c:1112 earmelfb_linux.c:1112
-#: earmelfb_linux_eabi.c:1112 earmelfb_linux_fdpiceabi.c:1112
-#: earmelfb_nacl.c:1112 earmelfb_nbsd.c:1107 earmnto.c:1082 ecskyelf.c:573
-#: ecskyelf_linux.c:740 eelf32metag.c:737 eelf64lppc.c:1219
-#: eelf64lppc_fbsd.c:1219 eelf64ppc.c:1219 eelf64ppc_fbsd.c:1219
-#: ehppaelf.c:593 ehppalinux.c:775 ehppanbsd.c:775 ehppaobsd.c:775
+#: lexsup.c:1035 lexsup.c:1529 eaarch64cloudabi.c:880 eaarch64cloudabib.c:880
+#: eaarch64elf.c:880 eaarch64elf32.c:880 eaarch64elf32b.c:880
+#: eaarch64elfb.c:880 eaarch64fbsd.c:885 eaarch64fbsdb.c:885
+#: eaarch64haiku.c:880 eaarch64linux.c:885 eaarch64linux32.c:885
+#: eaarch64linux32b.c:885 eaarch64linuxb.c:885 eaarch64nto.c:1042
+#: earmelf.c:1123 earmelf_fbsd.c:1123 earmelf_fuchsia.c:1128
+#: earmelf_haiku.c:1128 earmelf_linux.c:1128 earmelf_linux_eabi.c:1128
+#: earmelf_linux_fdpiceabi.c:1128 earmelf_nacl.c:1128 earmelf_nbsd.c:1123
+#: earmelf_phoenix.c:1128 earmelf_vxworks.c:1155 earmelfb.c:1123
+#: earmelfb_fbsd.c:1123 earmelfb_fuchsia.c:1128 earmelfb_linux.c:1128
+#: earmelfb_linux_eabi.c:1128 earmelfb_linux_fdpiceabi.c:1128
+#: earmelfb_nacl.c:1128 earmelfb_nbsd.c:1123 earmnto.c:1083 ecskyelf.c:579
+#: ecskyelf_linux.c:776 eelf32metag.c:775 eelf64lppc.c:1223
+#: eelf64lppc_fbsd.c:1223 eelf64ppc.c:1223 eelf64ppc_fbsd.c:1223
+#: ehppaelf.c:590 ehppalinux.c:812 ehppanbsd.c:812 ehppaobsd.c:812
msgid "%F%P: invalid number `%s'\n"
msgstr ""
-#: lexsup.c:1125
+#: lexsup.c:1132
msgid "%F%P: bad --unresolved-symbols option: %s\n"
msgstr ""
-#: lexsup.c:1212
+#: lexsup.c:1219
msgid "%F%P: bad -plugin-opt option\n"
msgstr ""
@@ -2148,177 +2171,182 @@ msgstr ""
#. an error message here. We cannot just make this a warning,
#. increment optind, and continue because getopt is too confused
#. and will seg-fault the next time around.
-#: lexsup.c:1229
+#: lexsup.c:1239
msgid "%F%P: unrecognised option: %s\n"
msgstr ""
-#: lexsup.c:1232 lexsup.c:1342 lexsup.c:1363 lexsup.c:1482
+#: lexsup.c:1242 lexsup.c:1352 lexsup.c:1373 lexsup.c:1498
msgid "%F%P: -r and %s may not be used together\n"
msgstr ""
-#: lexsup.c:1354
+#: lexsup.c:1364
msgid "%F%P: -shared not supported\n"
msgstr ""
-#: lexsup.c:1368
+#: lexsup.c:1378
msgid "%F%P: -pie not supported\n"
msgstr ""
-#: lexsup.c:1374
+#: lexsup.c:1384
msgid "%P: SONAME must not be empty string; keeping previous one\n"
msgstr ""
-#: lexsup.c:1380
+#: lexsup.c:1390
msgid "descending"
msgstr ""
-#: lexsup.c:1382
+#: lexsup.c:1392
msgid "ascending"
msgstr ""
-#: lexsup.c:1385
+#: lexsup.c:1395
msgid "%F%P: invalid common section sorting option: %s\n"
msgstr ""
-#: lexsup.c:1389
+#: lexsup.c:1399
msgid "name"
msgstr ""
-#: lexsup.c:1391
+#: lexsup.c:1401
msgid "alignment"
msgstr ""
-#: lexsup.c:1394
+#: lexsup.c:1404
msgid "%F%P: invalid section sorting option: %s\n"
msgstr ""
-#: lexsup.c:1431
+#: lexsup.c:1410
+msgid ""
+"%P: warning: section ordering file changed. Ignoring earlier definition\n"
+msgstr ""
+
+#: lexsup.c:1447
msgid "%F%P: invalid argument to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1438
+#: lexsup.c:1454
msgid "%F%P: missing argument(s) to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1708
+#: lexsup.c:1724
msgid "%F%P: group ended before it began (--help for usage)\n"
msgstr ""
-#: lexsup.c:1724
+#: lexsup.c:1740
msgid "%F%P: failed to add remap file %s\n"
msgstr ""
#. FIXME: Should we allow --remap-inputs=@myfile as a synonym
#. for --remap-inputs-file=myfile ?
-#: lexsup.c:1733
+#: lexsup.c:1749
msgid "%F%P: invalid argument to option --remap-inputs\n"
msgstr ""
-#: lexsup.c:1754
+#: lexsup.c:1770
msgid "%F%P: invalid cache memory size: %s\n"
msgstr ""
-#: lexsup.c:1768
+#: lexsup.c:1784
msgid "%X%P: --hash-size needs a numeric argument\n"
msgstr ""
-#: lexsup.c:1780
+#: lexsup.c:1796
msgid "%F%P: no state pushed before popping\n"
msgstr ""
-#: lexsup.c:1803
+#: lexsup.c:1819
msgid "%F%P: invalid argument to option \"--orphan-handling\"\n"
msgstr ""
-#: lexsup.c:1841
+#: lexsup.c:1857
msgid "%F%P: bad --ctf-share-types option: %s\n"
msgstr ""
-#: lexsup.c:1859
+#: lexsup.c:1875
msgid "%P: no file/directory name provided for map output; ignored\n"
msgstr ""
-#: lexsup.c:1887
+#: lexsup.c:1903
msgid "%P: cannot stat linker map file: %E\n"
msgstr ""
-#: lexsup.c:1899
+#: lexsup.c:1915
msgid "%P: linker map file is not a regular file\n"
msgstr ""
#. If the asprintf failed then something is probably very
#. wrong. Better to halt now rather than continue on
#. into more problems.
-#: lexsup.c:1910
+#: lexsup.c:1926
msgid "%P%F: cannot create name for linker map file: %E\n"
msgstr ""
-#: lexsup.c:1921
+#: lexsup.c:1937
msgid "%P: SONAME must not be empty string; ignored\n"
msgstr ""
-#: lexsup.c:1927
+#: lexsup.c:1943
msgid "%P: missing --end-group; added as last command line option\n"
msgstr ""
-#: lexsup.c:2036
+#: lexsup.c:2052
msgid "%F%P: -r and -z nosectionheader may not be used together\n"
msgstr ""
-#: lexsup.c:2044
+#: lexsup.c:2060
msgid "%F%P: -F may not be used without -shared\n"
msgstr ""
-#: lexsup.c:2046
+#: lexsup.c:2062
msgid "%F%P: -f may not be used without -shared\n"
msgstr ""
-#: lexsup.c:2087 lexsup.c:2100
+#: lexsup.c:2104 lexsup.c:2117
msgid "%F%P: invalid hex number `%s'\n"
msgstr ""
-#: lexsup.c:2130
+#: lexsup.c:2147
#, c-format
msgid " --audit=AUDITLIB Specify a library to use for auditing\n"
msgstr ""
-#: lexsup.c:2132
+#: lexsup.c:2149
#, c-format
msgid " -Bgroup Selects group name lookup rules for DSO\n"
msgstr ""
-#: lexsup.c:2134
+#: lexsup.c:2151
#, c-format
msgid " --disable-new-dtags Disable new dynamic tags\n"
msgstr ""
-#: lexsup.c:2136
+#: lexsup.c:2153
#, c-format
msgid " --enable-new-dtags Enable new dynamic tags\n"
msgstr ""
-#: lexsup.c:2138
+#: lexsup.c:2155
#, c-format
msgid " --eh-frame-hdr Create .eh_frame_hdr section\n"
msgstr ""
-#: lexsup.c:2140
+#: lexsup.c:2157
#, c-format
msgid " --no-eh-frame-hdr Do not create .eh_frame_hdr section\n"
msgstr ""
-#: lexsup.c:2142
+#: lexsup.c:2159
#, c-format
msgid " --exclude-libs=LIBS Make all symbols in LIBS hidden\n"
msgstr ""
-#: lexsup.c:2144
+#: lexsup.c:2161
#, c-format
msgid ""
" --hash-style=STYLE Set hash style to sysv/gnu/both. Default: "
msgstr ""
-#: lexsup.c:2163
+#: lexsup.c:2180
#, c-format
msgid ""
" -P AUDITLIB, --depaudit=AUDITLIB\n"
@@ -2326,20 +2354,20 @@ msgid ""
"dependencies\n"
msgstr ""
-#: lexsup.c:2166
+#: lexsup.c:2183
#, c-format
msgid ""
" -z combreloc Merge dynamic relocs into one section and "
"sort\n"
msgstr ""
-#: lexsup.c:2168
+#: lexsup.c:2185
#, c-format
msgid ""
" -z nocombreloc Don't merge dynamic relocs into one section\n"
msgstr ""
-#: lexsup.c:2170
+#: lexsup.c:2187
#, c-format
msgid ""
" -z global Make symbols in DSO available for "
@@ -2347,364 +2375,392 @@ msgid ""
" loaded objects\n"
msgstr ""
-#: lexsup.c:2173
+#: lexsup.c:2190
#, c-format
msgid ""
" -z initfirst Mark DSO to be initialized first at runtime\n"
msgstr ""
-#: lexsup.c:2175
+#: lexsup.c:2192
#, c-format
msgid ""
" -z interpose Mark object to interpose all DSOs but "
"executable\n"
msgstr ""
-#: lexsup.c:2177
+#: lexsup.c:2194
#, c-format
msgid ""
" -z unique Mark DSO to be loaded at most once by default, "
"and only in the main namespace\n"
msgstr ""
-#: lexsup.c:2179
+#: lexsup.c:2196
#, c-format
msgid ""
" -z nounique Don't mark DSO as a loadable at most once\n"
msgstr ""
-#: lexsup.c:2181
+#: lexsup.c:2198
#, c-format
msgid ""
" -z lazy Mark object lazy runtime binding (default)\n"
msgstr ""
-#: lexsup.c:2183
+#: lexsup.c:2200
#, c-format
msgid " -z loadfltr Mark object requiring immediate process\n"
msgstr ""
-#: lexsup.c:2185
+#: lexsup.c:2202
#, c-format
msgid " -z nocopyreloc Don't create copy relocs\n"
msgstr ""
-#: lexsup.c:2187
+#: lexsup.c:2204
#, c-format
msgid ""
" -z nodefaultlib Mark object not to use default search paths\n"
msgstr ""
-#: lexsup.c:2189
+#: lexsup.c:2206
#, c-format
msgid " -z nodelete Mark DSO non-deletable at runtime\n"
msgstr ""
-#: lexsup.c:2191
+#: lexsup.c:2208
#, c-format
msgid " -z nodlopen Mark DSO not available to dlopen\n"
msgstr ""
-#: lexsup.c:2193
+#: lexsup.c:2210
#, c-format
msgid " -z nodump Mark DSO not available to dldump\n"
msgstr ""
-#: lexsup.c:2195
+#: lexsup.c:2212
#, c-format
msgid " -z now Mark object non-lazy runtime binding\n"
msgstr ""
-#: lexsup.c:2197
+#: lexsup.c:2214
#, c-format
msgid ""
" -z origin Mark object requiring immediate $ORIGIN\n"
" processing at runtime\n"
msgstr ""
-#: lexsup.c:2201
+#: lexsup.c:2218
#, c-format
msgid " -z relro Create RELRO program header (default)\n"
msgstr ""
-#: lexsup.c:2203
+#: lexsup.c:2220
#, c-format
msgid " -z norelro Don't create RELRO program header\n"
msgstr ""
-#: lexsup.c:2206
+#: lexsup.c:2223
#, c-format
msgid " -z relro Create RELRO program header\n"
msgstr ""
-#: lexsup.c:2208
+#: lexsup.c:2225
#, c-format
msgid ""
" -z norelro Don't create RELRO program header (default)\n"
msgstr ""
-#: lexsup.c:2212
+#: lexsup.c:2229
#, c-format
msgid ""
" -z separate-code Create separate code program header (default)\n"
msgstr ""
-#: lexsup.c:2214
+#: lexsup.c:2231
#, c-format
msgid ""
" -z noseparate-code Don't create separate code program header\n"
msgstr ""
-#: lexsup.c:2217
+#: lexsup.c:2234
#, c-format
msgid " -z separate-code Create separate code program header\n"
msgstr ""
-#: lexsup.c:2219
+#: lexsup.c:2236
#, c-format
msgid ""
" -z noseparate-code Don't create separate code program header "
"(default)\n"
msgstr ""
-#: lexsup.c:2222
+#: lexsup.c:2240
+#, c-format
+msgid ""
+" --rosegment With -z separate-code, create a single read-"
+"only segment (default)\n"
+msgstr ""
+
+#: lexsup.c:2242
+#, c-format
+msgid ""
+" --no-rosegment With -z separate-code, creste two read-only "
+"segments\n"
+msgstr ""
+
+#: lexsup.c:2245
+#, c-format
+msgid ""
+" --rosegment With -z separate-code, create a single read-"
+"only segment\n"
+msgstr ""
+
+#: lexsup.c:2247
+#, c-format
+msgid ""
+" --no-rosegment With -z separate-code, creste two read-only "
+"segments (default)\n"
+msgstr ""
+
+#: lexsup.c:2250
#, c-format
msgid ""
" -z common Generate common symbols with STT_COMMON type\n"
msgstr ""
-#: lexsup.c:2224
+#: lexsup.c:2252
#, c-format
msgid ""
" -z nocommon Generate common symbols with STT_OBJECT type\n"
msgstr ""
-#: lexsup.c:2227
+#: lexsup.c:2255
#, c-format
msgid ""
" -z text Treat DT_TEXTREL in output as error (default)\n"
msgstr ""
-#: lexsup.c:2230
+#: lexsup.c:2258
#, c-format
msgid " -z text Treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:2234
+#: lexsup.c:2262
#, c-format
msgid ""
" -z notext Don't treat DT_TEXTREL in output as error "
"(default)\n"
msgstr ""
-#: lexsup.c:2236
+#: lexsup.c:2264
#, c-format
msgid ""
" -z textoff Don't treat DT_TEXTREL in output as error "
"(default)\n"
msgstr ""
-#: lexsup.c:2241
+#: lexsup.c:2269
#, c-format
msgid ""
" -z notext Don't treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:2243
+#: lexsup.c:2271
#, c-format
msgid ""
" -z textoff Don't treat DT_TEXTREL in output as error\n"
msgstr ""
-#: lexsup.c:2251
+#: lexsup.c:2279
#, c-format
msgid " --build-id[=STYLE] Generate build ID note\n"
msgstr ""
-#: lexsup.c:2253
+#: lexsup.c:2281
#, c-format
msgid " --package-metadata[=JSON] Generate package metadata note\n"
msgstr ""
-#: lexsup.c:2255
+#: lexsup.c:2283
#, c-format
msgid ""
" --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi|zstd]\n"
"\t\t\t Compress DWARF debug sections\n"
msgstr ""
-#: lexsup.c:2258
+#: lexsup.c:2286
#, c-format
msgid " Default: %s\n"
msgstr ""
-#: lexsup.c:2261
+#: lexsup.c:2289
#, c-format
msgid " -z common-page-size=SIZE Set common page size to SIZE\n"
msgstr ""
-#: lexsup.c:2263
+#: lexsup.c:2291
#, c-format
msgid " -z max-page-size=SIZE Set maximum page size to SIZE\n"
msgstr ""
-#: lexsup.c:2265
+#: lexsup.c:2293
#, c-format
msgid ""
" -z defs Report unresolved symbols in object files\n"
msgstr ""
-#: lexsup.c:2267
+#: lexsup.c:2295
#, c-format
msgid ""
" -z undefs Ignore unresolved symbols in object files\n"
msgstr ""
-#: lexsup.c:2269
+#: lexsup.c:2297
#, c-format
msgid " -z muldefs Allow multiple definitions\n"
msgstr ""
-#: lexsup.c:2271
+#: lexsup.c:2299
#, c-format
msgid " -z stack-size=SIZE Set size of stack segment\n"
msgstr ""
-#: lexsup.c:2274
+#: lexsup.c:2302
#, c-format
msgid ""
" -z execstack Mark executable as requiring executable stack\n"
msgstr ""
-#: lexsup.c:2276
+#: lexsup.c:2304
#, c-format
msgid ""
" -z noexecstack Mark executable as not requiring executable "
"stack\n"
msgstr ""
-#: lexsup.c:2278
+#: lexsup.c:2306
#, c-format
msgid ""
" --warn-execstack-objects Generate a warning if an object file requests "
"an executable stack\n"
msgstr ""
-#: lexsup.c:2281
+#: lexsup.c:2309
#, c-format
msgid ""
" --warn-execstack Generate a warning if creating an executable "
"stack\n"
msgstr ""
-#: lexsup.c:2284
+#: lexsup.c:2312
#, c-format
msgid ""
" --warn-execstack Generate a warning if creating an executable "
"stack (default)\n"
msgstr ""
-#: lexsup.c:2288
+#: lexsup.c:2316
#, c-format
msgid ""
" --no-warn-execstack Do not generate a warning if creating an "
"executable stack (default)\n"
msgstr ""
-#: lexsup.c:2291
+#: lexsup.c:2319
#, c-format
msgid ""
" --no-warn-execstack Do not generate a warning if creating an "
"executable stack\n"
msgstr ""
-#: lexsup.c:2294
+#: lexsup.c:2322
#, c-format
msgid ""
" --error-execstack Turn warnings about executable stacks into "
"errors\n"
msgstr ""
-#: lexsup.c:2296
+#: lexsup.c:2324
#, c-format
msgid ""
-" --no-error-execstack Do not turn warnings about executable stacks "
+" --no-error-execstack Do not turn warnings about executable stacks "
"into errors\n"
msgstr ""
-#: lexsup.c:2300
+#: lexsup.c:2328
#, c-format
msgid ""
" --warn-rwx-segments Generate a warning if a LOAD segment has RWX "
"permissions (default)\n"
msgstr ""
-#: lexsup.c:2302
+#: lexsup.c:2330
#, c-format
msgid ""
" --no-warn-rwx-segments Do not generate a warning if a LOAD segments "
"has RWX permissions\n"
msgstr ""
-#: lexsup.c:2305
+#: lexsup.c:2333
#, c-format
msgid ""
" --warn-rwx-segments Generate a warning if a LOAD segment has RWX "
"permissions\n"
msgstr ""
-#: lexsup.c:2307
+#: lexsup.c:2335
#, c-format
msgid ""
" --no-warn-rwx-segments Do not generate a warning if a LOAD segments "
"has RWX permissions (default)\n"
msgstr ""
-#: lexsup.c:2310
+#: lexsup.c:2338
#, c-format
msgid ""
" --error-rwx-segments Turn warnings about loadable RWX segments into "
"errors\n"
msgstr ""
-#: lexsup.c:2312
+#: lexsup.c:2340
#, c-format
msgid ""
" --no-error-rwx-segments Do not turn warnings about loadable RWX "
"segments into errors\n"
msgstr ""
-#: lexsup.c:2315
+#: lexsup.c:2343
#, c-format
msgid " -z unique-symbol Avoid duplicated local symbol names\n"
msgstr ""
-#: lexsup.c:2317
+#: lexsup.c:2345
#, c-format
msgid ""
" -z nounique-symbol Keep duplicated local symbol names (default)\n"
msgstr ""
-#: lexsup.c:2319
+#: lexsup.c:2347
#, c-format
msgid ""
" -z globalaudit Mark executable requiring global auditing\n"
msgstr ""
-#: lexsup.c:2321
+#: lexsup.c:2349
#, c-format
msgid ""
" -z start-stop-gc Enable garbage collection on __start/__stop\n"
msgstr ""
-#: lexsup.c:2323
+#: lexsup.c:2351
#, c-format
msgid ""
" -z nostart-stop-gc Don't garbage collect __start/__stop "
"(default)\n"
msgstr ""
-#: lexsup.c:2325
+#: lexsup.c:2353
#, c-format
msgid ""
" -z start-stop-visibility=V Set visibility of built-in __start/__stop "
@@ -2712,23 +2768,23 @@ msgid ""
" to DEFAULT, PROTECTED, HIDDEN or INTERNAL\n"
msgstr ""
-#: lexsup.c:2328
+#: lexsup.c:2356
#, c-format
msgid " -z sectionheader Generate section header (default)\n"
msgstr ""
-#: lexsup.c:2330
+#: lexsup.c:2358
#, c-format
msgid " -z nosectionheader Do not generate section header\n"
msgstr ""
-#: lexsup.c:2337
+#: lexsup.c:2365
#, c-format
msgid ""
" --ld-generated-unwind-info Generate exception handling info for PLT\n"
msgstr ""
-#: lexsup.c:2339
+#: lexsup.c:2367
#, c-format
msgid ""
" --no-ld-generated-unwind-info\n"
@@ -2736,49 +2792,49 @@ msgid ""
"PLT\n"
msgstr ""
-#: lexsup.c:2349
+#: lexsup.c:2377
#, c-format
msgid "ELF emulations:\n"
msgstr ""
-#: lexsup.c:2367
+#: lexsup.c:2395
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: lexsup.c:2369
+#: lexsup.c:2397
#, c-format
msgid "Options:\n"
msgstr ""
-#: lexsup.c:2447
+#: lexsup.c:2475
#, c-format
msgid " @FILE"
msgstr ""
-#: lexsup.c:2450
+#: lexsup.c:2478
#, c-format
msgid "Read options from FILE\n"
msgstr ""
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:2455
+#: lexsup.c:2483
#, c-format
msgid "%s: supported targets:"
msgstr ""
-#: lexsup.c:2463
+#: lexsup.c:2491
#, c-format
msgid "%s: supported emulations: "
msgstr ""
-#: lexsup.c:2468
+#: lexsup.c:2496
#, c-format
msgid "%s: emulation specific options:\n"
msgstr ""
-#: lexsup.c:2475
+#: lexsup.c:2503
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
@@ -3252,34 +3308,34 @@ msgstr ""
msgid "%X%P: cannot export %s: symbol not found\n"
msgstr ""
-#: pe-dll.c:1051 eaarch64cloudabi.c:366 eaarch64cloudabib.c:366
-#: eaarch64elf.c:365 eaarch64elf32.c:365 eaarch64elf32b.c:365
-#: eaarch64elfb.c:365 eaarch64fbsd.c:366 eaarch64fbsdb.c:366
-#: eaarch64haiku.c:366 eaarch64linux.c:366 eaarch64linux32.c:366
-#: eaarch64linux32b.c:366 eaarch64linuxb.c:366 eaarch64nto.c:366
-#: eaix5ppc.c:1660 eaix5ppc.c:1670 eaix5rs6.c:1660 eaix5rs6.c:1670
-#: eaixppc.c:1660 eaixppc.c:1670 eaixrs6.c:1660 eaixrs6.c:1670 earmelf.c:571
-#: earmelf_fbsd.c:571 earmelf_fuchsia.c:572 earmelf_haiku.c:572
-#: earmelf_linux.c:572 earmelf_linux_eabi.c:572 earmelf_linux_fdpiceabi.c:572
-#: earmelf_nacl.c:572 earmelf_nbsd.c:571 earmelf_phoenix.c:572
-#: earmelf_vxworks.c:571 earmelfb.c:571 earmelfb_fbsd.c:571
-#: earmelfb_fuchsia.c:572 earmelfb_linux.c:572 earmelfb_linux_eabi.c:572
-#: earmelfb_linux_fdpiceabi.c:572 earmelfb_nacl.c:572 earmelfb_nbsd.c:571
-#: earmnto.c:571 ecskyelf.c:165 ecskyelf_linux.c:165 eelf32b4300.c:174
-#: eelf32bmip.c:174 eelf32bmipn32.c:188 eelf32bsmip.c:188 eelf32btsmip.c:174
-#: eelf32btsmip_fbsd.c:174 eelf32btsmipn32.c:174 eelf32btsmipn32_fbsd.c:174
-#: eelf32ebmip.c:174 eelf32ebmipvxworks.c:174 eelf32elmip.c:174
-#: eelf32elmipvxworks.c:174 eelf32l4300.c:174 eelf32lmip.c:174
-#: eelf32lr5900.c:174 eelf32lr5900n32.c:174 eelf32lsmip.c:174
-#: eelf32ltsmip.c:174 eelf32ltsmip_fbsd.c:174 eelf32ltsmipn32.c:174
-#: eelf32ltsmipn32_fbsd.c:174 eelf32metag.c:89 eelf32mipswindiss.c:174
-#: eelf64bmip.c:188 eelf64btsmip.c:174 eelf64btsmip_fbsd.c:174
-#: eelf64lppc.c:121 eelf64lppc_fbsd.c:121 eelf64ltsmip.c:174
-#: eelf64ltsmip_fbsd.c:174 eelf64ppc.c:121 eelf64ppc_fbsd.c:121
-#: eelf_mipsel_haiku.c:174 ehppaelf.c:112 ehppalinux.c:112 ehppanbsd.c:112
-#: ehppaobsd.c:112 em68hc11elf.c:172 em68hc11elfb.c:172 em68hc12elf.c:172
-#: em68hc12elfb.c:172 enios2elf.c:94 enios2linux.c:94 eppcmacos.c:1660
-#: eppcmacos.c:1670
+#: pe-dll.c:1051 eaarch64cloudabi.c:367 eaarch64cloudabib.c:367
+#: eaarch64elf.c:366 eaarch64elf32.c:366 eaarch64elf32b.c:366
+#: eaarch64elfb.c:366 eaarch64fbsd.c:367 eaarch64fbsdb.c:367
+#: eaarch64haiku.c:367 eaarch64linux.c:367 eaarch64linux32.c:367
+#: eaarch64linux32b.c:367 eaarch64linuxb.c:367 eaarch64nto.c:367
+#: eaix5ppc.c:1632 eaix5ppc.c:1642 eaix5rs6.c:1632 eaix5rs6.c:1642
+#: eaixppc.c:1632 eaixppc.c:1642 eaixrs6.c:1632 eaixrs6.c:1642 earmelf.c:572
+#: earmelf_fbsd.c:572 earmelf_fuchsia.c:573 earmelf_haiku.c:573
+#: earmelf_linux.c:573 earmelf_linux_eabi.c:573 earmelf_linux_fdpiceabi.c:573
+#: earmelf_nacl.c:573 earmelf_nbsd.c:572 earmelf_phoenix.c:573
+#: earmelf_vxworks.c:572 earmelfb.c:572 earmelfb_fbsd.c:572
+#: earmelfb_fuchsia.c:573 earmelfb_linux.c:573 earmelfb_linux_eabi.c:573
+#: earmelfb_linux_fdpiceabi.c:573 earmelfb_nacl.c:573 earmelfb_nbsd.c:572
+#: earmnto.c:572 ecskyelf.c:166 ecskyelf_linux.c:166 eelf32b4300.c:175
+#: eelf32bmip.c:175 eelf32bmipn32.c:189 eelf32bsmip.c:189 eelf32btsmip.c:175
+#: eelf32btsmip_fbsd.c:175 eelf32btsmipn32.c:175 eelf32btsmipn32_fbsd.c:175
+#: eelf32ebmip.c:175 eelf32ebmipvxworks.c:175 eelf32elmip.c:175
+#: eelf32elmipvxworks.c:175 eelf32l4300.c:175 eelf32lmip.c:175
+#: eelf32lr5900.c:175 eelf32lr5900n32.c:175 eelf32lsmip.c:175
+#: eelf32ltsmip.c:175 eelf32ltsmip_fbsd.c:175 eelf32ltsmipn32.c:175
+#: eelf32ltsmipn32_fbsd.c:175 eelf32metag.c:90 eelf32mipswindiss.c:175
+#: eelf64bmip.c:189 eelf64btsmip.c:175 eelf64btsmip_fbsd.c:175
+#: eelf64lppc.c:122 eelf64lppc_fbsd.c:122 eelf64ltsmip.c:175
+#: eelf64ltsmip_fbsd.c:175 eelf64ppc.c:122 eelf64ppc_fbsd.c:122
+#: eelf_mipsel_haiku.c:175 ehppaelf.c:113 ehppalinux.c:113 ehppanbsd.c:113
+#: ehppaobsd.c:113 em68hc11elf.c:173 em68hc11elfb.c:173 em68hc12elf.c:173
+#: em68hc12elfb.c:173 enios2elf.c:95 enios2linux.c:95 eppcmacos.c:1632
+#: eppcmacos.c:1642
msgid "%F%P: can not create BFD: %E\n"
msgstr ""
@@ -3336,47 +3392,47 @@ msgstr ""
msgid "%P: error: NULL decorated name for %s\n"
msgstr ""
-#: pe-dll.c:2917
+#: pe-dll.c:2910
msgid ""
"%X%P: %H: variable '%pT' can't be auto-imported; please read the "
"documentation for ld's --enable-auto-import for details\n"
msgstr ""
-#: pe-dll.c:2938
+#: pe-dll.c:2931
#, c-format
msgid "%X%P: can't open .lib file: %s\n"
msgstr ""
-#: pe-dll.c:2944
+#: pe-dll.c:2937
#, c-format
msgid "Creating library file: %s\n"
msgstr ""
-#: pe-dll.c:2974
+#: pe-dll.c:2967
msgid "%X%P: bfd_openr %s: %E\n"
msgstr ""
-#: pe-dll.c:2986
+#: pe-dll.c:2979
msgid "%X%P: %s(%s): can't find member in non-archive file"
msgstr ""
-#: pe-dll.c:3000
+#: pe-dll.c:2993
msgid "%X%P: %s(%s): can't find member in archive"
msgstr ""
-#: pe-dll.c:3264
+#: pe-dll.c:3257
msgid "%X%P: add symbols %s: %E\n"
msgstr ""
-#: pe-dll.c:3475
+#: pe-dll.c:3468
msgid "%X%P: open %s: %E\n"
msgstr ""
-#: pe-dll.c:3485
+#: pe-dll.c:3478
msgid "%X%P: %s: this doesn't appear to be a DLL\n"
msgstr ""
-#: pe-dll.c:3705
+#: pe-dll.c:3698
msgid "%X%P: error: can't use long section names on this arch\n"
msgstr ""
@@ -3384,7 +3440,7 @@ msgstr ""
msgid "<no plugin>"
msgstr ""
-#: plugin.c:255 plugin.c:1130
+#: plugin.c:255 plugin.c:1135
msgid "%F%P: %s: error loading plugin: %s\n"
msgstr ""
@@ -3404,239 +3460,241 @@ msgstr ""
msgid "%F%P: unknown ELF symbol visibility: %d!\n"
msgstr ""
-#: plugin.c:558
+#: plugin.c:562
msgid "%F%P: unsupported input file size: %s (%ld bytes)\n"
msgstr ""
-#: plugin.c:703
+#: plugin.c:707
#, c-format
msgid "unknown LTO kind value %x"
msgstr ""
-#: plugin.c:729
+#: plugin.c:733
#, c-format
msgid "unknown LTO resolution value %x"
msgstr ""
-#: plugin.c:749
+#: plugin.c:753
#, c-format
msgid "unknown LTO visibility value %x"
msgstr ""
#. We should not have a new, indirect or warning symbol here.
-#: plugin.c:829
+#: plugin.c:828
msgid "%F%P: %s: plugin symbol table corrupt (sym type %d)\n"
msgstr ""
-#: plugin.c:894
+#: plugin.c:893
msgid "%P: %pB: symbol `%s' definition: %s, visibility: %s, resolution: %s\n"
msgstr ""
-#: plugin.c:971
+#: plugin.c:976
msgid "%P: warning: "
msgstr ""
-#: plugin.c:982
+#: plugin.c:987
msgid "%P: error: "
msgstr ""
-#: plugin.c:1137
+#: plugin.c:1142
msgid "%F%P: %s: plugin error: %d\n"
msgstr ""
-#: plugin.c:1196
+#: plugin.c:1201
msgid "%F%P: plugin_strdup failed to allocate memory: %s\n"
msgstr ""
-#: plugin.c:1233
+#: plugin.c:1238
msgid "%F%P: plugin failed to allocate memory for input: %s\n"
msgstr ""
-#: plugin.c:1261
+#: plugin.c:1266
msgid "%F%P: %s: plugin reported error claiming file\n"
msgstr ""
-#: plugin.c:1372
+#: plugin.c:1379
msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
msgstr ""
-#: eaarch64cloudabi.c:229 eaarch64cloudabib.c:229 eaarch64elf.c:228
-#: eaarch64elf32.c:228 eaarch64elf32b.c:228 eaarch64elfb.c:228
-#: eaarch64fbsd.c:229 eaarch64fbsdb.c:229 eaarch64haiku.c:229
-#: eaarch64linux.c:229 eaarch64linux32.c:229 eaarch64linux32b.c:229
-#: eaarch64linuxb.c:229 eaarch64nto.c:229 eaix5ppc.c:1125 eaix5rs6.c:1125
-#: eaixppc.c:1125 eaixrs6.c:1125 earmelf.c:298 earmelf_fbsd.c:298
-#: earmelf_fuchsia.c:299 earmelf_haiku.c:299 earmelf_linux.c:299
-#: earmelf_linux_eabi.c:299 earmelf_linux_fdpiceabi.c:299 earmelf_nacl.c:299
-#: earmelf_nbsd.c:298 earmelf_phoenix.c:299 earmelf_vxworks.c:298
-#: earmelfb.c:298 earmelfb_fbsd.c:298 earmelfb_fuchsia.c:299
-#: earmelfb_linux.c:299 earmelfb_linux_eabi.c:299
-#: earmelfb_linux_fdpiceabi.c:299 earmelfb_nacl.c:299 earmelfb_nbsd.c:298
-#: earmnto.c:298 eavr1.c:181 eavr2.c:181 eavr25.c:181 eavr3.c:181 eavr31.c:181
-#: eavr35.c:181 eavr4.c:181 eavr5.c:181 eavr51.c:181 eavr6.c:181
-#: eavrtiny.c:181 eavrxmega1.c:181 eavrxmega2.c:181 eavrxmega3.c:181
-#: eavrxmega4.c:181 eavrxmega5.c:181 eavrxmega6.c:181 eavrxmega7.c:181
-#: ecskyelf.c:212 ecskyelf_linux.c:212 eelf32b4300.c:207 eelf32bmip.c:207
-#: eelf32bmipn32.c:221 eelf32bsmip.c:221 eelf32btsmip.c:207
-#: eelf32btsmip_fbsd.c:207 eelf32btsmipn32.c:207 eelf32btsmipn32_fbsd.c:207
-#: eelf32ebmip.c:207 eelf32ebmipvxworks.c:207 eelf32elmip.c:207
-#: eelf32elmipvxworks.c:207 eelf32l4300.c:207 eelf32lmip.c:207
-#: eelf32lr5900.c:207 eelf32lr5900n32.c:207 eelf32lsmip.c:207
-#: eelf32ltsmip.c:207 eelf32ltsmip_fbsd.c:207 eelf32ltsmipn32.c:207
-#: eelf32ltsmipn32_fbsd.c:207 eelf32metag.c:208 eelf32mipswindiss.c:207
-#: eelf64bmip.c:221 eelf64btsmip.c:207 eelf64btsmip_fbsd.c:207
-#: eelf64lppc.c:484 eelf64lppc_fbsd.c:484 eelf64ltsmip.c:207
-#: eelf64ltsmip_fbsd.c:207 eelf64ppc.c:484 eelf64ppc_fbsd.c:484
-#: eelf_mipsel_haiku.c:207 ehppaelf.c:232 ehppalinux.c:232 ehppanbsd.c:232
-#: ehppaobsd.c:232 em68hc11elf.c:297 em68hc11elfb.c:297 em68hc12elf.c:297
-#: em68hc12elfb.c:297 enios2elf.c:225 enios2linux.c:225 eppcmacos.c:1125
+#: eaarch64cloudabi.c:230 eaarch64cloudabib.c:230 eaarch64elf.c:229
+#: eaarch64elf32.c:229 eaarch64elf32b.c:229 eaarch64elfb.c:229
+#: eaarch64fbsd.c:230 eaarch64fbsdb.c:230 eaarch64haiku.c:230
+#: eaarch64linux.c:230 eaarch64linux32.c:230 eaarch64linux32b.c:230
+#: eaarch64linuxb.c:230 eaarch64nto.c:230 eaix5ppc.c:1097 eaix5rs6.c:1097
+#: eaixppc.c:1097 eaixrs6.c:1097 earmelf.c:299 earmelf_fbsd.c:299
+#: earmelf_fuchsia.c:300 earmelf_haiku.c:300 earmelf_linux.c:300
+#: earmelf_linux_eabi.c:300 earmelf_linux_fdpiceabi.c:300 earmelf_nacl.c:300
+#: earmelf_nbsd.c:299 earmelf_phoenix.c:300 earmelf_vxworks.c:299
+#: earmelfb.c:299 earmelfb_fbsd.c:299 earmelfb_fuchsia.c:300
+#: earmelfb_linux.c:300 earmelfb_linux_eabi.c:300
+#: earmelfb_linux_fdpiceabi.c:300 earmelfb_nacl.c:300 earmelfb_nbsd.c:299
+#: earmnto.c:299 eavr1.c:182 eavr2.c:182 eavr25.c:182 eavr3.c:182 eavr31.c:182
+#: eavr35.c:182 eavr4.c:182 eavr5.c:182 eavr51.c:182 eavr6.c:182
+#: eavrtiny.c:182 eavrxmega1.c:182 eavrxmega2.c:182 eavrxmega2_flmap.c:182
+#: eavrxmega3.c:182 eavrxmega4.c:182 eavrxmega4_flmap.c:182 eavrxmega5.c:182
+#: eavrxmega6.c:182 eavrxmega7.c:182 ecskyelf.c:213 ecskyelf_linux.c:213
+#: eelf32b4300.c:208 eelf32bmip.c:208 eelf32bmipn32.c:222 eelf32bsmip.c:222
+#: eelf32btsmip.c:208 eelf32btsmip_fbsd.c:208 eelf32btsmipn32.c:208
+#: eelf32btsmipn32_fbsd.c:208 eelf32ebmip.c:208 eelf32ebmipvxworks.c:208
+#: eelf32elmip.c:208 eelf32elmipvxworks.c:208 eelf32l4300.c:208
+#: eelf32lmip.c:208 eelf32lr5900.c:208 eelf32lr5900n32.c:208 eelf32lsmip.c:208
+#: eelf32ltsmip.c:208 eelf32ltsmip_fbsd.c:208 eelf32ltsmipn32.c:208
+#: eelf32ltsmipn32_fbsd.c:208 eelf32metag.c:209 eelf32mipswindiss.c:208
+#: eelf64bmip.c:222 eelf64btsmip.c:208 eelf64btsmip_fbsd.c:208
+#: eelf64lppc.c:485 eelf64lppc_fbsd.c:485 eelf64ltsmip.c:208
+#: eelf64ltsmip_fbsd.c:208 eelf64ppc.c:485 eelf64ppc_fbsd.c:485
+#: eelf_mipsel_haiku.c:208 ehppaelf.c:233 ehppalinux.c:233 ehppanbsd.c:233
+#: ehppaobsd.c:233 em68hc11elf.c:298 em68hc11elfb.c:298 em68hc12elf.c:298
+#: em68hc12elfb.c:298 enios2elf.c:226 enios2linux.c:226 eppcmacos.c:1097
msgid "%X%P: can not make stub section: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:272 eaarch64cloudabib.c:272 eaarch64elf.c:271
-#: eaarch64elf32.c:271 eaarch64elf32b.c:271 eaarch64elfb.c:271
-#: eaarch64fbsd.c:272 eaarch64fbsdb.c:272 eaarch64haiku.c:272
-#: eaarch64linux.c:272 eaarch64linux32.c:272 eaarch64linux32b.c:272
-#: eaarch64linuxb.c:272 eaarch64nto.c:272 earcelf.c:114 earclinux.c:115
-#: earclinux_nps.c:115 earcv2elf.c:114 earcv2elfx.c:114 earmelf.c:410
-#: earmelf_fbsd.c:410 earmelf_fuchsia.c:411 earmelf_haiku.c:411
-#: earmelf_linux.c:411 earmelf_linux_eabi.c:411 earmelf_linux_fdpiceabi.c:411
-#: earmelf_nacl.c:411 earmelf_nbsd.c:410 earmelf_phoenix.c:411
-#: earmelf_vxworks.c:410 earmelfb.c:410 earmelfb_fbsd.c:410
-#: earmelfb_fuchsia.c:411 earmelfb_linux.c:411 earmelfb_linux_eabi.c:411
-#: earmelfb_linux_fdpiceabi.c:411 earmelfb_nacl.c:411 earmelfb_nbsd.c:410
-#: earmnto.c:410 eavr1.c:318 eavr2.c:318 eavr25.c:318 eavr3.c:318 eavr31.c:318
-#: eavr35.c:318 eavr4.c:318 eavr5.c:318 eavr51.c:318 eavr6.c:318
-#: eavrtiny.c:318 eavrxmega1.c:318 eavrxmega2.c:318 eavrxmega3.c:318
-#: eavrxmega4.c:318 eavrxmega5.c:318 eavrxmega6.c:318 eavrxmega7.c:318
-#: ecriself.c:114 ecrislinux.c:115 ed10velf.c:114 eelf32_sparc.c:115
-#: eelf32_sparc_sol2.c:247 eelf32_sparc_vxworks.c:144 eelf32_spu.c:784
-#: eelf32_tic6x_be.c:183 eelf32_tic6x_elf_be.c:183 eelf32_tic6x_elf_le.c:183
-#: eelf32_tic6x_le.c:183 eelf32_tic6x_linux_be.c:183
-#: eelf32_tic6x_linux_le.c:183 eelf32_x86_64.c:139 eelf32am33lin.c:114
-#: eelf32b4300.c:311 eelf32bfin.c:124 eelf32bfinfd.c:124 eelf32bmip.c:311
-#: eelf32bmipn32.c:325 eelf32briscv.c:92 eelf32briscv_ilp32.c:92
-#: eelf32briscv_ilp32f.c:92 eelf32bsmip.c:325 eelf32btsmip.c:311
-#: eelf32btsmip_fbsd.c:311 eelf32btsmipn32.c:311 eelf32btsmipn32_fbsd.c:311
-#: eelf32cr16.c:264 eelf32crx.c:151 eelf32ebmip.c:311 eelf32ebmipvxworks.c:340
-#: eelf32elmip.c:311 eelf32elmipvxworks.c:340 eelf32epiphany.c:114
-#: eelf32epiphany_4x4.c:116 eelf32frvfd.c:114 eelf32ip2k.c:114
-#: eelf32l4300.c:311 eelf32lm32.c:114 eelf32lm32fd.c:114 eelf32lmip.c:311
-#: eelf32loongarch.c:91 eelf32lppc.c:335 eelf32lppclinux.c:335
-#: eelf32lppcnto.c:335 eelf32lppcsim.c:335 eelf32lr5900.c:311
-#: eelf32lr5900n32.c:310 eelf32lriscv.c:92 eelf32lriscv_ilp32.c:92
-#: eelf32lriscv_ilp32f.c:92 eelf32lsmip.c:311 eelf32ltsmip.c:311
-#: eelf32ltsmip_fbsd.c:311 eelf32ltsmipn32.c:311 eelf32ltsmipn32_fbsd.c:311
-#: eelf32m32c.c:125 eelf32mb_linux.c:115 eelf32mbel_linux.c:115
-#: eelf32mcore.c:114 eelf32mep.c:114 eelf32metag.c:258 eelf32microblaze.c:114
-#: eelf32microblazeel.c:114 eelf32mipswindiss.c:310 eelf32moxie.c:114
-#: eelf32or1k.c:115 eelf32or1k_linux.c:115 eelf32ppc.c:335
-#: eelf32ppc_fbsd.c:335 eelf32ppchaiku.c:335 eelf32ppclinux.c:335
-#: eelf32ppcnto.c:335 eelf32ppcsim.c:335 eelf32ppcvxworks.c:309
-#: eelf32ppcwindiss.c:335 eelf32rl78.c:114 eelf32rx.c:130 eelf32rx_linux.c:127
-#: eelf32tilegx.c:115 eelf32tilegx_be.c:115 eelf32tilepro.c:115
-#: eelf32vax.c:114 eelf32visium.c:114 eelf32xstormy16.c:125
-#: eelf32xtensa.c:2009 eelf32z80.c:141 eelf64_aix.c:114 eelf64_ia64.c:140
-#: eelf64_ia64_fbsd.c:140 eelf64_ia64_vms.c:221 eelf64_s390.c:130
-#: eelf64_sparc.c:115 eelf64_sparc_fbsd.c:115 eelf64_sparc_sol2.c:247
-#: eelf64alpha.c:198 eelf64alpha_fbsd.c:198 eelf64alpha_nbsd.c:198
-#: eelf64bmip.c:325 eelf64bpf.c:114 eelf64briscv.c:92 eelf64briscv_lp64.c:92
-#: eelf64briscv_lp64f.c:92 eelf64btsmip.c:311 eelf64btsmip_fbsd.c:311
-#: eelf64hppa.c:114 eelf64loongarch.c:91 eelf64lppc.c:594
-#: eelf64lppc_fbsd.c:594 eelf64lriscv.c:92 eelf64lriscv_lp64.c:92
-#: eelf64lriscv_lp64f.c:92 eelf64ltsmip.c:311 eelf64ltsmip_fbsd.c:311
-#: eelf64mmix.c:225 eelf64ppc.c:594 eelf64ppc_fbsd.c:594 eelf64rdos.c:130
-#: eelf64tilegx.c:115 eelf64tilegx_be.c:115 eelf_i386.c:139 eelf_i386_be.c:138
-#: eelf_i386_fbsd.c:139 eelf_i386_haiku.c:139 eelf_i386_ldso.c:139
-#: eelf_i386_sol2.c:271 eelf_i386_vxworks.c:168 eelf_iamcu.c:139
-#: eelf_mipsel_haiku.c:311 eelf_s390.c:115 eelf_x86_64.c:139
-#: eelf_x86_64_cloudabi.c:139 eelf_x86_64_fbsd.c:139 eelf_x86_64_haiku.c:139
-#: eelf_x86_64_sol2.c:271 eh8300elf.c:114 eh8300elf_linux.c:114
-#: eh8300helf.c:114 eh8300helf_linux.c:114 eh8300hnelf.c:114 eh8300self.c:114
-#: eh8300self_linux.c:114 eh8300snelf.c:114 eh8300sxelf.c:114
-#: eh8300sxelf_linux.c:114 eh8300sxnelf.c:114 ehppa64linux.c:114
-#: ehppaelf.c:282 ehppalinux.c:282 ehppanbsd.c:282 ehppaobsd.c:282
-#: ei386lynx.c:129 ei386moss.c:129 ei386nto.c:129 em32relf.c:114
-#: em32relf_linux.c:114 em32rlelf.c:114 em32rlelf_linux.c:114
-#: em68hc11elf.c:391 em68hc11elfb.c:391 em68hc12elf.c:391 em68hc12elfb.c:391
-#: em68kelf.c:266 em68kelfnbsd.c:266 emn10300.c:114 ends32belf.c:222
-#: ends32belf16m.c:222 ends32belf_linux.c:222 ends32elf.c:222
-#: ends32elf16m.c:222 ends32elf_linux.c:222 enios2elf.c:275 enios2linux.c:275
-#: epruelf.c:135 escore3_elf.c:134 escore7_elf.c:134 eshelf.c:114
-#: eshelf_fd.c:115 eshelf_linux.c:115 eshelf_nbsd.c:114 eshelf_nto.c:114
-#: eshelf_uclinux.c:114 eshelf_vxworks.c:143 eshlelf.c:114 eshlelf_fd.c:115
-#: eshlelf_linux.c:115 eshlelf_nbsd.c:114 eshlelf_nto.c:114
-#: eshlelf_vxworks.c:143 ev850.c:161 ev850_rh850.c:161
+#: eaarch64cloudabi.c:273 eaarch64cloudabib.c:273 eaarch64elf.c:272
+#: eaarch64elf32.c:272 eaarch64elf32b.c:272 eaarch64elfb.c:272
+#: eaarch64fbsd.c:273 eaarch64fbsdb.c:273 eaarch64haiku.c:273
+#: eaarch64linux.c:273 eaarch64linux32.c:273 eaarch64linux32b.c:273
+#: eaarch64linuxb.c:273 eaarch64nto.c:273 earcelf.c:116 earclinux.c:117
+#: earclinux_nps.c:117 earcv2elf.c:116 earcv2elfx.c:116 earmelf.c:411
+#: earmelf_fbsd.c:411 earmelf_fuchsia.c:412 earmelf_haiku.c:412
+#: earmelf_linux.c:412 earmelf_linux_eabi.c:412 earmelf_linux_fdpiceabi.c:412
+#: earmelf_nacl.c:412 earmelf_nbsd.c:411 earmelf_phoenix.c:412
+#: earmelf_vxworks.c:411 earmelfb.c:411 earmelfb_fbsd.c:411
+#: earmelfb_fuchsia.c:412 earmelfb_linux.c:412 earmelfb_linux_eabi.c:412
+#: earmelfb_linux_fdpiceabi.c:412 earmelfb_nacl.c:412 earmelfb_nbsd.c:411
+#: earmnto.c:411 eavr1.c:320 eavr2.c:320 eavr25.c:320 eavr3.c:320 eavr31.c:320
+#: eavr35.c:320 eavr4.c:320 eavr5.c:320 eavr51.c:320 eavr6.c:320
+#: eavrtiny.c:320 eavrxmega1.c:320 eavrxmega2.c:320 eavrxmega2_flmap.c:320
+#: eavrxmega3.c:320 eavrxmega4.c:320 eavrxmega4_flmap.c:320 eavrxmega5.c:320
+#: eavrxmega6.c:320 eavrxmega7.c:320 ecriself.c:116 ecrislinux.c:117
+#: ed10velf.c:116 eelf32_sparc.c:117 eelf32_sparc_sol2.c:249
+#: eelf32_sparc_vxworks.c:146 eelf32_spu.c:786 eelf32_tic6x_be.c:184
+#: eelf32_tic6x_elf_be.c:184 eelf32_tic6x_elf_le.c:184 eelf32_tic6x_le.c:184
+#: eelf32_tic6x_linux_be.c:184 eelf32_tic6x_linux_le.c:184 eelf32_x86_64.c:149
+#: eelf32am33lin.c:116 eelf32b4300.c:313 eelf32bfin.c:126 eelf32bfinfd.c:126
+#: eelf32bmip.c:313 eelf32bmipn32.c:327 eelf32briscv.c:94
+#: eelf32briscv_ilp32.c:94 eelf32briscv_ilp32f.c:94 eelf32bsmip.c:327
+#: eelf32btsmip.c:313 eelf32btsmip_fbsd.c:313 eelf32btsmipn32.c:313
+#: eelf32btsmipn32_fbsd.c:313 eelf32cr16.c:266 eelf32crx.c:153
+#: eelf32ebmip.c:313 eelf32ebmipvxworks.c:342 eelf32elmip.c:313
+#: eelf32elmipvxworks.c:342 eelf32epiphany.c:116 eelf32epiphany_4x4.c:118
+#: eelf32frvfd.c:116 eelf32ip2k.c:116 eelf32l4300.c:313 eelf32lm32.c:116
+#: eelf32lm32fd.c:116 eelf32lmip.c:313 eelf32loongarch.c:92 eelf32lppc.c:337
+#: eelf32lppclinux.c:337 eelf32lppcnto.c:337 eelf32lppcsim.c:337
+#: eelf32lr5900.c:313 eelf32lr5900n32.c:312 eelf32lriscv.c:94
+#: eelf32lriscv_ilp32.c:94 eelf32lriscv_ilp32f.c:94 eelf32lsmip.c:313
+#: eelf32ltsmip.c:313 eelf32ltsmip_fbsd.c:313 eelf32ltsmipn32.c:313
+#: eelf32ltsmipn32_fbsd.c:313 eelf32m32c.c:127 eelf32mb_linux.c:117
+#: eelf32mbel_linux.c:117 eelf32mcore.c:116 eelf32mep.c:116 eelf32metag.c:259
+#: eelf32microblaze.c:116 eelf32microblazeel.c:116 eelf32mipswindiss.c:312
+#: eelf32moxie.c:116 eelf32or1k.c:117 eelf32or1k_linux.c:117 eelf32ppc.c:337
+#: eelf32ppc_fbsd.c:337 eelf32ppchaiku.c:337 eelf32ppclinux.c:337
+#: eelf32ppcnto.c:337 eelf32ppcsim.c:337 eelf32ppcvxworks.c:311
+#: eelf32ppcwindiss.c:337 eelf32rl78.c:116 eelf32rx.c:132 eelf32rx_linux.c:129
+#: eelf32tilegx.c:117 eelf32tilegx_be.c:117 eelf32tilepro.c:117
+#: eelf32vax.c:116 eelf32visium.c:116 eelf32xstormy16.c:127
+#: eelf32xtensa.c:2014 eelf32z80.c:143 eelf64_aix.c:116 eelf64_ia64.c:142
+#: eelf64_ia64_fbsd.c:142 eelf64_ia64_vms.c:220 eelf64_s390.c:132
+#: eelf64_sparc.c:117 eelf64_sparc_fbsd.c:117 eelf64_sparc_sol2.c:249
+#: eelf64alpha.c:200 eelf64alpha_fbsd.c:200 eelf64alpha_nbsd.c:200
+#: eelf64bmip.c:327 eelf64bpf.c:116 eelf64briscv.c:94 eelf64briscv_lp64.c:94
+#: eelf64briscv_lp64f.c:94 eelf64btsmip.c:313 eelf64btsmip_fbsd.c:313
+#: eelf64hppa.c:116 eelf64loongarch.c:92 eelf64lppc.c:595
+#: eelf64lppc_fbsd.c:595 eelf64lriscv.c:94 eelf64lriscv_lp64.c:94
+#: eelf64lriscv_lp64f.c:94 eelf64ltsmip.c:313 eelf64ltsmip_fbsd.c:313
+#: eelf64mmix.c:227 eelf64ppc.c:595 eelf64ppc_fbsd.c:595 eelf64rdos.c:132
+#: eelf64tilegx.c:117 eelf64tilegx_be.c:117 eelf_i386.c:141 eelf_i386_be.c:140
+#: eelf_i386_fbsd.c:141 eelf_i386_haiku.c:141 eelf_i386_ldso.c:141
+#: eelf_i386_sol2.c:273 eelf_i386_vxworks.c:170 eelf_iamcu.c:141
+#: eelf_mipsel_haiku.c:313 eelf_s390.c:117 eelf_x86_64.c:149
+#: eelf_x86_64_cloudabi.c:149 eelf_x86_64_fbsd.c:149 eelf_x86_64_haiku.c:149
+#: eelf_x86_64_sol2.c:281 eh8300elf.c:116 eh8300elf_linux.c:116
+#: eh8300helf.c:116 eh8300helf_linux.c:116 eh8300hnelf.c:116 eh8300self.c:116
+#: eh8300self_linux.c:116 eh8300snelf.c:116 eh8300sxelf.c:116
+#: eh8300sxelf_linux.c:116 eh8300sxnelf.c:116 ehppa64linux.c:116
+#: ehppaelf.c:283 ehppalinux.c:283 ehppanbsd.c:283 ehppaobsd.c:283
+#: ei386lynx.c:131 ei386moss.c:131 ei386nto.c:131 em32relf.c:116
+#: em32relf_linux.c:116 em32rlelf.c:116 em32rlelf_linux.c:116
+#: em68hc11elf.c:393 em68hc11elfb.c:393 em68hc12elf.c:393 em68hc12elfb.c:393
+#: em68kelf.c:268 em68kelfnbsd.c:268 emn10300.c:116 ends32belf.c:224
+#: ends32belf16m.c:224 ends32belf_linux.c:224 ends32elf.c:224
+#: ends32elf16m.c:224 ends32elf_linux.c:224 enios2elf.c:276 enios2linux.c:276
+#: epruelf.c:137 escore3_elf.c:135 escore7_elf.c:135 eshelf.c:116
+#: eshelf_fd.c:117 eshelf_linux.c:117 eshelf_nbsd.c:116 eshelf_nto.c:116
+#: eshelf_uclinux.c:116 eshelf_vxworks.c:145 eshlelf.c:116 eshlelf_fd.c:117
+#: eshlelf_linux.c:117 eshlelf_nbsd.c:116 eshlelf_nto.c:116
+#: eshlelf_vxworks.c:145 ev850.c:163 ev850_rh850.c:163
msgid "%X%P: .eh_frame/.stab edit: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:288 eaarch64cloudabib.c:288 eaarch64elf.c:287
-#: eaarch64elf32.c:287 eaarch64elf32b.c:287 eaarch64elfb.c:287
-#: eaarch64fbsd.c:288 eaarch64fbsdb.c:288 eaarch64haiku.c:288
-#: eaarch64linux.c:288 eaarch64linux32.c:288 eaarch64linux32b.c:288
-#: eaarch64linuxb.c:288 eaarch64nto.c:288 earmelf.c:425 earmelf_fbsd.c:425
-#: earmelf_fuchsia.c:426 earmelf_haiku.c:426 earmelf_linux.c:426
-#: earmelf_linux_eabi.c:426 earmelf_linux_fdpiceabi.c:426 earmelf_nacl.c:426
-#: earmelf_nbsd.c:425 earmelf_phoenix.c:426 earmelf_vxworks.c:425
-#: earmelfb.c:425 earmelfb_fbsd.c:425 earmelfb_fuchsia.c:426
-#: earmelfb_linux.c:426 earmelfb_linux_eabi.c:426
-#: earmelfb_linux_fdpiceabi.c:426 earmelfb_nacl.c:426 earmelfb_nbsd.c:425
-#: earmnto.c:425 ecskyelf.c:262 ecskyelf_linux.c:262
+#: eaarch64cloudabi.c:289 eaarch64cloudabib.c:289 eaarch64elf.c:288
+#: eaarch64elf32.c:288 eaarch64elf32b.c:288 eaarch64elfb.c:288
+#: eaarch64fbsd.c:289 eaarch64fbsdb.c:289 eaarch64haiku.c:289
+#: eaarch64linux.c:289 eaarch64linux32.c:289 eaarch64linux32b.c:289
+#: eaarch64linuxb.c:289 eaarch64nto.c:289 earmelf.c:426 earmelf_fbsd.c:426
+#: earmelf_fuchsia.c:427 earmelf_haiku.c:427 earmelf_linux.c:427
+#: earmelf_linux_eabi.c:427 earmelf_linux_fdpiceabi.c:427 earmelf_nacl.c:427
+#: earmelf_nbsd.c:426 earmelf_phoenix.c:427 earmelf_vxworks.c:426
+#: earmelfb.c:426 earmelfb_fbsd.c:426 earmelfb_fuchsia.c:427
+#: earmelfb_linux.c:427 earmelfb_linux_eabi.c:427
+#: earmelfb_linux_fdpiceabi.c:427 earmelfb_nacl.c:427 earmelfb_nbsd.c:426
+#: earmnto.c:426 ecskyelf.c:263 ecskyelf_linux.c:263
msgid "%X%P: could not compute sections lists for stub generation: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:303 eaarch64cloudabib.c:303 eaarch64elf.c:302
-#: eaarch64elf32.c:302 eaarch64elf32b.c:302 eaarch64elfb.c:302
-#: eaarch64fbsd.c:303 eaarch64fbsdb.c:303 eaarch64haiku.c:303
-#: eaarch64linux.c:303 eaarch64linux32.c:303 eaarch64linux32b.c:303
-#: eaarch64linuxb.c:303 eaarch64nto.c:303 earmelf.c:440 earmelf_fbsd.c:440
-#: earmelf_fuchsia.c:441 earmelf_haiku.c:441 earmelf_linux.c:441
-#: earmelf_linux_eabi.c:441 earmelf_linux_fdpiceabi.c:441 earmelf_nacl.c:441
-#: earmelf_nbsd.c:440 earmelf_phoenix.c:441 earmelf_vxworks.c:440
-#: earmelfb.c:440 earmelfb_fbsd.c:440 earmelfb_fuchsia.c:441
-#: earmelfb_linux.c:441 earmelfb_linux_eabi.c:441
-#: earmelfb_linux_fdpiceabi.c:441 earmelfb_nacl.c:441 earmelfb_nbsd.c:440
-#: earmnto.c:440 eavr1.c:131 eavr1.c:195 eavr2.c:131 eavr2.c:195 eavr25.c:131
-#: eavr25.c:195 eavr3.c:131 eavr3.c:195 eavr31.c:131 eavr31.c:195 eavr35.c:131
-#: eavr35.c:195 eavr4.c:131 eavr4.c:195 eavr5.c:131 eavr5.c:195 eavr51.c:131
-#: eavr51.c:195 eavr6.c:131 eavr6.c:195 eavrtiny.c:131 eavrtiny.c:195
-#: eavrxmega1.c:131 eavrxmega1.c:195 eavrxmega2.c:131 eavrxmega2.c:195
-#: eavrxmega3.c:131 eavrxmega3.c:195 eavrxmega4.c:131 eavrxmega4.c:195
-#: eavrxmega5.c:131 eavrxmega5.c:195 eavrxmega6.c:131 eavrxmega6.c:195
-#: eavrxmega7.c:131 eavrxmega7.c:195 eelf32metag.c:273 eelf32metag.c:287
-#: eelf64lppc.c:537 eelf64lppc.c:556 eelf64lppc.c:583 eelf64lppc_fbsd.c:537
-#: eelf64lppc_fbsd.c:556 eelf64lppc_fbsd.c:583 eelf64ppc.c:537 eelf64ppc.c:556
-#: eelf64ppc.c:583 eelf64ppc_fbsd.c:537 eelf64ppc_fbsd.c:556
-#: eelf64ppc_fbsd.c:583 ehppaelf.c:297 ehppaelf.c:312 ehppalinux.c:297
-#: ehppalinux.c:312 ehppanbsd.c:297 ehppanbsd.c:312 ehppaobsd.c:297
-#: ehppaobsd.c:312 em68hc11elf.c:92 em68hc11elf.c:102 em68hc11elf.c:319
-#: em68hc11elfb.c:92 em68hc11elfb.c:102 em68hc11elfb.c:319 em68hc12elf.c:92
-#: em68hc12elf.c:102 em68hc12elf.c:319 em68hc12elfb.c:92 em68hc12elfb.c:102
-#: em68hc12elfb.c:319 enios2elf.c:292 enios2elf.c:305 enios2linux.c:292
-#: enios2linux.c:305
+#: eaarch64cloudabi.c:304 eaarch64cloudabib.c:304 eaarch64elf.c:303
+#: eaarch64elf32.c:303 eaarch64elf32b.c:303 eaarch64elfb.c:303
+#: eaarch64fbsd.c:304 eaarch64fbsdb.c:304 eaarch64haiku.c:304
+#: eaarch64linux.c:304 eaarch64linux32.c:304 eaarch64linux32b.c:304
+#: eaarch64linuxb.c:304 eaarch64nto.c:304 earmelf.c:441 earmelf_fbsd.c:441
+#: earmelf_fuchsia.c:442 earmelf_haiku.c:442 earmelf_linux.c:442
+#: earmelf_linux_eabi.c:442 earmelf_linux_fdpiceabi.c:442 earmelf_nacl.c:442
+#: earmelf_nbsd.c:441 earmelf_phoenix.c:442 earmelf_vxworks.c:441
+#: earmelfb.c:441 earmelfb_fbsd.c:441 earmelfb_fuchsia.c:442
+#: earmelfb_linux.c:442 earmelfb_linux_eabi.c:442
+#: earmelfb_linux_fdpiceabi.c:442 earmelfb_nacl.c:442 earmelfb_nbsd.c:441
+#: earmnto.c:441 eavr1.c:132 eavr1.c:196 eavr2.c:132 eavr2.c:196 eavr25.c:132
+#: eavr25.c:196 eavr3.c:132 eavr3.c:196 eavr31.c:132 eavr31.c:196 eavr35.c:132
+#: eavr35.c:196 eavr4.c:132 eavr4.c:196 eavr5.c:132 eavr5.c:196 eavr51.c:132
+#: eavr51.c:196 eavr6.c:132 eavr6.c:196 eavrtiny.c:132 eavrtiny.c:196
+#: eavrxmega1.c:132 eavrxmega1.c:196 eavrxmega2.c:132 eavrxmega2.c:196
+#: eavrxmega2_flmap.c:132 eavrxmega2_flmap.c:196 eavrxmega3.c:132
+#: eavrxmega3.c:196 eavrxmega4.c:132 eavrxmega4.c:196 eavrxmega4_flmap.c:132
+#: eavrxmega4_flmap.c:196 eavrxmega5.c:132 eavrxmega5.c:196 eavrxmega6.c:132
+#: eavrxmega6.c:196 eavrxmega7.c:132 eavrxmega7.c:196 eelf32metag.c:274
+#: eelf32metag.c:288 eelf64lppc.c:538 eelf64lppc.c:557 eelf64lppc.c:584
+#: eelf64lppc_fbsd.c:538 eelf64lppc_fbsd.c:557 eelf64lppc_fbsd.c:584
+#: eelf64ppc.c:538 eelf64ppc.c:557 eelf64ppc.c:584 eelf64ppc_fbsd.c:538
+#: eelf64ppc_fbsd.c:557 eelf64ppc_fbsd.c:584 ehppaelf.c:298 ehppaelf.c:313
+#: ehppalinux.c:298 ehppalinux.c:313 ehppanbsd.c:298 ehppanbsd.c:313
+#: ehppaobsd.c:298 ehppaobsd.c:313 em68hc11elf.c:93 em68hc11elf.c:103
+#: em68hc11elf.c:320 em68hc11elfb.c:93 em68hc11elfb.c:103 em68hc11elfb.c:320
+#: em68hc12elf.c:93 em68hc12elf.c:103 em68hc12elf.c:320 em68hc12elfb.c:93
+#: em68hc12elfb.c:103 em68hc12elfb.c:320 enios2elf.c:293 enios2elf.c:306
+#: enios2linux.c:293 enios2linux.c:306
msgid "%X%P: can not size stub section: %E\n"
msgstr ""
-#: eaarch64cloudabi.c:322 eaarch64cloudabib.c:322 eaarch64elf.c:321
-#: eaarch64elf32.c:321 eaarch64elf32b.c:321 eaarch64elfb.c:321
-#: eaarch64fbsd.c:322 eaarch64fbsdb.c:322 eaarch64haiku.c:322
-#: eaarch64linux.c:322 eaarch64linux32.c:322 eaarch64linux32b.c:322
-#: eaarch64linuxb.c:322 eaarch64nto.c:322 eaix5ppc.c:1165 eaix5rs6.c:1165
-#: eaixppc.c:1165 eaixrs6.c:1165 earmelf.c:474 earmelf_fbsd.c:474
-#: earmelf_fuchsia.c:475 earmelf_haiku.c:475 earmelf_linux.c:475
-#: earmelf_linux_eabi.c:475 earmelf_linux_fdpiceabi.c:475 earmelf_nacl.c:475
-#: earmelf_nbsd.c:474 earmelf_phoenix.c:475 earmelf_vxworks.c:474
-#: earmelfb.c:474 earmelfb_fbsd.c:474 earmelfb_fuchsia.c:475
-#: earmelfb_linux.c:475 earmelfb_linux_eabi.c:475
-#: earmelfb_linux_fdpiceabi.c:475 earmelfb_nacl.c:475 earmelfb_nbsd.c:474
-#: earmnto.c:474 eavr1.c:204 eavr2.c:204 eavr25.c:204 eavr3.c:204 eavr31.c:204
-#: eavr35.c:204 eavr4.c:204 eavr5.c:204 eavr51.c:204 eavr6.c:204
-#: eavrtiny.c:204 eavrxmega1.c:204 eavrxmega2.c:204 eavrxmega3.c:204
-#: eavrxmega4.c:204 eavrxmega5.c:204 eavrxmega6.c:204 eavrxmega7.c:204
-#: eelf32metag.c:302 eelf64lppc.c:633 eelf64lppc_fbsd.c:633 eelf64ppc.c:633
-#: eelf64ppc_fbsd.c:633 ehppaelf.c:334 ehppalinux.c:334 ehppanbsd.c:334
-#: ehppaobsd.c:334 em68hc11elf.c:323 em68hc11elfb.c:323 em68hc12elf.c:323
-#: em68hc12elfb.c:323 enios2elf.c:320 enios2linux.c:320 eppcmacos.c:1165
+#: eaarch64cloudabi.c:323 eaarch64cloudabib.c:323 eaarch64elf.c:322
+#: eaarch64elf32.c:322 eaarch64elf32b.c:322 eaarch64elfb.c:322
+#: eaarch64fbsd.c:323 eaarch64fbsdb.c:323 eaarch64haiku.c:323
+#: eaarch64linux.c:323 eaarch64linux32.c:323 eaarch64linux32b.c:323
+#: eaarch64linuxb.c:323 eaarch64nto.c:323 eaix5ppc.c:1137 eaix5rs6.c:1137
+#: eaixppc.c:1137 eaixrs6.c:1137 earmelf.c:475 earmelf_fbsd.c:475
+#: earmelf_fuchsia.c:476 earmelf_haiku.c:476 earmelf_linux.c:476
+#: earmelf_linux_eabi.c:476 earmelf_linux_fdpiceabi.c:476 earmelf_nacl.c:476
+#: earmelf_nbsd.c:475 earmelf_phoenix.c:476 earmelf_vxworks.c:475
+#: earmelfb.c:475 earmelfb_fbsd.c:475 earmelfb_fuchsia.c:476
+#: earmelfb_linux.c:476 earmelfb_linux_eabi.c:476
+#: earmelfb_linux_fdpiceabi.c:476 earmelfb_nacl.c:476 earmelfb_nbsd.c:475
+#: earmnto.c:475 eavr1.c:205 eavr2.c:205 eavr25.c:205 eavr3.c:205 eavr31.c:205
+#: eavr35.c:205 eavr4.c:205 eavr5.c:205 eavr51.c:205 eavr6.c:205
+#: eavrtiny.c:205 eavrxmega1.c:205 eavrxmega2.c:205 eavrxmega2_flmap.c:205
+#: eavrxmega3.c:205 eavrxmega4.c:205 eavrxmega4_flmap.c:205 eavrxmega5.c:205
+#: eavrxmega6.c:205 eavrxmega7.c:205 eelf32metag.c:303 eelf64lppc.c:634
+#: eelf64lppc_fbsd.c:634 eelf64ppc.c:634 eelf64ppc_fbsd.c:634 ehppaelf.c:335
+#: ehppalinux.c:335 ehppanbsd.c:335 ehppaobsd.c:335 em68hc11elf.c:324
+#: em68hc11elfb.c:324 em68hc12elf.c:324 em68hc12elfb.c:324 enios2elf.c:321
+#: enios2linux.c:321 eppcmacos.c:1137
msgid "%X%P: can not build stubs: %E\n"
msgstr ""
@@ -3665,721 +3723,642 @@ msgstr ""
#. These will only be created if the output format is an arm format,
#. hence we do not support linking and changing output formats at the
#. same time. Use a link followed by objcopy to change output formats.
-#: eaarch64cloudabi.c:340 eaarch64cloudabib.c:340 eaarch64elf.c:339
-#: eaarch64elf32.c:339 eaarch64elf32b.c:339 eaarch64elfb.c:339
-#: eaarch64fbsd.c:340 eaarch64fbsdb.c:340 eaarch64haiku.c:340
-#: eaarch64linux.c:340 eaarch64linux32.c:340 eaarch64linux32b.c:340
-#: eaarch64linuxb.c:340 eaarch64nto.c:340 earm_wince_pe.c:1601 earmelf.c:543
-#: earmelf_fbsd.c:543 earmelf_fuchsia.c:544 earmelf_haiku.c:544
-#: earmelf_linux.c:544 earmelf_linux_eabi.c:544 earmelf_linux_fdpiceabi.c:544
-#: earmelf_nacl.c:544 earmelf_nbsd.c:543 earmelf_phoenix.c:544
-#: earmelf_vxworks.c:543 earmelfb.c:543 earmelfb_fbsd.c:543
-#: earmelfb_fuchsia.c:544 earmelfb_linux.c:544 earmelfb_linux_eabi.c:544
-#: earmelfb_linux_fdpiceabi.c:544 earmelfb_nacl.c:544 earmelfb_nbsd.c:543
-#: earmnto.c:543 earmpe.c:1601 eavr1.c:144 eavr2.c:144 eavr25.c:144
-#: eavr3.c:144 eavr31.c:144 eavr35.c:144 eavr4.c:144 eavr5.c:144 eavr51.c:144
-#: eavr6.c:144 eavrtiny.c:144 eavrxmega1.c:144 eavrxmega2.c:144
-#: eavrxmega3.c:144 eavrxmega4.c:144 eavrxmega5.c:144 eavrxmega6.c:144
-#: eavrxmega7.c:144 eelf32briscv.c:127 eelf32briscv_ilp32.c:127
-#: eelf32briscv_ilp32f.c:127 eelf32loongarch.c:111 eelf32lriscv.c:127
-#: eelf32lriscv_ilp32.c:127 eelf32lriscv_ilp32f.c:127 eelf64briscv.c:127
-#: eelf64briscv_lp64.c:127 eelf64briscv_lp64f.c:127 eelf64loongarch.c:111
-#: eelf64lriscv.c:127 eelf64lriscv_lp64.c:127 eelf64lriscv_lp64f.c:127
-#: ei386pe.c:1601 ei386pe_posix.c:1601 emcorepe.c:1601 ends32belf.c:76
-#: ends32belf16m.c:76 ends32belf_linux.c:76 ends32elf.c:76 ends32elf16m.c:76
-#: ends32elf_linux.c:76 escore3_elf.c:81 escore7_elf.c:81 eshpe.c:1601
-#: ev850.c:93 ev850_rh850.c:93
+#: eaarch64cloudabi.c:341 eaarch64cloudabib.c:341 eaarch64elf.c:340
+#: eaarch64elf32.c:340 eaarch64elf32b.c:340 eaarch64elfb.c:340
+#: eaarch64fbsd.c:341 eaarch64fbsdb.c:341 eaarch64haiku.c:341
+#: eaarch64linux.c:341 eaarch64linux32.c:341 eaarch64linux32b.c:341
+#: eaarch64linuxb.c:341 eaarch64nto.c:341 earm_wince_pe.c:1523 earmelf.c:544
+#: earmelf_fbsd.c:544 earmelf_fuchsia.c:545 earmelf_haiku.c:545
+#: earmelf_linux.c:545 earmelf_linux_eabi.c:545 earmelf_linux_fdpiceabi.c:545
+#: earmelf_nacl.c:545 earmelf_nbsd.c:544 earmelf_phoenix.c:545
+#: earmelf_vxworks.c:544 earmelfb.c:544 earmelfb_fbsd.c:544
+#: earmelfb_fuchsia.c:545 earmelfb_linux.c:545 earmelfb_linux_eabi.c:545
+#: earmelfb_linux_fdpiceabi.c:545 earmelfb_nacl.c:545 earmelfb_nbsd.c:544
+#: earmnto.c:544 earmpe.c:1523 eavr1.c:145 eavr2.c:145 eavr25.c:145
+#: eavr3.c:145 eavr31.c:145 eavr35.c:145 eavr4.c:145 eavr5.c:145 eavr51.c:145
+#: eavr6.c:145 eavrtiny.c:145 eavrxmega1.c:145 eavrxmega2.c:145
+#: eavrxmega2_flmap.c:145 eavrxmega3.c:145 eavrxmega4.c:145
+#: eavrxmega4_flmap.c:145 eavrxmega5.c:145 eavrxmega6.c:145 eavrxmega7.c:145
+#: eelf32briscv.c:129 eelf32briscv_ilp32.c:129 eelf32briscv_ilp32f.c:129
+#: eelf32loongarch.c:130 eelf32lriscv.c:129 eelf32lriscv_ilp32.c:129
+#: eelf32lriscv_ilp32f.c:129 eelf64briscv.c:129 eelf64briscv_lp64.c:129
+#: eelf64briscv_lp64f.c:129 eelf64loongarch.c:130 eelf64lriscv.c:129
+#: eelf64lriscv_lp64.c:129 eelf64lriscv_lp64f.c:129 ei386pe.c:1523
+#: ei386pe_posix.c:1523 emcorepe.c:1523 ends32belf.c:77 ends32belf16m.c:77
+#: ends32belf_linux.c:77 ends32elf.c:77 ends32elf16m.c:77 ends32elf_linux.c:77
+#: escore3_elf.c:82 escore7_elf.c:82 eshpe.c:1523 ev850.c:94 ev850_rh850.c:94
msgid "%F%P: error: cannot change output format whilst linking %s binaries\n"
msgstr ""
-#: eaarch64cloudabi.c:592 eaarch64cloudabib.c:592 eaarch64elf.c:591
-#: eaarch64elf32.c:591 eaarch64elf32b.c:591 eaarch64elfb.c:591
-#: eaarch64fbsd.c:592 eaarch64fbsdb.c:592 eaarch64haiku.c:592
-#: eaarch64linux.c:592 eaarch64linux32.c:592 eaarch64linux32b.c:592
-#: eaarch64linuxb.c:592 eaarch64nto.c:760 earcelf.c:225 earclinux.c:281
-#: earclinux_nps.c:281 earcv2elf.c:209 earcv2elfx.c:209 earmelf.c:831
-#: earmelf_fbsd.c:831 earmelf_fuchsia.c:832 earmelf_haiku.c:832
-#: earmelf_linux.c:832 earmelf_linux_eabi.c:832 earmelf_linux_fdpiceabi.c:832
-#: earmelf_nacl.c:832 earmelf_nbsd.c:831 earmelf_phoenix.c:832
-#: earmelf_vxworks.c:867 earmelfb.c:831 earmelfb_fbsd.c:831
-#: earmelfb_fuchsia.c:832 earmelfb_linux.c:832 earmelfb_linux_eabi.c:832
-#: earmelfb_linux_fdpiceabi.c:832 earmelfb_nacl.c:832 earmelfb_nbsd.c:831
-#: earmnto.c:806 eavr1.c:433 eavr2.c:433 eavr25.c:433 eavr3.c:433 eavr31.c:433
-#: eavr35.c:433 eavr4.c:433 eavr5.c:433 eavr51.c:433 eavr6.c:433
-#: eavrtiny.c:433 eavrxmega1.c:433 eavrxmega2.c:433 eavrxmega3.c:433
-#: eavrxmega4.c:433 eavrxmega5.c:433 eavrxmega6.c:433 eavrxmega7.c:433
-#: ecriself.c:224 ecrislinux.c:256 ecskyelf.c:468 ecskyelf_linux.c:525
-#: ed10velf.c:209 eelf32_sparc.c:281 eelf32_sparc_sol2.c:413
-#: eelf32_sparc_vxworks.c:318 eelf32_spu.c:942 eelf32_tic6x_be.c:392
-#: eelf32_tic6x_elf_be.c:392 eelf32_tic6x_elf_le.c:392 eelf32_tic6x_le.c:392
-#: eelf32_tic6x_linux_be.c:392 eelf32_tic6x_linux_le.c:392
-#: eelf32_x86_64.c:5416 eelf32am33lin.c:255 eelf32b4300.c:496 eelf32bfin.c:273
-#: eelf32bfinfd.c:298 eelf32bmip.c:496 eelf32bmipn32.c:510 eelf32briscv.c:363
-#: eelf32briscv_ilp32.c:363 eelf32briscv_ilp32f.c:363 eelf32bsmip.c:510
-#: eelf32btsmip.c:496 eelf32btsmip_fbsd.c:496 eelf32btsmipn32.c:496
-#: eelf32btsmipn32_fbsd.c:496 eelf32cr16.c:359 eelf32crx.c:246
-#: eelf32ebmip.c:496 eelf32ebmipvxworks.c:531 eelf32elmip.c:496
-#: eelf32elmipvxworks.c:531 eelf32epiphany.c:224 eelf32epiphany_4x4.c:211
-#: eelf32frvfd.c:280 eelf32ip2k.c:224 eelf32kvx.c:521 eelf32l4300.c:496
-#: eelf32lm32.c:224 eelf32lm32fd.c:280 eelf32lmip.c:496 eelf32loongarch.c:334
-#: eelf32lppc.c:544 eelf32lppclinux.c:544 eelf32lppcnto.c:544
-#: eelf32lppcsim.c:544 eelf32lr5900.c:465 eelf32lr5900n32.c:464
-#: eelf32lriscv.c:363 eelf32lriscv_ilp32.c:363 eelf32lriscv_ilp32f.c:363
-#: eelf32lsmip.c:496 eelf32ltsmip.c:496 eelf32ltsmip_fbsd.c:496
-#: eelf32ltsmipn32.c:496 eelf32ltsmipn32_fbsd.c:496 eelf32m32c.c:235
-#: eelf32mb_linux.c:281 eelf32mbel_linux.c:281 eelf32mcore.c:230
-#: eelf32mep.c:209 eelf32metag.c:530 eelf32microblaze.c:209
-#: eelf32microblazeel.c:209 eelf32mipswindiss.c:439 eelf32moxie.c:224
-#: eelf32or1k.c:225 eelf32or1k_linux.c:281 eelf32ppc.c:544
-#: eelf32ppc_fbsd.c:544 eelf32ppchaiku.c:544 eelf32ppclinux.c:544
-#: eelf32ppcnto.c:544 eelf32ppcsim.c:544 eelf32ppcvxworks.c:518
-#: eelf32ppcwindiss.c:544 eelf32rl78.c:224 eelf32rx.c:252 eelf32rx_linux.c:237
-#: eelf32tilegx.c:281 eelf32tilegx_be.c:281 eelf32tilepro.c:281
-#: eelf32vax.c:255 eelf32visium.c:209 eelf32xstormy16.c:220
-#: eelf32xtensa.c:2192 eelf32z80.c:236 eelf64_aix.c:255 eelf64_ia64.c:312
-#: eelf64_ia64_fbsd.c:312 eelf64_s390.c:351 eelf64_sparc.c:281
-#: eelf64_sparc_fbsd.c:281 eelf64_sparc_sol2.c:413 eelf64alpha.c:374
-#: eelf64alpha_fbsd.c:374 eelf64alpha_nbsd.c:374 eelf64bmip.c:510
-#: eelf64bpf.c:209 eelf64briscv.c:363 eelf64briscv_lp64.c:363
-#: eelf64briscv_lp64f.c:363 eelf64btsmip.c:496 eelf64btsmip_fbsd.c:496
-#: eelf64hppa.c:225 eelf64kvx.c:521 eelf64kvx_linux.c:543
-#: eelf64loongarch.c:334 eelf64lppc.c:993 eelf64lppc_fbsd.c:993
-#: eelf64lriscv.c:363 eelf64lriscv_lp64.c:363 eelf64lriscv_lp64f.c:363
-#: eelf64ltsmip.c:496 eelf64ltsmip_fbsd.c:496 eelf64mmix.c:366 eelf64ppc.c:993
-#: eelf64ppc_fbsd.c:993 eelf64rdos.c:306 eelf64tilegx.c:281
-#: eelf64tilegx_be.c:281 eelf_i386.c:5038 eelf_i386_be.c:279
-#: eelf_i386_fbsd.c:315 eelf_i386_haiku.c:315 eelf_i386_ldso.c:290
-#: eelf_i386_sol2.c:447 eelf_i386_vxworks.c:342 eelf_iamcu.c:315
-#: eelf_mipsel_haiku.c:496 eelf_s390.c:281 eelf_x86_64.c:5416
-#: eelf_x86_64_cloudabi.c:315 eelf_x86_64_fbsd.c:315 eelf_x86_64_haiku.c:315
-#: eelf_x86_64_sol2.c:447 eh8300elf.c:224 eh8300elf_linux.c:224
-#: eh8300helf.c:224 eh8300helf_linux.c:224 eh8300hnelf.c:224 eh8300self.c:224
-#: eh8300self_linux.c:224 eh8300snelf.c:224 eh8300sxelf.c:224
-#: eh8300sxelf_linux.c:224 eh8300sxnelf.c:224 ehppa64linux.c:255
-#: ehppaelf.c:492 ehppalinux.c:564 ehppanbsd.c:564 ehppaobsd.c:564
-#: ei386lynx.c:270 ei386moss.c:270 ei386nto.c:270 em32relf.c:224
-#: em32relf_linux.c:280 em32rlelf.c:224 em32rlelf_linux.c:280
-#: em68hc11elf.c:494 em68hc11elfb.c:494 em68hc12elf.c:494 em68hc12elfb.c:494
-#: em68kelf.c:438 em68kelfnbsd.c:438 emn10300.c:255 ends32belf.c:345
-#: ends32belf16m.c:345 ends32belf_linux.c:368 ends32elf.c:345
-#: ends32elf16m.c:345 ends32elf_linux.c:368 enios2elf.c:511 enios2linux.c:542
-#: epruelf.c:230 escore3_elf.c:275 escore7_elf.c:275 eshelf.c:255
-#: eshelf_fd.c:281 eshelf_linux.c:281 eshelf_nbsd.c:255 eshelf_nto.c:255
-#: eshelf_uclinux.c:255 eshelf_vxworks.c:292 eshlelf.c:255 eshlelf_fd.c:281
-#: eshlelf_linux.c:281 eshlelf_nbsd.c:255 eshlelf_nto.c:255
-#: eshlelf_vxworks.c:292 ev850.c:256 ev850_rh850.c:256
+#: eaarch64cloudabi.c:616 eaarch64cloudabib.c:616 eaarch64elf.c:615
+#: eaarch64elf32.c:615 eaarch64elf32b.c:615 eaarch64elfb.c:615
+#: eaarch64fbsd.c:616 eaarch64fbsdb.c:616 eaarch64haiku.c:616
+#: eaarch64linux.c:616 eaarch64linux32.c:616 eaarch64linux32b.c:616
+#: eaarch64linuxb.c:616 eaarch64nto.c:778 earcelf.c:224 earclinux.c:315
+#: earclinux_nps.c:315 earcv2elf.c:203 earcv2elfx.c:203 earmelf.c:840
+#: earmelf_fbsd.c:840 earmelf_fuchsia.c:841 earmelf_haiku.c:841
+#: earmelf_linux.c:841 earmelf_linux_eabi.c:841 earmelf_linux_fdpiceabi.c:841
+#: earmelf_nacl.c:841 earmelf_nbsd.c:840 earmelf_phoenix.c:841
+#: earmelf_vxworks.c:872 earmelfb.c:840 earmelfb_fbsd.c:840
+#: earmelfb_fuchsia.c:841 earmelfb_linux.c:841 earmelfb_linux_eabi.c:841
+#: earmelfb_linux_fdpiceabi.c:841 earmelfb_nacl.c:841 earmelfb_nbsd.c:840
+#: earmnto.c:800 eavr1.c:419 eavr2.c:419 eavr25.c:419 eavr3.c:419 eavr31.c:419
+#: eavr35.c:419 eavr4.c:419 eavr5.c:419 eavr51.c:419 eavr6.c:419
+#: eavrtiny.c:419 eavrxmega1.c:419 eavrxmega2.c:419 eavrxmega2_flmap.c:419
+#: eavrxmega3.c:419 eavrxmega4.c:419 eavrxmega4_flmap.c:419 eavrxmega5.c:419
+#: eavrxmega6.c:419 eavrxmega7.c:419 ecriself.c:228 ecrislinux.c:275
+#: ecskyelf.c:467 ecskyelf_linux.c:554 ed10velf.c:203 eelf32_sparc.c:315
+#: eelf32_sparc_sol2.c:447 eelf32_sparc_vxworks.c:347 eelf32_spu.c:923
+#: eelf32_tic6x_be.c:406 eelf32_tic6x_elf_be.c:406 eelf32_tic6x_elf_le.c:406
+#: eelf32_tic6x_le.c:406 eelf32_tic6x_linux_be.c:406
+#: eelf32_tic6x_linux_le.c:406 eelf32_x86_64.c:7629 eelf32am33lin.c:274
+#: eelf32b4300.c:519 eelf32bfin.c:288 eelf32bfinfd.c:328 eelf32bmip.c:519
+#: eelf32bmipn32.c:533 eelf32briscv.c:393 eelf32briscv_ilp32.c:393
+#: eelf32briscv_ilp32f.c:393 eelf32bsmip.c:533 eelf32btsmip.c:519
+#: eelf32btsmip_fbsd.c:519 eelf32btsmipn32.c:519 eelf32btsmipn32_fbsd.c:519
+#: eelf32cr16.c:353 eelf32crx.c:240 eelf32ebmip.c:519 eelf32ebmipvxworks.c:550
+#: eelf32elmip.c:519 eelf32elmipvxworks.c:550 eelf32epiphany.c:228
+#: eelf32epiphany_4x4.c:205 eelf32frvfd.c:314 eelf32ip2k.c:228 eelf32kvx.c:540
+#: eelf32l4300.c:519 eelf32lm32.c:228 eelf32lm32fd.c:314 eelf32lmip.c:519
+#: eelf32loongarch.c:386 eelf32lppc.c:556 eelf32lppclinux.c:556
+#: eelf32lppcnto.c:556 eelf32lppcsim.c:556 eelf32lr5900.c:473
+#: eelf32lr5900n32.c:472 eelf32lriscv.c:393 eelf32lriscv_ilp32.c:393
+#: eelf32lriscv_ilp32f.c:393 eelf32lsmip.c:519 eelf32ltsmip.c:519
+#: eelf32ltsmip_fbsd.c:519 eelf32ltsmipn32.c:519 eelf32ltsmipn32_fbsd.c:519
+#: eelf32m32c.c:239 eelf32mb_linux.c:315 eelf32mbel_linux.c:315
+#: eelf32mcore.c:231 eelf32mep.c:203 eelf32metag.c:561 eelf32microblaze.c:203
+#: eelf32microblazeel.c:203 eelf32mipswindiss.c:432 eelf32moxie.c:228
+#: eelf32or1k.c:229 eelf32or1k_linux.c:315 eelf32ppc.c:556
+#: eelf32ppc_fbsd.c:556 eelf32ppchaiku.c:556 eelf32ppclinux.c:556
+#: eelf32ppcnto.c:556 eelf32ppcsim.c:556 eelf32ppcvxworks.c:526
+#: eelf32ppcwindiss.c:556 eelf32rl78.c:228 eelf32rx.c:250 eelf32rx_linux.c:241
+#: eelf32tilegx.c:315 eelf32tilegx_be.c:315 eelf32tilepro.c:315
+#: eelf32vax.c:274 eelf32visium.c:203 eelf32xstormy16.c:214
+#: eelf32xtensa.c:2219 eelf32z80.c:230 eelf64_aix.c:274 eelf64_ia64.c:343
+#: eelf64_ia64_fbsd.c:343 eelf64_s390.c:412 eelf64_sparc.c:315
+#: eelf64_sparc_fbsd.c:315 eelf64_sparc_sol2.c:447 eelf64alpha.c:403
+#: eelf64alpha_fbsd.c:403 eelf64alpha_nbsd.c:403 eelf64bmip.c:533
+#: eelf64bpf.c:203 eelf64briscv.c:393 eelf64briscv_lp64.c:393
+#: eelf64briscv_lp64f.c:393 eelf64btsmip.c:519 eelf64btsmip_fbsd.c:519
+#: eelf64hppa.c:224 eelf64kvx.c:540 eelf64kvx_linux.c:577
+#: eelf64loongarch.c:386 eelf64lppc.c:990 eelf64lppc_fbsd.c:990
+#: eelf64lriscv.c:393 eelf64lriscv_lp64.c:393 eelf64lriscv_lp64f.c:393
+#: eelf64ltsmip.c:519 eelf64ltsmip_fbsd.c:519 eelf64mmix.c:385 eelf64ppc.c:990
+#: eelf64ppc_fbsd.c:990 eelf64rdos.c:336 eelf64tilegx.c:315
+#: eelf64tilegx_be.c:315 eelf_i386.c:7087 eelf_i386_be.c:298
+#: eelf_i386_fbsd.c:345 eelf_i386_haiku.c:345 eelf_i386_ldso.c:305
+#: eelf_i386_sol2.c:477 eelf_i386_vxworks.c:371 eelf_iamcu.c:345
+#: eelf_mipsel_haiku.c:519 eelf_s390.c:315 eelf_x86_64.c:7629
+#: eelf_x86_64_cloudabi.c:353 eelf_x86_64_fbsd.c:353 eelf_x86_64_haiku.c:353
+#: eelf_x86_64_sol2.c:485 eh8300elf.c:228 eh8300elf_linux.c:228
+#: eh8300helf.c:228 eh8300helf_linux.c:228 eh8300hnelf.c:228 eh8300self.c:228
+#: eh8300self_linux.c:228 eh8300snelf.c:228 eh8300sxelf.c:228
+#: eh8300sxelf_linux.c:228 eh8300sxnelf.c:228 ehppa64linux.c:274
+#: ehppaelf.c:482 ehppalinux.c:594 ehppanbsd.c:594 ehppaobsd.c:594
+#: ei386lynx.c:289 ei386moss.c:289 ei386nto.c:289 em32relf.c:228
+#: em32relf_linux.c:314 em32rlelf.c:228 em32rlelf_linux.c:314
+#: em68hc11elf.c:484 em68hc11elfb.c:484 em68hc12elf.c:484 em68hc12elfb.c:484
+#: em68kelf.c:469 em68kelfnbsd.c:469 emn10300.c:274 ends32belf.c:327
+#: ends32belf16m.c:327 ends32belf_linux.c:360 ends32elf.c:327
+#: ends32elf16m.c:327 ends32elf_linux.c:360 enios2elf.c:530 enios2linux.c:576
+#: epruelf.c:224 escore3_elf.c:293 escore7_elf.c:293 eshelf.c:274
+#: eshelf_fd.c:315 eshelf_linux.c:315 eshelf_nbsd.c:274 eshelf_nto.c:274
+#: eshelf_uclinux.c:274 eshelf_vxworks.c:306 eshlelf.c:274 eshlelf_fd.c:315
+#: eshlelf_linux.c:315 eshlelf_nbsd.c:274 eshlelf_nto.c:274
+#: eshlelf_vxworks.c:306 ev850.c:250 ev850_rh850.c:250
msgid ""
"%F%P: --compress-debug-sections=zstd: ld is not built with zstd support\n"
msgstr ""
-#: eaarch64cloudabi.c:597 eaarch64cloudabib.c:597 eaarch64elf.c:596
-#: eaarch64elf32.c:596 eaarch64elf32b.c:596 eaarch64elfb.c:596
-#: eaarch64fbsd.c:597 eaarch64fbsdb.c:597 eaarch64haiku.c:597
-#: eaarch64linux.c:597 eaarch64linux32.c:597 eaarch64linux32b.c:597
-#: eaarch64linuxb.c:597 eaarch64nto.c:765 earcelf.c:230 earclinux.c:286
-#: earclinux_nps.c:286 earcv2elf.c:214 earcv2elfx.c:214 earmelf.c:836
-#: earmelf_fbsd.c:836 earmelf_fuchsia.c:837 earmelf_haiku.c:837
-#: earmelf_linux.c:837 earmelf_linux_eabi.c:837 earmelf_linux_fdpiceabi.c:837
-#: earmelf_nacl.c:837 earmelf_nbsd.c:836 earmelf_phoenix.c:837
-#: earmelf_vxworks.c:872 earmelfb.c:836 earmelfb_fbsd.c:836
-#: earmelfb_fuchsia.c:837 earmelfb_linux.c:837 earmelfb_linux_eabi.c:837
-#: earmelfb_linux_fdpiceabi.c:837 earmelfb_nacl.c:837 earmelfb_nbsd.c:836
-#: earmnto.c:811 eavr1.c:438 eavr2.c:438 eavr25.c:438 eavr3.c:438 eavr31.c:438
-#: eavr35.c:438 eavr4.c:438 eavr5.c:438 eavr51.c:438 eavr6.c:438
-#: eavrtiny.c:438 eavrxmega1.c:438 eavrxmega2.c:438 eavrxmega3.c:438
-#: eavrxmega4.c:438 eavrxmega5.c:438 eavrxmega6.c:438 eavrxmega7.c:438
-#: ecriself.c:229 ecrislinux.c:261 ecskyelf.c:473 ecskyelf_linux.c:530
-#: ed10velf.c:214 eelf32_sparc.c:286 eelf32_sparc_sol2.c:418
-#: eelf32_sparc_vxworks.c:323 eelf32_spu.c:947 eelf32_tic6x_be.c:397
-#: eelf32_tic6x_elf_be.c:397 eelf32_tic6x_elf_le.c:397 eelf32_tic6x_le.c:397
-#: eelf32_tic6x_linux_be.c:397 eelf32_tic6x_linux_le.c:397
-#: eelf32_x86_64.c:5421 eelf32am33lin.c:260 eelf32b4300.c:501 eelf32bfin.c:278
-#: eelf32bfinfd.c:303 eelf32bmip.c:501 eelf32bmipn32.c:515 eelf32briscv.c:368
-#: eelf32briscv_ilp32.c:368 eelf32briscv_ilp32f.c:368 eelf32bsmip.c:515
-#: eelf32btsmip.c:501 eelf32btsmip_fbsd.c:501 eelf32btsmipn32.c:501
-#: eelf32btsmipn32_fbsd.c:501 eelf32cr16.c:364 eelf32crx.c:251
-#: eelf32ebmip.c:501 eelf32ebmipvxworks.c:536 eelf32elmip.c:501
-#: eelf32elmipvxworks.c:536 eelf32epiphany.c:229 eelf32epiphany_4x4.c:216
-#: eelf32frvfd.c:285 eelf32ip2k.c:229 eelf32kvx.c:526 eelf32l4300.c:501
-#: eelf32lm32.c:229 eelf32lm32fd.c:285 eelf32lmip.c:501 eelf32loongarch.c:339
-#: eelf32lppc.c:549 eelf32lppclinux.c:549 eelf32lppcnto.c:549
-#: eelf32lppcsim.c:549 eelf32lr5900.c:470 eelf32lr5900n32.c:469
-#: eelf32lriscv.c:368 eelf32lriscv_ilp32.c:368 eelf32lriscv_ilp32f.c:368
-#: eelf32lsmip.c:501 eelf32ltsmip.c:501 eelf32ltsmip_fbsd.c:501
-#: eelf32ltsmipn32.c:501 eelf32ltsmipn32_fbsd.c:501 eelf32m32c.c:240
-#: eelf32mb_linux.c:286 eelf32mbel_linux.c:286 eelf32mcore.c:235
-#: eelf32mep.c:214 eelf32metag.c:535 eelf32microblaze.c:214
-#: eelf32microblazeel.c:214 eelf32mipswindiss.c:444 eelf32moxie.c:229
-#: eelf32or1k.c:230 eelf32or1k_linux.c:286 eelf32ppc.c:549
-#: eelf32ppc_fbsd.c:549 eelf32ppchaiku.c:549 eelf32ppclinux.c:549
-#: eelf32ppcnto.c:549 eelf32ppcsim.c:549 eelf32ppcvxworks.c:523
-#: eelf32ppcwindiss.c:549 eelf32rl78.c:229 eelf32rx.c:257 eelf32rx_linux.c:242
-#: eelf32tilegx.c:286 eelf32tilegx_be.c:286 eelf32tilepro.c:286
-#: eelf32vax.c:260 eelf32visium.c:214 eelf32xstormy16.c:225
-#: eelf32xtensa.c:2197 eelf32z80.c:241 eelf64_aix.c:260 eelf64_ia64.c:317
-#: eelf64_ia64_fbsd.c:317 eelf64_s390.c:356 eelf64_sparc.c:286
-#: eelf64_sparc_fbsd.c:286 eelf64_sparc_sol2.c:418 eelf64alpha.c:379
-#: eelf64alpha_fbsd.c:379 eelf64alpha_nbsd.c:379 eelf64bmip.c:515
-#: eelf64bpf.c:214 eelf64briscv.c:368 eelf64briscv_lp64.c:368
-#: eelf64briscv_lp64f.c:368 eelf64btsmip.c:501 eelf64btsmip_fbsd.c:501
-#: eelf64hppa.c:230 eelf64kvx.c:526 eelf64kvx_linux.c:548
-#: eelf64loongarch.c:339 eelf64lppc.c:998 eelf64lppc_fbsd.c:998
-#: eelf64lriscv.c:368 eelf64lriscv_lp64.c:368 eelf64lriscv_lp64f.c:368
-#: eelf64ltsmip.c:501 eelf64ltsmip_fbsd.c:501 eelf64mmix.c:371 eelf64ppc.c:998
-#: eelf64ppc_fbsd.c:998 eelf64rdos.c:311 eelf64tilegx.c:286
-#: eelf64tilegx_be.c:286 eelf_i386.c:5043 eelf_i386_be.c:284
-#: eelf_i386_fbsd.c:320 eelf_i386_haiku.c:320 eelf_i386_ldso.c:295
-#: eelf_i386_sol2.c:452 eelf_i386_vxworks.c:347 eelf_iamcu.c:320
-#: eelf_mipsel_haiku.c:501 eelf_s390.c:286 eelf_x86_64.c:5421
-#: eelf_x86_64_cloudabi.c:320 eelf_x86_64_fbsd.c:320 eelf_x86_64_haiku.c:320
-#: eelf_x86_64_sol2.c:452 eh8300elf.c:229 eh8300elf_linux.c:229
-#: eh8300helf.c:229 eh8300helf_linux.c:229 eh8300hnelf.c:229 eh8300self.c:229
-#: eh8300self_linux.c:229 eh8300snelf.c:229 eh8300sxelf.c:229
-#: eh8300sxelf_linux.c:229 eh8300sxnelf.c:229 ehppa64linux.c:260
-#: ehppaelf.c:497 ehppalinux.c:569 ehppanbsd.c:569 ehppaobsd.c:569
-#: ei386lynx.c:275 ei386moss.c:275 ei386nto.c:275 em32relf.c:229
-#: em32relf_linux.c:285 em32rlelf.c:229 em32rlelf_linux.c:285
-#: em68hc11elf.c:499 em68hc11elfb.c:499 em68hc12elf.c:499 em68hc12elfb.c:499
-#: em68kelf.c:443 em68kelfnbsd.c:443 emn10300.c:260 ends32belf.c:350
-#: ends32belf16m.c:350 ends32belf_linux.c:373 ends32elf.c:350
-#: ends32elf16m.c:350 ends32elf_linux.c:373 enios2elf.c:516 enios2linux.c:547
-#: epruelf.c:235 escore3_elf.c:280 escore7_elf.c:280 eshelf.c:260
-#: eshelf_fd.c:286 eshelf_linux.c:286 eshelf_nbsd.c:260 eshelf_nto.c:260
-#: eshelf_uclinux.c:260 eshelf_vxworks.c:297 eshlelf.c:260 eshlelf_fd.c:286
-#: eshlelf_linux.c:286 eshlelf_nbsd.c:260 eshlelf_nto.c:260
-#: eshlelf_vxworks.c:297 ev850.c:261 ev850_rh850.c:261
+#: eaarch64cloudabi.c:621 eaarch64cloudabib.c:621 eaarch64elf.c:620
+#: eaarch64elf32.c:620 eaarch64elf32b.c:620 eaarch64elfb.c:620
+#: eaarch64fbsd.c:621 eaarch64fbsdb.c:621 eaarch64haiku.c:621
+#: eaarch64linux.c:621 eaarch64linux32.c:621 eaarch64linux32b.c:621
+#: eaarch64linuxb.c:621 eaarch64nto.c:783 earcelf.c:229 earclinux.c:320
+#: earclinux_nps.c:320 earcv2elf.c:208 earcv2elfx.c:208 earmelf.c:845
+#: earmelf_fbsd.c:845 earmelf_fuchsia.c:846 earmelf_haiku.c:846
+#: earmelf_linux.c:846 earmelf_linux_eabi.c:846 earmelf_linux_fdpiceabi.c:846
+#: earmelf_nacl.c:846 earmelf_nbsd.c:845 earmelf_phoenix.c:846
+#: earmelf_vxworks.c:877 earmelfb.c:845 earmelfb_fbsd.c:845
+#: earmelfb_fuchsia.c:846 earmelfb_linux.c:846 earmelfb_linux_eabi.c:846
+#: earmelfb_linux_fdpiceabi.c:846 earmelfb_nacl.c:846 earmelfb_nbsd.c:845
+#: earmnto.c:805 eavr1.c:424 eavr2.c:424 eavr25.c:424 eavr3.c:424 eavr31.c:424
+#: eavr35.c:424 eavr4.c:424 eavr5.c:424 eavr51.c:424 eavr6.c:424
+#: eavrtiny.c:424 eavrxmega1.c:424 eavrxmega2.c:424 eavrxmega2_flmap.c:424
+#: eavrxmega3.c:424 eavrxmega4.c:424 eavrxmega4_flmap.c:424 eavrxmega5.c:424
+#: eavrxmega6.c:424 eavrxmega7.c:424 ecriself.c:233 ecrislinux.c:280
+#: ecskyelf.c:472 ecskyelf_linux.c:559 ed10velf.c:208 eelf32_sparc.c:320
+#: eelf32_sparc_sol2.c:452 eelf32_sparc_vxworks.c:352 eelf32_spu.c:928
+#: eelf32_tic6x_be.c:411 eelf32_tic6x_elf_be.c:411 eelf32_tic6x_elf_le.c:411
+#: eelf32_tic6x_le.c:411 eelf32_tic6x_linux_be.c:411
+#: eelf32_tic6x_linux_le.c:411 eelf32_x86_64.c:7634 eelf32am33lin.c:279
+#: eelf32b4300.c:524 eelf32bfin.c:293 eelf32bfinfd.c:333 eelf32bmip.c:524
+#: eelf32bmipn32.c:538 eelf32briscv.c:398 eelf32briscv_ilp32.c:398
+#: eelf32briscv_ilp32f.c:398 eelf32bsmip.c:538 eelf32btsmip.c:524
+#: eelf32btsmip_fbsd.c:524 eelf32btsmipn32.c:524 eelf32btsmipn32_fbsd.c:524
+#: eelf32cr16.c:358 eelf32crx.c:245 eelf32ebmip.c:524 eelf32ebmipvxworks.c:555
+#: eelf32elmip.c:524 eelf32elmipvxworks.c:555 eelf32epiphany.c:233
+#: eelf32epiphany_4x4.c:210 eelf32frvfd.c:319 eelf32ip2k.c:233 eelf32kvx.c:545
+#: eelf32l4300.c:524 eelf32lm32.c:233 eelf32lm32fd.c:319 eelf32lmip.c:524
+#: eelf32loongarch.c:391 eelf32lppc.c:561 eelf32lppclinux.c:561
+#: eelf32lppcnto.c:561 eelf32lppcsim.c:561 eelf32lr5900.c:478
+#: eelf32lr5900n32.c:477 eelf32lriscv.c:398 eelf32lriscv_ilp32.c:398
+#: eelf32lriscv_ilp32f.c:398 eelf32lsmip.c:524 eelf32ltsmip.c:524
+#: eelf32ltsmip_fbsd.c:524 eelf32ltsmipn32.c:524 eelf32ltsmipn32_fbsd.c:524
+#: eelf32m32c.c:244 eelf32mb_linux.c:320 eelf32mbel_linux.c:320
+#: eelf32mcore.c:236 eelf32mep.c:208 eelf32metag.c:566 eelf32microblaze.c:208
+#: eelf32microblazeel.c:208 eelf32mipswindiss.c:437 eelf32moxie.c:233
+#: eelf32or1k.c:234 eelf32or1k_linux.c:320 eelf32ppc.c:561
+#: eelf32ppc_fbsd.c:561 eelf32ppchaiku.c:561 eelf32ppclinux.c:561
+#: eelf32ppcnto.c:561 eelf32ppcsim.c:561 eelf32ppcvxworks.c:531
+#: eelf32ppcwindiss.c:561 eelf32rl78.c:233 eelf32rx.c:255 eelf32rx_linux.c:246
+#: eelf32tilegx.c:320 eelf32tilegx_be.c:320 eelf32tilepro.c:320
+#: eelf32vax.c:279 eelf32visium.c:208 eelf32xstormy16.c:219
+#: eelf32xtensa.c:2224 eelf32z80.c:235 eelf64_aix.c:279 eelf64_ia64.c:348
+#: eelf64_ia64_fbsd.c:348 eelf64_s390.c:417 eelf64_sparc.c:320
+#: eelf64_sparc_fbsd.c:320 eelf64_sparc_sol2.c:452 eelf64alpha.c:408
+#: eelf64alpha_fbsd.c:408 eelf64alpha_nbsd.c:408 eelf64bmip.c:538
+#: eelf64bpf.c:208 eelf64briscv.c:398 eelf64briscv_lp64.c:398
+#: eelf64briscv_lp64f.c:398 eelf64btsmip.c:524 eelf64btsmip_fbsd.c:524
+#: eelf64hppa.c:229 eelf64kvx.c:545 eelf64kvx_linux.c:582
+#: eelf64loongarch.c:391 eelf64lppc.c:995 eelf64lppc_fbsd.c:995
+#: eelf64lriscv.c:398 eelf64lriscv_lp64.c:398 eelf64lriscv_lp64f.c:398
+#: eelf64ltsmip.c:524 eelf64ltsmip_fbsd.c:524 eelf64mmix.c:390 eelf64ppc.c:995
+#: eelf64ppc_fbsd.c:995 eelf64rdos.c:341 eelf64tilegx.c:320
+#: eelf64tilegx_be.c:320 eelf_i386.c:7092 eelf_i386_be.c:303
+#: eelf_i386_fbsd.c:350 eelf_i386_haiku.c:350 eelf_i386_ldso.c:310
+#: eelf_i386_sol2.c:482 eelf_i386_vxworks.c:376 eelf_iamcu.c:350
+#: eelf_mipsel_haiku.c:524 eelf_s390.c:320 eelf_x86_64.c:7634
+#: eelf_x86_64_cloudabi.c:358 eelf_x86_64_fbsd.c:358 eelf_x86_64_haiku.c:358
+#: eelf_x86_64_sol2.c:490 eh8300elf.c:233 eh8300elf_linux.c:233
+#: eh8300helf.c:233 eh8300helf_linux.c:233 eh8300hnelf.c:233 eh8300self.c:233
+#: eh8300self_linux.c:233 eh8300snelf.c:233 eh8300sxelf.c:233
+#: eh8300sxelf_linux.c:233 eh8300sxnelf.c:233 ehppa64linux.c:279
+#: ehppaelf.c:487 ehppalinux.c:599 ehppanbsd.c:599 ehppaobsd.c:599
+#: ei386lynx.c:294 ei386moss.c:294 ei386nto.c:294 em32relf.c:233
+#: em32relf_linux.c:319 em32rlelf.c:233 em32rlelf_linux.c:319
+#: em68hc11elf.c:489 em68hc11elfb.c:489 em68hc12elf.c:489 em68hc12elfb.c:489
+#: em68kelf.c:474 em68kelfnbsd.c:474 emn10300.c:279 ends32belf.c:332
+#: ends32belf16m.c:332 ends32belf_linux.c:365 ends32elf.c:332
+#: ends32elf16m.c:332 ends32elf_linux.c:365 enios2elf.c:535 enios2linux.c:581
+#: epruelf.c:229 escore3_elf.c:298 escore7_elf.c:298 eshelf.c:279
+#: eshelf_fd.c:320 eshelf_linux.c:320 eshelf_nbsd.c:279 eshelf_nto.c:279
+#: eshelf_uclinux.c:279 eshelf_vxworks.c:311 eshlelf.c:279 eshlelf_fd.c:320
+#: eshlelf_linux.c:320 eshlelf_nbsd.c:279 eshlelf_nto.c:279
+#: eshlelf_vxworks.c:311 ev850.c:255 ev850_rh850.c:255
msgid "%F%P: invalid --compress-debug-sections option: `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:648 eaarch64cloudabib.c:648 eaarch64elf.c:647
-#: eaarch64elf32.c:647 eaarch64elf32b.c:647 eaarch64elfb.c:647
-#: eaarch64fbsd.c:648 eaarch64fbsdb.c:648 eaarch64haiku.c:648
-#: eaarch64linux.c:648 eaarch64linux32.c:648 eaarch64linux32b.c:648
-#: eaarch64linuxb.c:648 eaarch64nto.c:816 earcelf.c:281 earclinux.c:337
-#: earclinux_nps.c:337 earmelf.c:887 earmelf_fbsd.c:887 earmelf_fuchsia.c:888
-#: earmelf_haiku.c:888 earmelf_linux.c:888 earmelf_linux_eabi.c:888
-#: earmelf_linux_fdpiceabi.c:888 earmelf_nacl.c:888 earmelf_nbsd.c:887
-#: earmelf_phoenix.c:888 earmelf_vxworks.c:923 earmelfb.c:887
-#: earmelfb_fbsd.c:887 earmelfb_fuchsia.c:888 earmelfb_linux.c:888
-#: earmelfb_linux_eabi.c:888 earmelfb_linux_fdpiceabi.c:888
-#: earmelfb_nacl.c:888 earmelfb_nbsd.c:887 earmnto.c:862 ecrislinux.c:312
-#: ecskyelf_linux.c:581 eelf32_sparc.c:337 eelf32_sparc_sol2.c:469
-#: eelf32_sparc_vxworks.c:374 eelf32_tic6x_be.c:448 eelf32_tic6x_elf_be.c:448
-#: eelf32_tic6x_elf_le.c:448 eelf32_tic6x_le.c:448 eelf32_tic6x_linux_be.c:448
-#: eelf32_tic6x_linux_le.c:448 eelf32_x86_64.c:5472 eelf32am33lin.c:311
-#: eelf32b4300.c:552 eelf32bfin.c:329 eelf32bfinfd.c:354 eelf32bmip.c:552
-#: eelf32bmipn32.c:566 eelf32briscv.c:419 eelf32briscv_ilp32.c:419
-#: eelf32briscv_ilp32f.c:419 eelf32bsmip.c:566 eelf32btsmip.c:552
-#: eelf32btsmip_fbsd.c:552 eelf32btsmipn32.c:552 eelf32btsmipn32_fbsd.c:552
-#: eelf32ebmip.c:552 eelf32ebmipvxworks.c:587 eelf32elmip.c:552
-#: eelf32elmipvxworks.c:587 eelf32frvfd.c:336 eelf32kvx.c:577
-#: eelf32l4300.c:552 eelf32lm32fd.c:336 eelf32lmip.c:552 eelf32loongarch.c:390
-#: eelf32lppc.c:600 eelf32lppclinux.c:600 eelf32lppcnto.c:600
-#: eelf32lppcsim.c:600 eelf32lriscv.c:419 eelf32lriscv_ilp32.c:419
-#: eelf32lriscv_ilp32f.c:419 eelf32lsmip.c:552 eelf32ltsmip.c:552
-#: eelf32ltsmip_fbsd.c:552 eelf32ltsmipn32.c:552 eelf32ltsmipn32_fbsd.c:552
-#: eelf32mb_linux.c:337 eelf32mbel_linux.c:337 eelf32metag.c:586
-#: eelf32or1k_linux.c:337 eelf32ppc.c:600 eelf32ppc_fbsd.c:600
-#: eelf32ppchaiku.c:600 eelf32ppclinux.c:600 eelf32ppcnto.c:600
-#: eelf32ppcsim.c:600 eelf32ppcvxworks.c:574 eelf32ppcwindiss.c:600
-#: eelf32tilegx.c:337 eelf32tilegx_be.c:337 eelf32tilepro.c:337
-#: eelf32vax.c:311 eelf32xtensa.c:2248 eelf64_aix.c:311 eelf64_ia64.c:368
-#: eelf64_ia64_fbsd.c:368 eelf64_s390.c:407 eelf64_sparc.c:337
-#: eelf64_sparc_fbsd.c:337 eelf64_sparc_sol2.c:469 eelf64alpha.c:430
-#: eelf64alpha_fbsd.c:430 eelf64alpha_nbsd.c:430 eelf64bmip.c:566
-#: eelf64briscv.c:419 eelf64briscv_lp64.c:419 eelf64briscv_lp64f.c:419
-#: eelf64btsmip.c:552 eelf64btsmip_fbsd.c:552 eelf64hppa.c:281 eelf64kvx.c:577
-#: eelf64kvx_linux.c:599 eelf64loongarch.c:390 eelf64lppc.c:1049
-#: eelf64lppc_fbsd.c:1049 eelf64lriscv.c:419 eelf64lriscv_lp64.c:419
-#: eelf64lriscv_lp64f.c:419 eelf64ltsmip.c:552 eelf64ltsmip_fbsd.c:552
-#: eelf64mmix.c:422 eelf64ppc.c:1049 eelf64ppc_fbsd.c:1049 eelf64rdos.c:362
-#: eelf64tilegx.c:337 eelf64tilegx_be.c:337 eelf_i386.c:5094
-#: eelf_i386_be.c:335 eelf_i386_fbsd.c:371 eelf_i386_haiku.c:371
-#: eelf_i386_ldso.c:346 eelf_i386_sol2.c:503 eelf_i386_vxworks.c:398
-#: eelf_iamcu.c:371 eelf_mipsel_haiku.c:552 eelf_s390.c:337 eelf_x86_64.c:5472
-#: eelf_x86_64_cloudabi.c:371 eelf_x86_64_fbsd.c:371 eelf_x86_64_haiku.c:371
-#: eelf_x86_64_sol2.c:503 ehppa64linux.c:311 ehppalinux.c:620 ehppanbsd.c:620
-#: ehppaobsd.c:620 ei386lynx.c:326 ei386moss.c:326 ei386nto.c:326
-#: em32relf_linux.c:336 em32rlelf_linux.c:336 em68kelf.c:494
-#: em68kelfnbsd.c:494 emn10300.c:311 ends32belf_linux.c:424
-#: ends32elf_linux.c:424 enios2linux.c:598 escore3_elf.c:331 escore7_elf.c:331
-#: eshelf.c:311 eshelf_fd.c:337 eshelf_linux.c:337 eshelf_nbsd.c:311
-#: eshelf_nto.c:311 eshelf_uclinux.c:311 eshelf_vxworks.c:348 eshlelf.c:311
-#: eshlelf_fd.c:337 eshlelf_linux.c:337 eshlelf_nbsd.c:311 eshlelf_nto.c:311
-#: eshlelf_vxworks.c:348
+#: eaarch64cloudabi.c:679 eaarch64cloudabib.c:679 eaarch64elf.c:678
+#: eaarch64elf32.c:678 eaarch64elf32b.c:678 eaarch64elfb.c:678
+#: eaarch64fbsd.c:679 eaarch64fbsdb.c:679 eaarch64haiku.c:679
+#: eaarch64linux.c:679 eaarch64linux32.c:679 eaarch64linux32b.c:679
+#: eaarch64linuxb.c:679 eaarch64nto.c:841 earcelf.c:287 earclinux.c:378
+#: earclinux_nps.c:378 earmelf.c:903 earmelf_fbsd.c:903 earmelf_fuchsia.c:904
+#: earmelf_haiku.c:904 earmelf_linux.c:904 earmelf_linux_eabi.c:904
+#: earmelf_linux_fdpiceabi.c:904 earmelf_nacl.c:904 earmelf_nbsd.c:903
+#: earmelf_phoenix.c:904 earmelf_vxworks.c:935 earmelfb.c:903
+#: earmelfb_fbsd.c:903 earmelfb_fuchsia.c:904 earmelfb_linux.c:904
+#: earmelfb_linux_eabi.c:904 earmelfb_linux_fdpiceabi.c:904
+#: earmelfb_nacl.c:904 earmelfb_nbsd.c:903 earmnto.c:863 ecrislinux.c:338
+#: ecskyelf_linux.c:617 eelf32_sparc.c:378 eelf32_sparc_sol2.c:510
+#: eelf32_sparc_vxworks.c:410 eelf32_tic6x_be.c:469 eelf32_tic6x_elf_be.c:469
+#: eelf32_tic6x_elf_le.c:469 eelf32_tic6x_le.c:469 eelf32_tic6x_linux_be.c:469
+#: eelf32_tic6x_linux_le.c:469 eelf32_x86_64.c:7692 eelf32am33lin.c:337
+#: eelf32b4300.c:582 eelf32bfin.c:351 eelf32bfinfd.c:391 eelf32bmip.c:582
+#: eelf32bmipn32.c:596 eelf32briscv.c:456 eelf32briscv_ilp32.c:456
+#: eelf32briscv_ilp32f.c:456 eelf32bsmip.c:596 eelf32btsmip.c:582
+#: eelf32btsmip_fbsd.c:582 eelf32btsmipn32.c:582 eelf32btsmipn32_fbsd.c:582
+#: eelf32ebmip.c:582 eelf32ebmipvxworks.c:613 eelf32elmip.c:582
+#: eelf32elmipvxworks.c:613 eelf32frvfd.c:377 eelf32kvx.c:603
+#: eelf32l4300.c:582 eelf32lm32fd.c:377 eelf32lmip.c:582 eelf32loongarch.c:449
+#: eelf32lppc.c:619 eelf32lppclinux.c:619 eelf32lppcnto.c:619
+#: eelf32lppcsim.c:619 eelf32lriscv.c:456 eelf32lriscv_ilp32.c:456
+#: eelf32lriscv_ilp32f.c:456 eelf32lsmip.c:582 eelf32ltsmip.c:582
+#: eelf32ltsmip_fbsd.c:582 eelf32ltsmipn32.c:582 eelf32ltsmipn32_fbsd.c:582
+#: eelf32mb_linux.c:378 eelf32mbel_linux.c:378 eelf32metag.c:624
+#: eelf32or1k_linux.c:378 eelf32ppc.c:619 eelf32ppc_fbsd.c:619
+#: eelf32ppchaiku.c:619 eelf32ppclinux.c:619 eelf32ppcnto.c:619
+#: eelf32ppcsim.c:619 eelf32ppcvxworks.c:589 eelf32ppcwindiss.c:619
+#: eelf32tilegx.c:378 eelf32tilegx_be.c:378 eelf32tilepro.c:378
+#: eelf32vax.c:337 eelf32xtensa.c:2282 eelf64_aix.c:337 eelf64_ia64.c:406
+#: eelf64_ia64_fbsd.c:406 eelf64_s390.c:475 eelf64_sparc.c:378
+#: eelf64_sparc_fbsd.c:378 eelf64_sparc_sol2.c:510 eelf64alpha.c:466
+#: eelf64alpha_fbsd.c:466 eelf64alpha_nbsd.c:466 eelf64bmip.c:596
+#: eelf64briscv.c:456 eelf64briscv_lp64.c:456 eelf64briscv_lp64f.c:456
+#: eelf64btsmip.c:582 eelf64btsmip_fbsd.c:582 eelf64hppa.c:287 eelf64kvx.c:603
+#: eelf64kvx_linux.c:640 eelf64loongarch.c:449 eelf64lppc.c:1053
+#: eelf64lppc_fbsd.c:1053 eelf64lriscv.c:456 eelf64lriscv_lp64.c:456
+#: eelf64lriscv_lp64f.c:456 eelf64ltsmip.c:582 eelf64ltsmip_fbsd.c:582
+#: eelf64mmix.c:448 eelf64ppc.c:1053 eelf64ppc_fbsd.c:1053 eelf64rdos.c:399
+#: eelf64tilegx.c:378 eelf64tilegx_be.c:378 eelf_i386.c:7150
+#: eelf_i386_be.c:361 eelf_i386_fbsd.c:408 eelf_i386_haiku.c:408
+#: eelf_i386_ldso.c:368 eelf_i386_sol2.c:540 eelf_i386_vxworks.c:434
+#: eelf_iamcu.c:408 eelf_mipsel_haiku.c:582 eelf_s390.c:378 eelf_x86_64.c:7692
+#: eelf_x86_64_cloudabi.c:416 eelf_x86_64_fbsd.c:416 eelf_x86_64_haiku.c:416
+#: eelf_x86_64_sol2.c:548 ehppa64linux.c:337 ehppalinux.c:657 ehppanbsd.c:657
+#: ehppaobsd.c:657 ei386lynx.c:352 ei386moss.c:352 ei386nto.c:352
+#: em32relf_linux.c:377 em32rlelf_linux.c:377 em68kelf.c:532
+#: em68kelfnbsd.c:532 emn10300.c:337 ends32belf_linux.c:423
+#: ends32elf_linux.c:423 enios2linux.c:639 escore3_elf.c:356 escore7_elf.c:356
+#: eshelf.c:337 eshelf_fd.c:378 eshelf_linux.c:378 eshelf_nbsd.c:337
+#: eshelf_nto.c:337 eshelf_uclinux.c:337 eshelf_vxworks.c:369 eshlelf.c:337
+#: eshlelf_fd.c:378 eshlelf_linux.c:378 eshlelf_nbsd.c:337 eshlelf_nto.c:337
+#: eshlelf_vxworks.c:369
msgid "%F%P: invalid hash style `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:665 eaarch64cloudabib.c:665 eaarch64elf.c:664
-#: eaarch64elf32.c:664 eaarch64elf32b.c:664 eaarch64elfb.c:664
-#: eaarch64fbsd.c:665 eaarch64fbsdb.c:665 eaarch64haiku.c:665
-#: eaarch64linux.c:665 eaarch64linux32.c:665 eaarch64linux32b.c:665
-#: eaarch64linuxb.c:665 eaarch64nto.c:833 earcelf.c:298 earclinux.c:354
-#: earclinux_nps.c:354 earcv2elf.c:231 earcv2elfx.c:231 earmelf.c:904
-#: earmelf_fbsd.c:904 earmelf_fuchsia.c:905 earmelf_haiku.c:905
-#: earmelf_linux.c:905 earmelf_linux_eabi.c:905 earmelf_linux_fdpiceabi.c:905
-#: earmelf_nacl.c:905 earmelf_nbsd.c:904 earmelf_phoenix.c:905
-#: earmelf_vxworks.c:940 earmelfb.c:904 earmelfb_fbsd.c:904
-#: earmelfb_fuchsia.c:905 earmelfb_linux.c:905 earmelfb_linux_eabi.c:905
-#: earmelfb_linux_fdpiceabi.c:905 earmelfb_nacl.c:905 earmelfb_nbsd.c:904
-#: earmnto.c:879 eavr1.c:455 eavr2.c:455 eavr25.c:455 eavr3.c:455 eavr31.c:455
-#: eavr35.c:455 eavr4.c:455 eavr5.c:455 eavr51.c:455 eavr6.c:455
-#: eavrtiny.c:455 eavrxmega1.c:455 eavrxmega2.c:455 eavrxmega3.c:455
-#: eavrxmega4.c:455 eavrxmega5.c:455 eavrxmega6.c:455 eavrxmega7.c:455
-#: ecriself.c:246 ecrislinux.c:329 ecskyelf.c:490 ecskyelf_linux.c:598
-#: ed10velf.c:231 eelf32_sparc.c:354 eelf32_sparc_sol2.c:486
-#: eelf32_sparc_vxworks.c:391 eelf32_spu.c:964 eelf32_tic6x_be.c:465
-#: eelf32_tic6x_elf_be.c:465 eelf32_tic6x_elf_le.c:465 eelf32_tic6x_le.c:465
-#: eelf32_tic6x_linux_be.c:465 eelf32_tic6x_linux_le.c:465
-#: eelf32_x86_64.c:5489 eelf32am33lin.c:328 eelf32b4300.c:569 eelf32bfin.c:346
-#: eelf32bfinfd.c:371 eelf32bmip.c:569 eelf32bmipn32.c:583 eelf32briscv.c:436
-#: eelf32briscv_ilp32.c:436 eelf32briscv_ilp32f.c:436 eelf32bsmip.c:583
-#: eelf32btsmip.c:569 eelf32btsmip_fbsd.c:569 eelf32btsmipn32.c:569
-#: eelf32btsmipn32_fbsd.c:569 eelf32cr16.c:381 eelf32crx.c:268
-#: eelf32ebmip.c:569 eelf32ebmipvxworks.c:604 eelf32elmip.c:569
-#: eelf32elmipvxworks.c:604 eelf32epiphany.c:246 eelf32epiphany_4x4.c:233
-#: eelf32frvfd.c:353 eelf32ip2k.c:246 eelf32kvx.c:594 eelf32l4300.c:569
-#: eelf32lm32.c:246 eelf32lm32fd.c:353 eelf32lmip.c:569 eelf32loongarch.c:407
-#: eelf32lppc.c:617 eelf32lppclinux.c:617 eelf32lppcnto.c:617
-#: eelf32lppcsim.c:617 eelf32lr5900.c:487 eelf32lr5900n32.c:486
-#: eelf32lriscv.c:436 eelf32lriscv_ilp32.c:436 eelf32lriscv_ilp32f.c:436
-#: eelf32lsmip.c:569 eelf32ltsmip.c:569 eelf32ltsmip_fbsd.c:569
-#: eelf32ltsmipn32.c:569 eelf32ltsmipn32_fbsd.c:569 eelf32m32c.c:257
-#: eelf32mb_linux.c:354 eelf32mbel_linux.c:354 eelf32mcore.c:252
-#: eelf32mep.c:231 eelf32metag.c:603 eelf32microblaze.c:231
-#: eelf32microblazeel.c:231 eelf32mipswindiss.c:461 eelf32moxie.c:246
-#: eelf32or1k.c:247 eelf32or1k_linux.c:354 eelf32ppc.c:617
-#: eelf32ppc_fbsd.c:617 eelf32ppchaiku.c:617 eelf32ppclinux.c:617
-#: eelf32ppcnto.c:617 eelf32ppcsim.c:617 eelf32ppcvxworks.c:591
-#: eelf32ppcwindiss.c:617 eelf32rl78.c:246 eelf32rx.c:274 eelf32rx_linux.c:259
-#: eelf32tilegx.c:354 eelf32tilegx_be.c:354 eelf32tilepro.c:354
-#: eelf32vax.c:328 eelf32visium.c:231 eelf32xstormy16.c:242
-#: eelf32xtensa.c:2265 eelf32z80.c:258 eelf64_aix.c:328 eelf64_ia64.c:385
-#: eelf64_ia64_fbsd.c:385 eelf64_s390.c:424 eelf64_sparc.c:354
-#: eelf64_sparc_fbsd.c:354 eelf64_sparc_sol2.c:486 eelf64alpha.c:447
-#: eelf64alpha_fbsd.c:447 eelf64alpha_nbsd.c:447 eelf64bmip.c:583
-#: eelf64bpf.c:231 eelf64briscv.c:436 eelf64briscv_lp64.c:436
-#: eelf64briscv_lp64f.c:436 eelf64btsmip.c:569 eelf64btsmip_fbsd.c:569
-#: eelf64hppa.c:298 eelf64kvx.c:594 eelf64kvx_linux.c:616
-#: eelf64loongarch.c:407 eelf64lppc.c:1066 eelf64lppc_fbsd.c:1066
-#: eelf64lriscv.c:436 eelf64lriscv_lp64.c:436 eelf64lriscv_lp64f.c:436
-#: eelf64ltsmip.c:569 eelf64ltsmip_fbsd.c:569 eelf64mmix.c:439
-#: eelf64ppc.c:1066 eelf64ppc_fbsd.c:1066 eelf64rdos.c:379 eelf64tilegx.c:354
-#: eelf64tilegx_be.c:354 eelf_i386.c:5111 eelf_i386_be.c:352
-#: eelf_i386_fbsd.c:388 eelf_i386_haiku.c:388 eelf_i386_ldso.c:363
-#: eelf_i386_sol2.c:520 eelf_i386_vxworks.c:415 eelf_iamcu.c:388
-#: eelf_mipsel_haiku.c:569 eelf_s390.c:354 eelf_x86_64.c:5489
-#: eelf_x86_64_cloudabi.c:388 eelf_x86_64_fbsd.c:388 eelf_x86_64_haiku.c:388
-#: eelf_x86_64_sol2.c:520 eh8300elf.c:246 eh8300elf_linux.c:246
-#: eh8300helf.c:246 eh8300helf_linux.c:246 eh8300hnelf.c:246 eh8300self.c:246
-#: eh8300self_linux.c:246 eh8300snelf.c:246 eh8300sxelf.c:246
-#: eh8300sxelf_linux.c:246 eh8300sxnelf.c:246 ehppa64linux.c:328
-#: ehppaelf.c:514 ehppalinux.c:637 ehppanbsd.c:637 ehppaobsd.c:637
-#: ei386lynx.c:343 ei386moss.c:343 ei386nto.c:343 em32relf.c:246
-#: em32relf_linux.c:353 em32rlelf.c:246 em32rlelf_linux.c:353
-#: em68hc11elf.c:516 em68hc11elfb.c:516 em68hc12elf.c:516 em68hc12elfb.c:516
-#: em68kelf.c:511 em68kelfnbsd.c:511 emn10300.c:328 ends32belf.c:367
-#: ends32belf16m.c:367 ends32belf_linux.c:441 ends32elf.c:367
-#: ends32elf16m.c:367 ends32elf_linux.c:441 enios2elf.c:533 enios2linux.c:615
-#: epruelf.c:252 escore3_elf.c:348 escore7_elf.c:348 eshelf.c:328
-#: eshelf_fd.c:354 eshelf_linux.c:354 eshelf_nbsd.c:328 eshelf_nto.c:328
-#: eshelf_uclinux.c:328 eshelf_vxworks.c:365 eshlelf.c:328 eshlelf_fd.c:354
-#: eshlelf_linux.c:354 eshlelf_nbsd.c:328 eshlelf_nto.c:328
-#: eshlelf_vxworks.c:365 ev850.c:278 ev850_rh850.c:278
+#: eaarch64cloudabi.c:696 eaarch64cloudabib.c:696 eaarch64elf.c:695
+#: eaarch64elf32.c:695 eaarch64elf32b.c:695 eaarch64elfb.c:695
+#: eaarch64fbsd.c:696 eaarch64fbsdb.c:696 eaarch64haiku.c:696
+#: eaarch64linux.c:696 eaarch64linux32.c:696 eaarch64linux32b.c:696
+#: eaarch64linuxb.c:696 eaarch64nto.c:858 earcelf.c:304 earclinux.c:395
+#: earclinux_nps.c:395 earcv2elf.c:232 earcv2elfx.c:232 earmelf.c:920
+#: earmelf_fbsd.c:920 earmelf_fuchsia.c:921 earmelf_haiku.c:921
+#: earmelf_linux.c:921 earmelf_linux_eabi.c:921 earmelf_linux_fdpiceabi.c:921
+#: earmelf_nacl.c:921 earmelf_nbsd.c:920 earmelf_phoenix.c:921
+#: earmelf_vxworks.c:952 earmelfb.c:920 earmelfb_fbsd.c:920
+#: earmelfb_fuchsia.c:921 earmelfb_linux.c:921 earmelfb_linux_eabi.c:921
+#: earmelfb_linux_fdpiceabi.c:921 earmelfb_nacl.c:921 earmelfb_nbsd.c:920
+#: earmnto.c:880 eavr1.c:448 eavr2.c:448 eavr25.c:448 eavr3.c:448 eavr31.c:448
+#: eavr35.c:448 eavr4.c:448 eavr5.c:448 eavr51.c:448 eavr6.c:448
+#: eavrtiny.c:448 eavrxmega1.c:448 eavrxmega2.c:448 eavrxmega2_flmap.c:448
+#: eavrxmega3.c:448 eavrxmega4.c:448 eavrxmega4_flmap.c:448 eavrxmega5.c:448
+#: eavrxmega6.c:448 eavrxmega7.c:448 ecriself.c:257 ecrislinux.c:355
+#: ecskyelf.c:496 ecskyelf_linux.c:634 ed10velf.c:232 eelf32_sparc.c:395
+#: eelf32_sparc_sol2.c:527 eelf32_sparc_vxworks.c:427 eelf32_spu.c:952
+#: eelf32_tic6x_be.c:486 eelf32_tic6x_elf_be.c:486 eelf32_tic6x_elf_le.c:486
+#: eelf32_tic6x_le.c:486 eelf32_tic6x_linux_be.c:486
+#: eelf32_tic6x_linux_le.c:486 eelf32_x86_64.c:7709 eelf32am33lin.c:354
+#: eelf32b4300.c:599 eelf32bfin.c:368 eelf32bfinfd.c:408 eelf32bmip.c:599
+#: eelf32bmipn32.c:613 eelf32briscv.c:473 eelf32briscv_ilp32.c:473
+#: eelf32briscv_ilp32f.c:473 eelf32bsmip.c:613 eelf32btsmip.c:599
+#: eelf32btsmip_fbsd.c:599 eelf32btsmipn32.c:599 eelf32btsmipn32_fbsd.c:599
+#: eelf32cr16.c:382 eelf32crx.c:269 eelf32ebmip.c:599 eelf32ebmipvxworks.c:630
+#: eelf32elmip.c:599 eelf32elmipvxworks.c:630 eelf32epiphany.c:257
+#: eelf32epiphany_4x4.c:234 eelf32frvfd.c:394 eelf32ip2k.c:257 eelf32kvx.c:620
+#: eelf32l4300.c:599 eelf32lm32.c:257 eelf32lm32fd.c:394 eelf32lmip.c:599
+#: eelf32loongarch.c:466 eelf32lppc.c:636 eelf32lppclinux.c:636
+#: eelf32lppcnto.c:636 eelf32lppcsim.c:636 eelf32lr5900.c:502
+#: eelf32lr5900n32.c:501 eelf32lriscv.c:473 eelf32lriscv_ilp32.c:473
+#: eelf32lriscv_ilp32f.c:473 eelf32lsmip.c:599 eelf32ltsmip.c:599
+#: eelf32ltsmip_fbsd.c:599 eelf32ltsmipn32.c:599 eelf32ltsmipn32_fbsd.c:599
+#: eelf32m32c.c:268 eelf32mb_linux.c:395 eelf32mbel_linux.c:395
+#: eelf32mcore.c:260 eelf32mep.c:232 eelf32metag.c:641 eelf32microblaze.c:232
+#: eelf32microblazeel.c:232 eelf32mipswindiss.c:461 eelf32moxie.c:257
+#: eelf32or1k.c:258 eelf32or1k_linux.c:395 eelf32ppc.c:636
+#: eelf32ppc_fbsd.c:636 eelf32ppchaiku.c:636 eelf32ppclinux.c:636
+#: eelf32ppcnto.c:636 eelf32ppcsim.c:636 eelf32ppcvxworks.c:606
+#: eelf32ppcwindiss.c:636 eelf32rl78.c:257 eelf32rx.c:279 eelf32rx_linux.c:270
+#: eelf32tilegx.c:395 eelf32tilegx_be.c:395 eelf32tilepro.c:395
+#: eelf32vax.c:354 eelf32visium.c:232 eelf32xstormy16.c:243
+#: eelf32xtensa.c:2299 eelf32z80.c:259 eelf64_aix.c:354 eelf64_ia64.c:423
+#: eelf64_ia64_fbsd.c:423 eelf64_s390.c:492 eelf64_sparc.c:395
+#: eelf64_sparc_fbsd.c:395 eelf64_sparc_sol2.c:527 eelf64alpha.c:483
+#: eelf64alpha_fbsd.c:483 eelf64alpha_nbsd.c:483 eelf64bmip.c:613
+#: eelf64bpf.c:232 eelf64briscv.c:473 eelf64briscv_lp64.c:473
+#: eelf64briscv_lp64f.c:473 eelf64btsmip.c:599 eelf64btsmip_fbsd.c:599
+#: eelf64hppa.c:304 eelf64kvx.c:620 eelf64kvx_linux.c:657
+#: eelf64loongarch.c:466 eelf64lppc.c:1070 eelf64lppc_fbsd.c:1070
+#: eelf64lriscv.c:473 eelf64lriscv_lp64.c:473 eelf64lriscv_lp64f.c:473
+#: eelf64ltsmip.c:599 eelf64ltsmip_fbsd.c:599 eelf64mmix.c:465
+#: eelf64ppc.c:1070 eelf64ppc_fbsd.c:1070 eelf64rdos.c:416 eelf64tilegx.c:395
+#: eelf64tilegx_be.c:395 eelf_i386.c:7167 eelf_i386_be.c:378
+#: eelf_i386_fbsd.c:425 eelf_i386_haiku.c:425 eelf_i386_ldso.c:385
+#: eelf_i386_sol2.c:557 eelf_i386_vxworks.c:451 eelf_iamcu.c:425
+#: eelf_mipsel_haiku.c:599 eelf_s390.c:395 eelf_x86_64.c:7709
+#: eelf_x86_64_cloudabi.c:433 eelf_x86_64_fbsd.c:433 eelf_x86_64_haiku.c:433
+#: eelf_x86_64_sol2.c:565 eh8300elf.c:257 eh8300elf_linux.c:257
+#: eh8300helf.c:257 eh8300helf_linux.c:257 eh8300hnelf.c:257 eh8300self.c:257
+#: eh8300self_linux.c:257 eh8300snelf.c:257 eh8300sxelf.c:257
+#: eh8300sxelf_linux.c:257 eh8300sxnelf.c:257 ehppa64linux.c:354
+#: ehppaelf.c:511 ehppalinux.c:674 ehppanbsd.c:674 ehppaobsd.c:674
+#: ei386lynx.c:369 ei386moss.c:369 ei386nto.c:369 em32relf.c:257
+#: em32relf_linux.c:394 em32rlelf.c:257 em32rlelf_linux.c:394
+#: em68hc11elf.c:513 em68hc11elfb.c:513 em68hc12elf.c:513 em68hc12elfb.c:513
+#: em68kelf.c:549 em68kelfnbsd.c:549 emn10300.c:354 ends32belf.c:356
+#: ends32belf16m.c:356 ends32belf_linux.c:440 ends32elf.c:356
+#: ends32elf16m.c:356 ends32elf_linux.c:440 enios2elf.c:559 enios2linux.c:656
+#: epruelf.c:253 escore3_elf.c:373 escore7_elf.c:373 eshelf.c:354
+#: eshelf_fd.c:395 eshelf_linux.c:395 eshelf_nbsd.c:354 eshelf_nto.c:354
+#: eshelf_uclinux.c:354 eshelf_vxworks.c:386 eshlelf.c:354 eshlelf_fd.c:395
+#: eshlelf_linux.c:395 eshlelf_nbsd.c:354 eshlelf_nto.c:354
+#: eshlelf_vxworks.c:386 ev850.c:279 ev850_rh850.c:279
msgid "%F%P: invalid maximum page size `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:675 eaarch64cloudabib.c:675 eaarch64elf.c:674
-#: eaarch64elf32.c:674 eaarch64elf32b.c:674 eaarch64elfb.c:674
-#: eaarch64fbsd.c:675 eaarch64fbsdb.c:675 eaarch64haiku.c:675
-#: eaarch64linux.c:675 eaarch64linux32.c:675 eaarch64linux32b.c:675
-#: eaarch64linuxb.c:675 eaarch64nto.c:843 earcelf.c:308 earclinux.c:364
-#: earclinux_nps.c:364 earcv2elf.c:241 earcv2elfx.c:241 earmelf.c:914
-#: earmelf_fbsd.c:914 earmelf_fuchsia.c:915 earmelf_haiku.c:915
-#: earmelf_linux.c:915 earmelf_linux_eabi.c:915 earmelf_linux_fdpiceabi.c:915
-#: earmelf_nacl.c:915 earmelf_nbsd.c:914 earmelf_phoenix.c:915
-#: earmelf_vxworks.c:950 earmelfb.c:914 earmelfb_fbsd.c:914
-#: earmelfb_fuchsia.c:915 earmelfb_linux.c:915 earmelfb_linux_eabi.c:915
-#: earmelfb_linux_fdpiceabi.c:915 earmelfb_nacl.c:915 earmelfb_nbsd.c:914
-#: earmnto.c:889 eavr1.c:465 eavr2.c:465 eavr25.c:465 eavr3.c:465 eavr31.c:465
-#: eavr35.c:465 eavr4.c:465 eavr5.c:465 eavr51.c:465 eavr6.c:465
-#: eavrtiny.c:465 eavrxmega1.c:465 eavrxmega2.c:465 eavrxmega3.c:465
-#: eavrxmega4.c:465 eavrxmega5.c:465 eavrxmega6.c:465 eavrxmega7.c:465
-#: ecriself.c:256 ecrislinux.c:339 ecskyelf.c:500 ecskyelf_linux.c:608
-#: ed10velf.c:241 eelf32_sparc.c:364 eelf32_sparc_sol2.c:496
-#: eelf32_sparc_vxworks.c:401 eelf32_spu.c:974 eelf32_tic6x_be.c:475
-#: eelf32_tic6x_elf_be.c:475 eelf32_tic6x_elf_le.c:475 eelf32_tic6x_le.c:475
-#: eelf32_tic6x_linux_be.c:475 eelf32_tic6x_linux_le.c:475
-#: eelf32_x86_64.c:5499 eelf32am33lin.c:338 eelf32b4300.c:579 eelf32bfin.c:356
-#: eelf32bfinfd.c:381 eelf32bmip.c:579 eelf32bmipn32.c:593 eelf32briscv.c:446
-#: eelf32briscv_ilp32.c:446 eelf32briscv_ilp32f.c:446 eelf32bsmip.c:593
-#: eelf32btsmip.c:579 eelf32btsmip_fbsd.c:579 eelf32btsmipn32.c:579
-#: eelf32btsmipn32_fbsd.c:579 eelf32cr16.c:391 eelf32crx.c:278
-#: eelf32ebmip.c:579 eelf32ebmipvxworks.c:614 eelf32elmip.c:579
-#: eelf32elmipvxworks.c:614 eelf32epiphany.c:256 eelf32epiphany_4x4.c:243
-#: eelf32frvfd.c:363 eelf32ip2k.c:256 eelf32kvx.c:604 eelf32l4300.c:579
-#: eelf32lm32.c:256 eelf32lm32fd.c:363 eelf32lmip.c:579 eelf32loongarch.c:417
-#: eelf32lppc.c:627 eelf32lppclinux.c:627 eelf32lppcnto.c:627
-#: eelf32lppcsim.c:627 eelf32lr5900.c:497 eelf32lr5900n32.c:496
-#: eelf32lriscv.c:446 eelf32lriscv_ilp32.c:446 eelf32lriscv_ilp32f.c:446
-#: eelf32lsmip.c:579 eelf32ltsmip.c:579 eelf32ltsmip_fbsd.c:579
-#: eelf32ltsmipn32.c:579 eelf32ltsmipn32_fbsd.c:579 eelf32m32c.c:267
-#: eelf32mb_linux.c:364 eelf32mbel_linux.c:364 eelf32mcore.c:262
-#: eelf32mep.c:241 eelf32metag.c:613 eelf32microblaze.c:241
-#: eelf32microblazeel.c:241 eelf32mipswindiss.c:471 eelf32moxie.c:256
-#: eelf32or1k.c:257 eelf32or1k_linux.c:364 eelf32ppc.c:627
-#: eelf32ppc_fbsd.c:627 eelf32ppchaiku.c:627 eelf32ppclinux.c:627
-#: eelf32ppcnto.c:627 eelf32ppcsim.c:627 eelf32ppcvxworks.c:601
-#: eelf32ppcwindiss.c:627 eelf32rl78.c:256 eelf32rx.c:284 eelf32rx_linux.c:269
-#: eelf32tilegx.c:364 eelf32tilegx_be.c:364 eelf32tilepro.c:364
-#: eelf32vax.c:338 eelf32visium.c:241 eelf32xstormy16.c:252
-#: eelf32xtensa.c:2275 eelf32z80.c:268 eelf64_aix.c:338 eelf64_ia64.c:395
-#: eelf64_ia64_fbsd.c:395 eelf64_s390.c:434 eelf64_sparc.c:364
-#: eelf64_sparc_fbsd.c:364 eelf64_sparc_sol2.c:496 eelf64alpha.c:457
-#: eelf64alpha_fbsd.c:457 eelf64alpha_nbsd.c:457 eelf64bmip.c:593
-#: eelf64bpf.c:241 eelf64briscv.c:446 eelf64briscv_lp64.c:446
-#: eelf64briscv_lp64f.c:446 eelf64btsmip.c:579 eelf64btsmip_fbsd.c:579
-#: eelf64hppa.c:308 eelf64kvx.c:604 eelf64kvx_linux.c:626
-#: eelf64loongarch.c:417 eelf64lppc.c:1076 eelf64lppc_fbsd.c:1076
-#: eelf64lriscv.c:446 eelf64lriscv_lp64.c:446 eelf64lriscv_lp64f.c:446
-#: eelf64ltsmip.c:579 eelf64ltsmip_fbsd.c:579 eelf64mmix.c:449
-#: eelf64ppc.c:1076 eelf64ppc_fbsd.c:1076 eelf64rdos.c:389 eelf64tilegx.c:364
-#: eelf64tilegx_be.c:364 eelf_i386.c:5121 eelf_i386_be.c:362
-#: eelf_i386_fbsd.c:398 eelf_i386_haiku.c:398 eelf_i386_ldso.c:373
-#: eelf_i386_sol2.c:530 eelf_i386_vxworks.c:425 eelf_iamcu.c:398
-#: eelf_mipsel_haiku.c:579 eelf_s390.c:364 eelf_x86_64.c:5499
-#: eelf_x86_64_cloudabi.c:398 eelf_x86_64_fbsd.c:398 eelf_x86_64_haiku.c:398
-#: eelf_x86_64_sol2.c:530 eh8300elf.c:256 eh8300elf_linux.c:256
-#: eh8300helf.c:256 eh8300helf_linux.c:256 eh8300hnelf.c:256 eh8300self.c:256
-#: eh8300self_linux.c:256 eh8300snelf.c:256 eh8300sxelf.c:256
-#: eh8300sxelf_linux.c:256 eh8300sxnelf.c:256 ehppa64linux.c:338
-#: ehppaelf.c:524 ehppalinux.c:647 ehppanbsd.c:647 ehppaobsd.c:647
-#: ei386lynx.c:353 ei386moss.c:353 ei386nto.c:353 em32relf.c:256
-#: em32relf_linux.c:363 em32rlelf.c:256 em32rlelf_linux.c:363
-#: em68hc11elf.c:526 em68hc11elfb.c:526 em68hc12elf.c:526 em68hc12elfb.c:526
-#: em68kelf.c:521 em68kelfnbsd.c:521 emn10300.c:338 ends32belf.c:377
-#: ends32belf16m.c:377 ends32belf_linux.c:451 ends32elf.c:377
-#: ends32elf16m.c:377 ends32elf_linux.c:451 enios2elf.c:543 enios2linux.c:625
-#: epruelf.c:262 escore3_elf.c:358 escore7_elf.c:358 eshelf.c:338
-#: eshelf_fd.c:364 eshelf_linux.c:364 eshelf_nbsd.c:338 eshelf_nto.c:338
-#: eshelf_uclinux.c:338 eshelf_vxworks.c:375 eshlelf.c:338 eshlelf_fd.c:364
-#: eshlelf_linux.c:364 eshlelf_nbsd.c:338 eshlelf_nto.c:338
-#: eshlelf_vxworks.c:375 ev850.c:288 ev850_rh850.c:288
+#: eaarch64cloudabi.c:706 eaarch64cloudabib.c:706 eaarch64elf.c:705
+#: eaarch64elf32.c:705 eaarch64elf32b.c:705 eaarch64elfb.c:705
+#: eaarch64fbsd.c:706 eaarch64fbsdb.c:706 eaarch64haiku.c:706
+#: eaarch64linux.c:706 eaarch64linux32.c:706 eaarch64linux32b.c:706
+#: eaarch64linuxb.c:706 eaarch64nto.c:868 earcelf.c:314 earclinux.c:405
+#: earclinux_nps.c:405 earcv2elf.c:242 earcv2elfx.c:242 earmelf.c:930
+#: earmelf_fbsd.c:930 earmelf_fuchsia.c:931 earmelf_haiku.c:931
+#: earmelf_linux.c:931 earmelf_linux_eabi.c:931 earmelf_linux_fdpiceabi.c:931
+#: earmelf_nacl.c:931 earmelf_nbsd.c:930 earmelf_phoenix.c:931
+#: earmelf_vxworks.c:962 earmelfb.c:930 earmelfb_fbsd.c:930
+#: earmelfb_fuchsia.c:931 earmelfb_linux.c:931 earmelfb_linux_eabi.c:931
+#: earmelfb_linux_fdpiceabi.c:931 earmelfb_nacl.c:931 earmelfb_nbsd.c:930
+#: earmnto.c:890 eavr1.c:458 eavr2.c:458 eavr25.c:458 eavr3.c:458 eavr31.c:458
+#: eavr35.c:458 eavr4.c:458 eavr5.c:458 eavr51.c:458 eavr6.c:458
+#: eavrtiny.c:458 eavrxmega1.c:458 eavrxmega2.c:458 eavrxmega2_flmap.c:458
+#: eavrxmega3.c:458 eavrxmega4.c:458 eavrxmega4_flmap.c:458 eavrxmega5.c:458
+#: eavrxmega6.c:458 eavrxmega7.c:458 ecriself.c:267 ecrislinux.c:365
+#: ecskyelf.c:506 ecskyelf_linux.c:644 ed10velf.c:242 eelf32_sparc.c:405
+#: eelf32_sparc_sol2.c:537 eelf32_sparc_vxworks.c:437 eelf32_spu.c:962
+#: eelf32_tic6x_be.c:496 eelf32_tic6x_elf_be.c:496 eelf32_tic6x_elf_le.c:496
+#: eelf32_tic6x_le.c:496 eelf32_tic6x_linux_be.c:496
+#: eelf32_tic6x_linux_le.c:496 eelf32_x86_64.c:7719 eelf32am33lin.c:364
+#: eelf32b4300.c:609 eelf32bfin.c:378 eelf32bfinfd.c:418 eelf32bmip.c:609
+#: eelf32bmipn32.c:623 eelf32briscv.c:483 eelf32briscv_ilp32.c:483
+#: eelf32briscv_ilp32f.c:483 eelf32bsmip.c:623 eelf32btsmip.c:609
+#: eelf32btsmip_fbsd.c:609 eelf32btsmipn32.c:609 eelf32btsmipn32_fbsd.c:609
+#: eelf32cr16.c:392 eelf32crx.c:279 eelf32ebmip.c:609 eelf32ebmipvxworks.c:640
+#: eelf32elmip.c:609 eelf32elmipvxworks.c:640 eelf32epiphany.c:267
+#: eelf32epiphany_4x4.c:244 eelf32frvfd.c:404 eelf32ip2k.c:267 eelf32kvx.c:630
+#: eelf32l4300.c:609 eelf32lm32.c:267 eelf32lm32fd.c:404 eelf32lmip.c:609
+#: eelf32loongarch.c:476 eelf32lppc.c:646 eelf32lppclinux.c:646
+#: eelf32lppcnto.c:646 eelf32lppcsim.c:646 eelf32lr5900.c:512
+#: eelf32lr5900n32.c:511 eelf32lriscv.c:483 eelf32lriscv_ilp32.c:483
+#: eelf32lriscv_ilp32f.c:483 eelf32lsmip.c:609 eelf32ltsmip.c:609
+#: eelf32ltsmip_fbsd.c:609 eelf32ltsmipn32.c:609 eelf32ltsmipn32_fbsd.c:609
+#: eelf32m32c.c:278 eelf32mb_linux.c:405 eelf32mbel_linux.c:405
+#: eelf32mcore.c:270 eelf32mep.c:242 eelf32metag.c:651 eelf32microblaze.c:242
+#: eelf32microblazeel.c:242 eelf32mipswindiss.c:471 eelf32moxie.c:267
+#: eelf32or1k.c:268 eelf32or1k_linux.c:405 eelf32ppc.c:646
+#: eelf32ppc_fbsd.c:646 eelf32ppchaiku.c:646 eelf32ppclinux.c:646
+#: eelf32ppcnto.c:646 eelf32ppcsim.c:646 eelf32ppcvxworks.c:616
+#: eelf32ppcwindiss.c:646 eelf32rl78.c:267 eelf32rx.c:289 eelf32rx_linux.c:280
+#: eelf32tilegx.c:405 eelf32tilegx_be.c:405 eelf32tilepro.c:405
+#: eelf32vax.c:364 eelf32visium.c:242 eelf32xstormy16.c:253
+#: eelf32xtensa.c:2309 eelf32z80.c:269 eelf64_aix.c:364 eelf64_ia64.c:433
+#: eelf64_ia64_fbsd.c:433 eelf64_s390.c:502 eelf64_sparc.c:405
+#: eelf64_sparc_fbsd.c:405 eelf64_sparc_sol2.c:537 eelf64alpha.c:493
+#: eelf64alpha_fbsd.c:493 eelf64alpha_nbsd.c:493 eelf64bmip.c:623
+#: eelf64bpf.c:242 eelf64briscv.c:483 eelf64briscv_lp64.c:483
+#: eelf64briscv_lp64f.c:483 eelf64btsmip.c:609 eelf64btsmip_fbsd.c:609
+#: eelf64hppa.c:314 eelf64kvx.c:630 eelf64kvx_linux.c:667
+#: eelf64loongarch.c:476 eelf64lppc.c:1080 eelf64lppc_fbsd.c:1080
+#: eelf64lriscv.c:483 eelf64lriscv_lp64.c:483 eelf64lriscv_lp64f.c:483
+#: eelf64ltsmip.c:609 eelf64ltsmip_fbsd.c:609 eelf64mmix.c:475
+#: eelf64ppc.c:1080 eelf64ppc_fbsd.c:1080 eelf64rdos.c:426 eelf64tilegx.c:405
+#: eelf64tilegx_be.c:405 eelf_i386.c:7177 eelf_i386_be.c:388
+#: eelf_i386_fbsd.c:435 eelf_i386_haiku.c:435 eelf_i386_ldso.c:395
+#: eelf_i386_sol2.c:567 eelf_i386_vxworks.c:461 eelf_iamcu.c:435
+#: eelf_mipsel_haiku.c:609 eelf_s390.c:405 eelf_x86_64.c:7719
+#: eelf_x86_64_cloudabi.c:443 eelf_x86_64_fbsd.c:443 eelf_x86_64_haiku.c:443
+#: eelf_x86_64_sol2.c:575 eh8300elf.c:267 eh8300elf_linux.c:267
+#: eh8300helf.c:267 eh8300helf_linux.c:267 eh8300hnelf.c:267 eh8300self.c:267
+#: eh8300self_linux.c:267 eh8300snelf.c:267 eh8300sxelf.c:267
+#: eh8300sxelf_linux.c:267 eh8300sxnelf.c:267 ehppa64linux.c:364
+#: ehppaelf.c:521 ehppalinux.c:684 ehppanbsd.c:684 ehppaobsd.c:684
+#: ei386lynx.c:379 ei386moss.c:379 ei386nto.c:379 em32relf.c:267
+#: em32relf_linux.c:404 em32rlelf.c:267 em32rlelf_linux.c:404
+#: em68hc11elf.c:523 em68hc11elfb.c:523 em68hc12elf.c:523 em68hc12elfb.c:523
+#: em68kelf.c:559 em68kelfnbsd.c:559 emn10300.c:364 ends32belf.c:366
+#: ends32belf16m.c:366 ends32belf_linux.c:450 ends32elf.c:366
+#: ends32elf16m.c:366 ends32elf_linux.c:450 enios2elf.c:569 enios2linux.c:666
+#: epruelf.c:263 escore3_elf.c:383 escore7_elf.c:383 eshelf.c:364
+#: eshelf_fd.c:405 eshelf_linux.c:405 eshelf_nbsd.c:364 eshelf_nto.c:364
+#: eshelf_uclinux.c:364 eshelf_vxworks.c:396 eshlelf.c:364 eshlelf_fd.c:405
+#: eshlelf_linux.c:405 eshlelf_nbsd.c:364 eshlelf_nto.c:364
+#: eshlelf_vxworks.c:396 ev850.c:289 ev850_rh850.c:289
msgid "%F%P: invalid common page size `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:684 eaarch64cloudabib.c:684 eaarch64elf.c:683
-#: eaarch64elf32.c:683 eaarch64elf32b.c:683 eaarch64elfb.c:683
-#: eaarch64fbsd.c:684 eaarch64fbsdb.c:684 eaarch64haiku.c:684
-#: eaarch64linux.c:684 eaarch64linux32.c:684 eaarch64linux32b.c:684
-#: eaarch64linuxb.c:684 eaarch64nto.c:852 eaarch64nto.c:1026 earcelf.c:317
-#: earclinux.c:373 earclinux_nps.c:373 earcv2elf.c:250 earcv2elfx.c:250
-#: earmelf.c:923 earmelf_fbsd.c:923 earmelf_fuchsia.c:924 earmelf_haiku.c:924
-#: earmelf_linux.c:924 earmelf_linux_eabi.c:924 earmelf_linux_fdpiceabi.c:924
-#: earmelf_nacl.c:924 earmelf_nbsd.c:923 earmelf_phoenix.c:924
-#: earmelf_vxworks.c:959 earmelfb.c:923 earmelfb_fbsd.c:923
-#: earmelfb_fuchsia.c:924 earmelfb_linux.c:924 earmelfb_linux_eabi.c:924
-#: earmelfb_linux_fdpiceabi.c:924 earmelfb_nacl.c:924 earmelfb_nbsd.c:923
-#: earmnto.c:898 eavr1.c:474 eavr2.c:474 eavr25.c:474 eavr3.c:474 eavr31.c:474
-#: eavr35.c:474 eavr4.c:474 eavr5.c:474 eavr51.c:474 eavr6.c:474
-#: eavrtiny.c:474 eavrxmega1.c:474 eavrxmega2.c:474 eavrxmega3.c:474
-#: eavrxmega4.c:474 eavrxmega5.c:474 eavrxmega6.c:474 eavrxmega7.c:474
-#: ecriself.c:265 ecrislinux.c:348 ecskyelf.c:509 ecskyelf_linux.c:617
-#: ed10velf.c:250 eelf32_sparc.c:373 eelf32_sparc_sol2.c:505
-#: eelf32_sparc_vxworks.c:410 eelf32_spu.c:983 eelf32_tic6x_be.c:484
-#: eelf32_tic6x_elf_be.c:484 eelf32_tic6x_elf_le.c:484 eelf32_tic6x_le.c:484
-#: eelf32_tic6x_linux_be.c:484 eelf32_tic6x_linux_le.c:484
-#: eelf32_x86_64.c:5508 eelf32am33lin.c:347 eelf32b4300.c:588 eelf32bfin.c:365
-#: eelf32bfinfd.c:390 eelf32bmip.c:588 eelf32bmipn32.c:602 eelf32briscv.c:455
-#: eelf32briscv_ilp32.c:455 eelf32briscv_ilp32f.c:455 eelf32bsmip.c:602
-#: eelf32btsmip.c:588 eelf32btsmip_fbsd.c:588 eelf32btsmipn32.c:588
-#: eelf32btsmipn32_fbsd.c:588 eelf32cr16.c:400 eelf32crx.c:287
-#: eelf32ebmip.c:588 eelf32ebmipvxworks.c:623 eelf32elmip.c:588
-#: eelf32elmipvxworks.c:623 eelf32epiphany.c:265 eelf32epiphany_4x4.c:252
-#: eelf32frvfd.c:372 eelf32ip2k.c:265 eelf32kvx.c:613 eelf32l4300.c:588
-#: eelf32lm32.c:265 eelf32lm32fd.c:372 eelf32lmip.c:588 eelf32loongarch.c:426
-#: eelf32lppc.c:636 eelf32lppclinux.c:636 eelf32lppcnto.c:636
-#: eelf32lppcsim.c:636 eelf32lr5900.c:506 eelf32lr5900n32.c:505
-#: eelf32lriscv.c:455 eelf32lriscv_ilp32.c:455 eelf32lriscv_ilp32f.c:455
-#: eelf32lsmip.c:588 eelf32ltsmip.c:588 eelf32ltsmip_fbsd.c:588
-#: eelf32ltsmipn32.c:588 eelf32ltsmipn32_fbsd.c:588 eelf32m32c.c:276
-#: eelf32mb_linux.c:373 eelf32mbel_linux.c:373 eelf32mcore.c:271
-#: eelf32mep.c:250 eelf32metag.c:622 eelf32microblaze.c:250
-#: eelf32microblazeel.c:250 eelf32mipswindiss.c:480 eelf32moxie.c:265
-#: eelf32or1k.c:266 eelf32or1k_linux.c:373 eelf32ppc.c:636
-#: eelf32ppc_fbsd.c:636 eelf32ppchaiku.c:636 eelf32ppclinux.c:636
-#: eelf32ppcnto.c:636 eelf32ppcsim.c:636 eelf32ppcvxworks.c:610
-#: eelf32ppcwindiss.c:636 eelf32rl78.c:265 eelf32rx.c:293 eelf32rx_linux.c:278
-#: eelf32tilegx.c:373 eelf32tilegx_be.c:373 eelf32tilepro.c:373
-#: eelf32vax.c:347 eelf32visium.c:250 eelf32xstormy16.c:261
-#: eelf32xtensa.c:2284 eelf32z80.c:277 eelf64_aix.c:347 eelf64_ia64.c:404
-#: eelf64_ia64_fbsd.c:404 eelf64_s390.c:443 eelf64_sparc.c:373
-#: eelf64_sparc_fbsd.c:373 eelf64_sparc_sol2.c:505 eelf64alpha.c:466
-#: eelf64alpha_fbsd.c:466 eelf64alpha_nbsd.c:466 eelf64bmip.c:602
-#: eelf64bpf.c:250 eelf64briscv.c:455 eelf64briscv_lp64.c:455
-#: eelf64briscv_lp64f.c:455 eelf64btsmip.c:588 eelf64btsmip_fbsd.c:588
-#: eelf64hppa.c:317 eelf64kvx.c:613 eelf64kvx_linux.c:635
-#: eelf64loongarch.c:426 eelf64lppc.c:1085 eelf64lppc_fbsd.c:1085
-#: eelf64lriscv.c:455 eelf64lriscv_lp64.c:455 eelf64lriscv_lp64f.c:455
-#: eelf64ltsmip.c:588 eelf64ltsmip_fbsd.c:588 eelf64mmix.c:458
-#: eelf64ppc.c:1085 eelf64ppc_fbsd.c:1085 eelf64rdos.c:398 eelf64tilegx.c:373
-#: eelf64tilegx_be.c:373 eelf_i386.c:5130 eelf_i386_be.c:371
-#: eelf_i386_fbsd.c:407 eelf_i386_haiku.c:407 eelf_i386_ldso.c:382
-#: eelf_i386_sol2.c:539 eelf_i386_vxworks.c:434 eelf_iamcu.c:407
-#: eelf_mipsel_haiku.c:588 eelf_s390.c:373 eelf_x86_64.c:5508
-#: eelf_x86_64_cloudabi.c:407 eelf_x86_64_fbsd.c:407 eelf_x86_64_haiku.c:407
-#: eelf_x86_64_sol2.c:539 eh8300elf.c:265 eh8300elf_linux.c:265
-#: eh8300helf.c:265 eh8300helf_linux.c:265 eh8300hnelf.c:265 eh8300self.c:265
-#: eh8300self_linux.c:265 eh8300snelf.c:265 eh8300sxelf.c:265
-#: eh8300sxelf_linux.c:265 eh8300sxnelf.c:265 ehppa64linux.c:347
-#: ehppaelf.c:533 ehppalinux.c:656 ehppanbsd.c:656 ehppaobsd.c:656
-#: ei386lynx.c:362 ei386moss.c:362 ei386nto.c:362 em32relf.c:265
-#: em32relf_linux.c:372 em32rlelf.c:265 em32rlelf_linux.c:372
-#: em68hc11elf.c:535 em68hc11elfb.c:535 em68hc12elf.c:535 em68hc12elfb.c:535
-#: em68kelf.c:530 em68kelfnbsd.c:530 emn10300.c:347 ends32belf.c:386
-#: ends32belf16m.c:386 ends32belf_linux.c:460 ends32elf.c:386
-#: ends32elf16m.c:386 ends32elf_linux.c:460 enios2elf.c:552 enios2linux.c:634
-#: epruelf.c:271 escore3_elf.c:367 escore7_elf.c:367 eshelf.c:347
-#: eshelf_fd.c:373 eshelf_linux.c:373 eshelf_nbsd.c:347 eshelf_nto.c:347
-#: eshelf_uclinux.c:347 eshelf_vxworks.c:384 eshlelf.c:347 eshlelf_fd.c:373
-#: eshlelf_linux.c:373 eshlelf_nbsd.c:347 eshlelf_nto.c:347
-#: eshlelf_vxworks.c:384 ev850.c:297 ev850_rh850.c:297
+#: eaarch64cloudabi.c:715 eaarch64cloudabib.c:715 eaarch64elf.c:714
+#: eaarch64elf32.c:714 eaarch64elf32b.c:714 eaarch64elfb.c:714
+#: eaarch64fbsd.c:715 eaarch64fbsdb.c:715 eaarch64haiku.c:715
+#: eaarch64linux.c:715 eaarch64linux32.c:715 eaarch64linux32b.c:715
+#: eaarch64linuxb.c:715 eaarch64nto.c:877 eaarch64nto.c:1051 earcelf.c:323
+#: earclinux.c:414 earclinux_nps.c:414 earcv2elf.c:251 earcv2elfx.c:251
+#: earmelf.c:939 earmelf_fbsd.c:939 earmelf_fuchsia.c:940 earmelf_haiku.c:940
+#: earmelf_linux.c:940 earmelf_linux_eabi.c:940 earmelf_linux_fdpiceabi.c:940
+#: earmelf_nacl.c:940 earmelf_nbsd.c:939 earmelf_phoenix.c:940
+#: earmelf_vxworks.c:971 earmelfb.c:939 earmelfb_fbsd.c:939
+#: earmelfb_fuchsia.c:940 earmelfb_linux.c:940 earmelfb_linux_eabi.c:940
+#: earmelfb_linux_fdpiceabi.c:940 earmelfb_nacl.c:940 earmelfb_nbsd.c:939
+#: earmnto.c:899 eavr1.c:467 eavr2.c:467 eavr25.c:467 eavr3.c:467 eavr31.c:467
+#: eavr35.c:467 eavr4.c:467 eavr5.c:467 eavr51.c:467 eavr6.c:467
+#: eavrtiny.c:467 eavrxmega1.c:467 eavrxmega2.c:467 eavrxmega2_flmap.c:467
+#: eavrxmega3.c:467 eavrxmega4.c:467 eavrxmega4_flmap.c:467 eavrxmega5.c:467
+#: eavrxmega6.c:467 eavrxmega7.c:467 ecriself.c:276 ecrislinux.c:374
+#: ecskyelf.c:515 ecskyelf_linux.c:653 ed10velf.c:251 eelf32_sparc.c:414
+#: eelf32_sparc_sol2.c:546 eelf32_sparc_vxworks.c:446 eelf32_spu.c:971
+#: eelf32_tic6x_be.c:505 eelf32_tic6x_elf_be.c:505 eelf32_tic6x_elf_le.c:505
+#: eelf32_tic6x_le.c:505 eelf32_tic6x_linux_be.c:505
+#: eelf32_tic6x_linux_le.c:505 eelf32_x86_64.c:7728 eelf32am33lin.c:373
+#: eelf32b4300.c:618 eelf32bfin.c:387 eelf32bfinfd.c:427 eelf32bmip.c:618
+#: eelf32bmipn32.c:632 eelf32briscv.c:492 eelf32briscv_ilp32.c:492
+#: eelf32briscv_ilp32f.c:492 eelf32bsmip.c:632 eelf32btsmip.c:618
+#: eelf32btsmip_fbsd.c:618 eelf32btsmipn32.c:618 eelf32btsmipn32_fbsd.c:618
+#: eelf32cr16.c:401 eelf32crx.c:288 eelf32ebmip.c:618 eelf32ebmipvxworks.c:649
+#: eelf32elmip.c:618 eelf32elmipvxworks.c:649 eelf32epiphany.c:276
+#: eelf32epiphany_4x4.c:253 eelf32frvfd.c:413 eelf32ip2k.c:276 eelf32kvx.c:639
+#: eelf32l4300.c:618 eelf32lm32.c:276 eelf32lm32fd.c:413 eelf32lmip.c:618
+#: eelf32loongarch.c:485 eelf32lppc.c:655 eelf32lppclinux.c:655
+#: eelf32lppcnto.c:655 eelf32lppcsim.c:655 eelf32lr5900.c:521
+#: eelf32lr5900n32.c:520 eelf32lriscv.c:492 eelf32lriscv_ilp32.c:492
+#: eelf32lriscv_ilp32f.c:492 eelf32lsmip.c:618 eelf32ltsmip.c:618
+#: eelf32ltsmip_fbsd.c:618 eelf32ltsmipn32.c:618 eelf32ltsmipn32_fbsd.c:618
+#: eelf32m32c.c:287 eelf32mb_linux.c:414 eelf32mbel_linux.c:414
+#: eelf32mcore.c:279 eelf32mep.c:251 eelf32metag.c:660 eelf32microblaze.c:251
+#: eelf32microblazeel.c:251 eelf32mipswindiss.c:480 eelf32moxie.c:276
+#: eelf32or1k.c:277 eelf32or1k_linux.c:414 eelf32ppc.c:655
+#: eelf32ppc_fbsd.c:655 eelf32ppchaiku.c:655 eelf32ppclinux.c:655
+#: eelf32ppcnto.c:655 eelf32ppcsim.c:655 eelf32ppcvxworks.c:625
+#: eelf32ppcwindiss.c:655 eelf32rl78.c:276 eelf32rx.c:298 eelf32rx_linux.c:289
+#: eelf32tilegx.c:414 eelf32tilegx_be.c:414 eelf32tilepro.c:414
+#: eelf32vax.c:373 eelf32visium.c:251 eelf32xstormy16.c:262
+#: eelf32xtensa.c:2318 eelf32z80.c:278 eelf64_aix.c:373 eelf64_ia64.c:442
+#: eelf64_ia64_fbsd.c:442 eelf64_s390.c:511 eelf64_sparc.c:414
+#: eelf64_sparc_fbsd.c:414 eelf64_sparc_sol2.c:546 eelf64alpha.c:502
+#: eelf64alpha_fbsd.c:502 eelf64alpha_nbsd.c:502 eelf64bmip.c:632
+#: eelf64bpf.c:251 eelf64briscv.c:492 eelf64briscv_lp64.c:492
+#: eelf64briscv_lp64f.c:492 eelf64btsmip.c:618 eelf64btsmip_fbsd.c:618
+#: eelf64hppa.c:323 eelf64kvx.c:639 eelf64kvx_linux.c:676
+#: eelf64loongarch.c:485 eelf64lppc.c:1089 eelf64lppc_fbsd.c:1089
+#: eelf64lriscv.c:492 eelf64lriscv_lp64.c:492 eelf64lriscv_lp64f.c:492
+#: eelf64ltsmip.c:618 eelf64ltsmip_fbsd.c:618 eelf64mmix.c:484
+#: eelf64ppc.c:1089 eelf64ppc_fbsd.c:1089 eelf64rdos.c:435 eelf64tilegx.c:414
+#: eelf64tilegx_be.c:414 eelf_i386.c:7186 eelf_i386_be.c:397
+#: eelf_i386_fbsd.c:444 eelf_i386_haiku.c:444 eelf_i386_ldso.c:404
+#: eelf_i386_sol2.c:576 eelf_i386_vxworks.c:470 eelf_iamcu.c:444
+#: eelf_mipsel_haiku.c:618 eelf_s390.c:414 eelf_x86_64.c:7728
+#: eelf_x86_64_cloudabi.c:452 eelf_x86_64_fbsd.c:452 eelf_x86_64_haiku.c:452
+#: eelf_x86_64_sol2.c:584 eh8300elf.c:276 eh8300elf_linux.c:276
+#: eh8300helf.c:276 eh8300helf_linux.c:276 eh8300hnelf.c:276 eh8300self.c:276
+#: eh8300self_linux.c:276 eh8300snelf.c:276 eh8300sxelf.c:276
+#: eh8300sxelf_linux.c:276 eh8300sxnelf.c:276 ehppa64linux.c:373
+#: ehppaelf.c:530 ehppalinux.c:693 ehppanbsd.c:693 ehppaobsd.c:693
+#: ei386lynx.c:388 ei386moss.c:388 ei386nto.c:388 em32relf.c:276
+#: em32relf_linux.c:413 em32rlelf.c:276 em32rlelf_linux.c:413
+#: em68hc11elf.c:532 em68hc11elfb.c:532 em68hc12elf.c:532 em68hc12elfb.c:532
+#: em68kelf.c:568 em68kelfnbsd.c:568 emn10300.c:373 ends32belf.c:375
+#: ends32belf16m.c:375 ends32belf_linux.c:459 ends32elf.c:375
+#: ends32elf16m.c:375 ends32elf_linux.c:459 enios2elf.c:578 enios2linux.c:675
+#: epruelf.c:272 escore3_elf.c:392 escore7_elf.c:392 eshelf.c:373
+#: eshelf_fd.c:414 eshelf_linux.c:414 eshelf_nbsd.c:373 eshelf_nto.c:373
+#: eshelf_uclinux.c:373 eshelf_vxworks.c:405 eshlelf.c:373 eshlelf_fd.c:414
+#: eshlelf_linux.c:414 eshlelf_nbsd.c:373 eshlelf_nto.c:373
+#: eshlelf_vxworks.c:405 ev850.c:298 ev850_rh850.c:298
msgid "%F%P: invalid stack size `%s'\n"
msgstr ""
-#: eaarch64cloudabi.c:723 eaarch64cloudabib.c:723 eaarch64elf.c:722
-#: eaarch64elf32.c:722 eaarch64elf32b.c:722 eaarch64elfb.c:722
-#: eaarch64fbsd.c:723 eaarch64fbsdb.c:723 eaarch64haiku.c:723
-#: eaarch64linux.c:723 eaarch64linux32.c:723 eaarch64linux32b.c:723
-#: eaarch64linuxb.c:723 eaarch64nto.c:891 earcelf.c:356 earclinux.c:412
-#: earclinux_nps.c:412 earcv2elf.c:289 earcv2elfx.c:289 earmelf.c:962
-#: earmelf_fbsd.c:962 earmelf_fuchsia.c:963 earmelf_haiku.c:963
-#: earmelf_linux.c:963 earmelf_linux_eabi.c:963 earmelf_linux_fdpiceabi.c:963
-#: earmelf_nacl.c:963 earmelf_nbsd.c:962 earmelf_phoenix.c:963
-#: earmelf_vxworks.c:998 earmelfb.c:962 earmelfb_fbsd.c:962
-#: earmelfb_fuchsia.c:963 earmelfb_linux.c:963 earmelfb_linux_eabi.c:963
-#: earmelfb_linux_fdpiceabi.c:963 earmelfb_nacl.c:963 earmelfb_nbsd.c:962
-#: earmnto.c:937 eavr1.c:513 eavr2.c:513 eavr25.c:513 eavr3.c:513 eavr31.c:513
-#: eavr35.c:513 eavr4.c:513 eavr5.c:513 eavr51.c:513 eavr6.c:513
-#: eavrtiny.c:513 eavrxmega1.c:513 eavrxmega2.c:513 eavrxmega3.c:513
-#: eavrxmega4.c:513 eavrxmega5.c:513 eavrxmega6.c:513 eavrxmega7.c:513
-#: ecriself.c:304 ecrislinux.c:387 ecskyelf.c:548 ecskyelf_linux.c:656
-#: ed10velf.c:289 eelf32_sparc.c:412 eelf32_sparc_sol2.c:544
-#: eelf32_sparc_vxworks.c:449 eelf32_spu.c:1022 eelf32_tic6x_be.c:523
-#: eelf32_tic6x_elf_be.c:523 eelf32_tic6x_elf_le.c:523 eelf32_tic6x_le.c:523
-#: eelf32_tic6x_linux_be.c:523 eelf32_tic6x_linux_le.c:523
-#: eelf32_x86_64.c:5547 eelf32am33lin.c:386 eelf32b4300.c:627 eelf32bfin.c:404
-#: eelf32bfinfd.c:429 eelf32bmip.c:627 eelf32bmipn32.c:641 eelf32briscv.c:494
-#: eelf32briscv_ilp32.c:494 eelf32briscv_ilp32f.c:494 eelf32bsmip.c:641
-#: eelf32btsmip.c:627 eelf32btsmip_fbsd.c:627 eelf32btsmipn32.c:627
-#: eelf32btsmipn32_fbsd.c:627 eelf32cr16.c:439 eelf32crx.c:326
-#: eelf32ebmip.c:627 eelf32ebmipvxworks.c:662 eelf32elmip.c:627
-#: eelf32elmipvxworks.c:662 eelf32epiphany.c:304 eelf32epiphany_4x4.c:291
-#: eelf32frvfd.c:411 eelf32ip2k.c:304 eelf32kvx.c:652 eelf32l4300.c:627
-#: eelf32lm32.c:304 eelf32lm32fd.c:411 eelf32lmip.c:627 eelf32loongarch.c:465
-#: eelf32lppc.c:675 eelf32lppclinux.c:675 eelf32lppcnto.c:675
-#: eelf32lppcsim.c:675 eelf32lr5900.c:545 eelf32lr5900n32.c:544
-#: eelf32lriscv.c:494 eelf32lriscv_ilp32.c:494 eelf32lriscv_ilp32f.c:494
-#: eelf32lsmip.c:627 eelf32ltsmip.c:627 eelf32ltsmip_fbsd.c:627
-#: eelf32ltsmipn32.c:627 eelf32ltsmipn32_fbsd.c:627 eelf32m32c.c:315
-#: eelf32mb_linux.c:412 eelf32mbel_linux.c:412 eelf32mcore.c:310
-#: eelf32mep.c:289 eelf32metag.c:661 eelf32microblaze.c:289
-#: eelf32microblazeel.c:289 eelf32mipswindiss.c:519 eelf32moxie.c:304
-#: eelf32or1k.c:305 eelf32or1k_linux.c:412 eelf32ppc.c:675
-#: eelf32ppc_fbsd.c:675 eelf32ppchaiku.c:675 eelf32ppclinux.c:675
-#: eelf32ppcnto.c:675 eelf32ppcsim.c:675 eelf32ppcvxworks.c:649
-#: eelf32ppcwindiss.c:675 eelf32rl78.c:304 eelf32rx.c:332 eelf32rx_linux.c:317
-#: eelf32tilegx.c:412 eelf32tilegx_be.c:412 eelf32tilepro.c:412
-#: eelf32vax.c:386 eelf32visium.c:289 eelf32xstormy16.c:300
-#: eelf32xtensa.c:2323 eelf32z80.c:316 eelf64_aix.c:386 eelf64_ia64.c:443
-#: eelf64_ia64_fbsd.c:443 eelf64_s390.c:482 eelf64_sparc.c:412
-#: eelf64_sparc_fbsd.c:412 eelf64_sparc_sol2.c:544 eelf64alpha.c:505
-#: eelf64alpha_fbsd.c:505 eelf64alpha_nbsd.c:505 eelf64bmip.c:641
-#: eelf64bpf.c:289 eelf64briscv.c:494 eelf64briscv_lp64.c:494
-#: eelf64briscv_lp64f.c:494 eelf64btsmip.c:627 eelf64btsmip_fbsd.c:627
-#: eelf64hppa.c:356 eelf64kvx.c:652 eelf64kvx_linux.c:674
-#: eelf64loongarch.c:465 eelf64lppc.c:1124 eelf64lppc_fbsd.c:1124
-#: eelf64lriscv.c:494 eelf64lriscv_lp64.c:494 eelf64lriscv_lp64f.c:494
-#: eelf64ltsmip.c:627 eelf64ltsmip_fbsd.c:627 eelf64mmix.c:497
-#: eelf64ppc.c:1124 eelf64ppc_fbsd.c:1124 eelf64rdos.c:437 eelf64tilegx.c:412
-#: eelf64tilegx_be.c:412 eelf_i386.c:5169 eelf_i386_be.c:410
-#: eelf_i386_fbsd.c:446 eelf_i386_haiku.c:446 eelf_i386_ldso.c:421
-#: eelf_i386_sol2.c:578 eelf_i386_vxworks.c:473 eelf_iamcu.c:446
-#: eelf_mipsel_haiku.c:627 eelf_s390.c:412 eelf_x86_64.c:5547
-#: eelf_x86_64_cloudabi.c:446 eelf_x86_64_fbsd.c:446 eelf_x86_64_haiku.c:446
-#: eelf_x86_64_sol2.c:578 eh8300elf.c:304 eh8300elf_linux.c:304
-#: eh8300helf.c:304 eh8300helf_linux.c:304 eh8300hnelf.c:304 eh8300self.c:304
-#: eh8300self_linux.c:304 eh8300snelf.c:304 eh8300sxelf.c:304
-#: eh8300sxelf_linux.c:304 eh8300sxnelf.c:304 ehppa64linux.c:386
-#: ehppaelf.c:572 ehppalinux.c:695 ehppanbsd.c:695 ehppaobsd.c:695
-#: ei386lynx.c:401 ei386moss.c:401 ei386nto.c:401 em32relf.c:304
-#: em32relf_linux.c:411 em32rlelf.c:304 em32rlelf_linux.c:411
-#: em68hc11elf.c:574 em68hc11elfb.c:574 em68hc12elf.c:574 em68hc12elfb.c:574
-#: em68kelf.c:569 em68kelfnbsd.c:569 emn10300.c:386 ends32belf.c:425
-#: ends32belf16m.c:425 ends32belf_linux.c:499 ends32elf.c:425
-#: ends32elf16m.c:425 ends32elf_linux.c:499 enios2elf.c:591 enios2linux.c:673
-#: epruelf.c:310 escore3_elf.c:406 escore7_elf.c:406 eshelf.c:386
-#: eshelf_fd.c:412 eshelf_linux.c:412 eshelf_nbsd.c:386 eshelf_nto.c:386
-#: eshelf_uclinux.c:386 eshelf_vxworks.c:423 eshlelf.c:386 eshlelf_fd.c:412
-#: eshlelf_linux.c:412 eshlelf_nbsd.c:386 eshlelf_nto.c:386
-#: eshlelf_vxworks.c:423 ev850.c:336 ev850_rh850.c:336
+#: eaarch64cloudabi.c:754 eaarch64cloudabib.c:754 eaarch64elf.c:753
+#: eaarch64elf32.c:753 eaarch64elf32b.c:753 eaarch64elfb.c:753
+#: eaarch64fbsd.c:754 eaarch64fbsdb.c:754 eaarch64haiku.c:754
+#: eaarch64linux.c:754 eaarch64linux32.c:754 eaarch64linux32b.c:754
+#: eaarch64linuxb.c:754 eaarch64nto.c:916 earcelf.c:362 earclinux.c:453
+#: earclinux_nps.c:453 earcv2elf.c:290 earcv2elfx.c:290 earmelf.c:978
+#: earmelf_fbsd.c:978 earmelf_fuchsia.c:979 earmelf_haiku.c:979
+#: earmelf_linux.c:979 earmelf_linux_eabi.c:979 earmelf_linux_fdpiceabi.c:979
+#: earmelf_nacl.c:979 earmelf_nbsd.c:978 earmelf_phoenix.c:979
+#: earmelf_vxworks.c:1010 earmelfb.c:978 earmelfb_fbsd.c:978
+#: earmelfb_fuchsia.c:979 earmelfb_linux.c:979 earmelfb_linux_eabi.c:979
+#: earmelfb_linux_fdpiceabi.c:979 earmelfb_nacl.c:979 earmelfb_nbsd.c:978
+#: earmnto.c:938 eavr1.c:506 eavr2.c:506 eavr25.c:506 eavr3.c:506 eavr31.c:506
+#: eavr35.c:506 eavr4.c:506 eavr5.c:506 eavr51.c:506 eavr6.c:506
+#: eavrtiny.c:506 eavrxmega1.c:506 eavrxmega2.c:506 eavrxmega2_flmap.c:506
+#: eavrxmega3.c:506 eavrxmega4.c:506 eavrxmega4_flmap.c:506 eavrxmega5.c:506
+#: eavrxmega6.c:506 eavrxmega7.c:506 ecriself.c:315 ecrislinux.c:413
+#: ecskyelf.c:554 ecskyelf_linux.c:692 ed10velf.c:290 eelf32_sparc.c:453
+#: eelf32_sparc_sol2.c:585 eelf32_sparc_vxworks.c:485 eelf32_spu.c:1010
+#: eelf32_tic6x_be.c:544 eelf32_tic6x_elf_be.c:544 eelf32_tic6x_elf_le.c:544
+#: eelf32_tic6x_le.c:544 eelf32_tic6x_linux_be.c:544
+#: eelf32_tic6x_linux_le.c:544 eelf32_x86_64.c:7767 eelf32am33lin.c:412
+#: eelf32b4300.c:657 eelf32bfin.c:426 eelf32bfinfd.c:466 eelf32bmip.c:657
+#: eelf32bmipn32.c:671 eelf32briscv.c:531 eelf32briscv_ilp32.c:531
+#: eelf32briscv_ilp32f.c:531 eelf32bsmip.c:671 eelf32btsmip.c:657
+#: eelf32btsmip_fbsd.c:657 eelf32btsmipn32.c:657 eelf32btsmipn32_fbsd.c:657
+#: eelf32cr16.c:440 eelf32crx.c:327 eelf32ebmip.c:657 eelf32ebmipvxworks.c:688
+#: eelf32elmip.c:657 eelf32elmipvxworks.c:688 eelf32epiphany.c:315
+#: eelf32epiphany_4x4.c:292 eelf32frvfd.c:452 eelf32ip2k.c:315 eelf32kvx.c:678
+#: eelf32l4300.c:657 eelf32lm32.c:315 eelf32lm32fd.c:452 eelf32lmip.c:657
+#: eelf32loongarch.c:524 eelf32lppc.c:694 eelf32lppclinux.c:694
+#: eelf32lppcnto.c:694 eelf32lppcsim.c:694 eelf32lr5900.c:560
+#: eelf32lr5900n32.c:559 eelf32lriscv.c:531 eelf32lriscv_ilp32.c:531
+#: eelf32lriscv_ilp32f.c:531 eelf32lsmip.c:657 eelf32ltsmip.c:657
+#: eelf32ltsmip_fbsd.c:657 eelf32ltsmipn32.c:657 eelf32ltsmipn32_fbsd.c:657
+#: eelf32m32c.c:326 eelf32mb_linux.c:453 eelf32mbel_linux.c:453
+#: eelf32mcore.c:318 eelf32mep.c:290 eelf32metag.c:699 eelf32microblaze.c:290
+#: eelf32microblazeel.c:290 eelf32mipswindiss.c:519 eelf32moxie.c:315
+#: eelf32or1k.c:316 eelf32or1k_linux.c:453 eelf32ppc.c:694
+#: eelf32ppc_fbsd.c:694 eelf32ppchaiku.c:694 eelf32ppclinux.c:694
+#: eelf32ppcnto.c:694 eelf32ppcsim.c:694 eelf32ppcvxworks.c:664
+#: eelf32ppcwindiss.c:694 eelf32rl78.c:315 eelf32rx.c:337 eelf32rx_linux.c:328
+#: eelf32tilegx.c:453 eelf32tilegx_be.c:453 eelf32tilepro.c:453
+#: eelf32vax.c:412 eelf32visium.c:290 eelf32xstormy16.c:301
+#: eelf32xtensa.c:2357 eelf32z80.c:317 eelf64_aix.c:412 eelf64_ia64.c:481
+#: eelf64_ia64_fbsd.c:481 eelf64_s390.c:550 eelf64_sparc.c:453
+#: eelf64_sparc_fbsd.c:453 eelf64_sparc_sol2.c:585 eelf64alpha.c:541
+#: eelf64alpha_fbsd.c:541 eelf64alpha_nbsd.c:541 eelf64bmip.c:671
+#: eelf64bpf.c:290 eelf64briscv.c:531 eelf64briscv_lp64.c:531
+#: eelf64briscv_lp64f.c:531 eelf64btsmip.c:657 eelf64btsmip_fbsd.c:657
+#: eelf64hppa.c:362 eelf64kvx.c:678 eelf64kvx_linux.c:715
+#: eelf64loongarch.c:524 eelf64lppc.c:1128 eelf64lppc_fbsd.c:1128
+#: eelf64lriscv.c:531 eelf64lriscv_lp64.c:531 eelf64lriscv_lp64f.c:531
+#: eelf64ltsmip.c:657 eelf64ltsmip_fbsd.c:657 eelf64mmix.c:523
+#: eelf64ppc.c:1128 eelf64ppc_fbsd.c:1128 eelf64rdos.c:474 eelf64tilegx.c:453
+#: eelf64tilegx_be.c:453 eelf_i386.c:7225 eelf_i386_be.c:436
+#: eelf_i386_fbsd.c:483 eelf_i386_haiku.c:483 eelf_i386_ldso.c:443
+#: eelf_i386_sol2.c:615 eelf_i386_vxworks.c:509 eelf_iamcu.c:483
+#: eelf_mipsel_haiku.c:657 eelf_s390.c:453 eelf_x86_64.c:7767
+#: eelf_x86_64_cloudabi.c:491 eelf_x86_64_fbsd.c:491 eelf_x86_64_haiku.c:491
+#: eelf_x86_64_sol2.c:623 eh8300elf.c:315 eh8300elf_linux.c:315
+#: eh8300helf.c:315 eh8300helf_linux.c:315 eh8300hnelf.c:315 eh8300self.c:315
+#: eh8300self_linux.c:315 eh8300snelf.c:315 eh8300sxelf.c:315
+#: eh8300sxelf_linux.c:315 eh8300sxnelf.c:315 ehppa64linux.c:412
+#: ehppaelf.c:569 ehppalinux.c:732 ehppanbsd.c:732 ehppaobsd.c:732
+#: ei386lynx.c:427 ei386moss.c:427 ei386nto.c:427 em32relf.c:315
+#: em32relf_linux.c:452 em32rlelf.c:315 em32rlelf_linux.c:452
+#: em68hc11elf.c:571 em68hc11elfb.c:571 em68hc12elf.c:571 em68hc12elfb.c:571
+#: em68kelf.c:607 em68kelfnbsd.c:607 emn10300.c:412 ends32belf.c:414
+#: ends32belf16m.c:414 ends32belf_linux.c:498 ends32elf.c:414
+#: ends32elf16m.c:414 ends32elf_linux.c:498 enios2elf.c:617 enios2linux.c:714
+#: epruelf.c:311 escore3_elf.c:431 escore7_elf.c:431 eshelf.c:412
+#: eshelf_fd.c:453 eshelf_linux.c:453 eshelf_nbsd.c:412 eshelf_nto.c:412
+#: eshelf_uclinux.c:412 eshelf_vxworks.c:444 eshlelf.c:412 eshlelf_fd.c:453
+#: eshlelf_linux.c:453 eshlelf_nbsd.c:412 eshlelf_nto.c:412
+#: eshlelf_vxworks.c:444 ev850.c:337 ev850_rh850.c:337
msgid ""
"%F%P: invalid visibility in `-z %s'; must be default, internal, hidden, or "
"protected"
msgstr ""
-#: eaarch64cloudabi.c:800 eaarch64cloudabib.c:800 eaarch64elf.c:795
-#: eaarch64elf32.c:795 eaarch64elf32b.c:795 eaarch64elfb.c:795
-#: eaarch64fbsd.c:800 eaarch64fbsdb.c:800 eaarch64haiku.c:800
-#: eaarch64linux.c:800 eaarch64linux32.c:800 eaarch64linux32b.c:800
-#: eaarch64linuxb.c:800 eaarch64nto.c:968 earcelf.c:420 earclinux.c:480
-#: earclinux_nps.c:480 earcv2elf.c:298 earcv2elfx.c:298 earmelf.c:1026
-#: earmelf_fbsd.c:1026 earmelf_fuchsia.c:1031 earmelf_haiku.c:1031
-#: earmelf_linux.c:1031 earmelf_linux_eabi.c:1031
-#: earmelf_linux_fdpiceabi.c:1031 earmelf_nacl.c:1031 earmelf_nbsd.c:1026
-#: earmelf_phoenix.c:1031 earmelf_vxworks.c:1062 earmelfb.c:1026
-#: earmelfb_fbsd.c:1026 earmelfb_fuchsia.c:1031 earmelfb_linux.c:1031
-#: earmelfb_linux_eabi.c:1031 earmelfb_linux_fdpiceabi.c:1031
-#: earmelfb_nacl.c:1031 earmelfb_nbsd.c:1026 earmnto.c:1001 eavr1.c:522
-#: eavr2.c:522 eavr25.c:522 eavr3.c:522 eavr31.c:522 eavr35.c:522 eavr4.c:522
-#: eavr5.c:522 eavr51.c:522 eavr6.c:522 eavrtiny.c:522 eavrxmega1.c:522
-#: eavrxmega2.c:522 eavrxmega3.c:522 eavrxmega4.c:522 eavrxmega5.c:522
-#: eavrxmega6.c:522 eavrxmega7.c:522 ecriself.c:313 ecrislinux.c:455
-#: ecskyelf.c:557 ecskyelf_linux.c:724 ed10velf.c:298 eelf32_sparc.c:480
-#: eelf32_sparc_sol2.c:612 eelf32_sparc_vxworks.c:517 eelf32_spu.c:1031
-#: eelf32_tic6x_be.c:587 eelf32_tic6x_elf_be.c:587 eelf32_tic6x_elf_le.c:587
-#: eelf32_tic6x_le.c:587 eelf32_tic6x_linux_be.c:587
-#: eelf32_tic6x_linux_le.c:587 eelf32_x86_64.c:5712 eelf32am33lin.c:450
-#: eelf32b4300.c:695 eelf32bfin.c:468 eelf32bfinfd.c:493 eelf32bmip.c:695
-#: eelf32bmipn32.c:709 eelf32briscv.c:562 eelf32briscv_ilp32.c:562
-#: eelf32briscv_ilp32f.c:562 eelf32bsmip.c:709 eelf32btsmip.c:695
-#: eelf32btsmip_fbsd.c:695 eelf32btsmipn32.c:695 eelf32btsmipn32_fbsd.c:695
-#: eelf32cr16.c:448 eelf32crx.c:335 eelf32ebmip.c:695 eelf32ebmipvxworks.c:730
-#: eelf32elmip.c:695 eelf32elmipvxworks.c:730 eelf32epiphany.c:313
-#: eelf32epiphany_4x4.c:300 eelf32frvfd.c:475 eelf32ip2k.c:313 eelf32kvx.c:716
-#: eelf32l4300.c:695 eelf32lm32.c:313 eelf32lm32fd.c:475 eelf32lmip.c:695
-#: eelf32loongarch.c:533 eelf32lppc.c:749 eelf32lppclinux.c:749
-#: eelf32lppcnto.c:749 eelf32lppcsim.c:749 eelf32lr5900.c:554
-#: eelf32lr5900n32.c:553 eelf32lriscv.c:562 eelf32lriscv_ilp32.c:562
-#: eelf32lriscv_ilp32f.c:562 eelf32lsmip.c:695 eelf32ltsmip.c:695
-#: eelf32ltsmip_fbsd.c:695 eelf32ltsmipn32.c:695 eelf32ltsmipn32_fbsd.c:695
-#: eelf32m32c.c:324 eelf32mb_linux.c:480 eelf32mbel_linux.c:480
-#: eelf32mcore.c:319 eelf32mep.c:298 eelf32metag.c:729 eelf32microblaze.c:298
-#: eelf32microblazeel.c:298 eelf32mipswindiss.c:528 eelf32moxie.c:313
-#: eelf32or1k.c:314 eelf32or1k_linux.c:480 eelf32ppc.c:749
-#: eelf32ppc_fbsd.c:749 eelf32ppchaiku.c:749 eelf32ppclinux.c:749
-#: eelf32ppcnto.c:749 eelf32ppcsim.c:749 eelf32ppcvxworks.c:723
-#: eelf32ppcwindiss.c:749 eelf32rl78.c:313 eelf32rx.c:341 eelf32rx_linux.c:326
-#: eelf32tilegx.c:480 eelf32tilegx_be.c:480 eelf32tilepro.c:480
-#: eelf32vax.c:450 eelf32visium.c:298 eelf32xstormy16.c:309
-#: eelf32xtensa.c:2391 eelf32z80.c:325 eelf64_aix.c:450 eelf64_ia64.c:507
-#: eelf64_ia64_fbsd.c:507 eelf64_s390.c:550 eelf64_sparc.c:480
-#: eelf64_sparc_fbsd.c:480 eelf64_sparc_sol2.c:612 eelf64alpha.c:573
-#: eelf64alpha_fbsd.c:573 eelf64alpha_nbsd.c:573 eelf64bmip.c:709
-#: eelf64bpf.c:298 eelf64briscv.c:562 eelf64briscv_lp64.c:562
-#: eelf64briscv_lp64f.c:562 eelf64btsmip.c:695 eelf64btsmip_fbsd.c:695
-#: eelf64hppa.c:420 eelf64kvx.c:716 eelf64kvx_linux.c:738
-#: eelf64loongarch.c:533 eelf64lppc.c:1203 eelf64lppc_fbsd.c:1203
-#: eelf64lriscv.c:562 eelf64lriscv_lp64.c:562 eelf64lriscv_lp64f.c:562
-#: eelf64ltsmip.c:695 eelf64ltsmip_fbsd.c:695 eelf64mmix.c:561
-#: eelf64ppc.c:1203 eelf64ppc_fbsd.c:1203 eelf64rdos.c:505 eelf64tilegx.c:480
-#: eelf64tilegx_be.c:480 eelf_i386.c:5326 eelf_i386_be.c:521
-#: eelf_i386_fbsd.c:603 eelf_i386_haiku.c:603 eelf_i386_ldso.c:536
-#: eelf_i386_sol2.c:693 eelf_i386_vxworks.c:588 eelf_iamcu.c:561
-#: eelf_mipsel_haiku.c:695 eelf_s390.c:480 eelf_x86_64.c:5762
-#: eelf_x86_64_cloudabi.c:661 eelf_x86_64_fbsd.c:661 eelf_x86_64_haiku.c:661
-#: eelf_x86_64_sol2.c:793 eh8300elf.c:313 eh8300elf_linux.c:313
-#: eh8300helf.c:313 eh8300helf_linux.c:313 eh8300hnelf.c:313 eh8300self.c:313
-#: eh8300self_linux.c:313 eh8300snelf.c:313 eh8300sxelf.c:313
-#: eh8300sxelf_linux.c:313 eh8300sxnelf.c:313 ehppa64linux.c:450
-#: ehppaelf.c:581 ehppalinux.c:763 ehppanbsd.c:763 ehppaobsd.c:763
-#: ei386lynx.c:465 ei386moss.c:465 ei386nto.c:465 em32relf.c:313
-#: em32relf_linux.c:475 em32rlelf.c:313 em32rlelf_linux.c:475
-#: em68hc11elf.c:583 em68hc11elfb.c:583 em68hc12elf.c:583 em68hc12elfb.c:583
-#: em68kelf.c:637 em68kelfnbsd.c:637 emn10300.c:450 ends32belf.c:434
-#: ends32belf16m.c:434 ends32belf_linux.c:567 ends32elf.c:434
-#: ends32elf16m.c:434 ends32elf_linux.c:567 enios2elf.c:600 enios2linux.c:741
-#: epruelf.c:319 escore3_elf.c:470 escore7_elf.c:470 eshelf.c:450
-#: eshelf_fd.c:480 eshelf_linux.c:480 eshelf_nbsd.c:450 eshelf_nto.c:450
-#: eshelf_uclinux.c:450 eshelf_vxworks.c:487 eshlelf.c:450 eshlelf_fd.c:480
-#: eshlelf_linux.c:480 eshlelf_nbsd.c:450 eshlelf_nto.c:450
-#: eshlelf_vxworks.c:487 ev850.c:345 ev850_rh850.c:345
-msgid "%P: warning: -z %s ignored\n"
-msgstr ""
-
-#: eaarch64cloudabi.c:834 eaarch64cloudabib.c:834 eaarch64elf.c:829
-#: eaarch64elf32.c:829 eaarch64elf32b.c:829 eaarch64elfb.c:829
-#: eaarch64fbsd.c:834 eaarch64fbsdb.c:834 eaarch64haiku.c:834
-#: eaarch64linux.c:834 eaarch64linux32.c:834 eaarch64linux32b.c:834
-#: eaarch64linuxb.c:834 eaarch64nto.c:1002
+#: eaarch64cloudabi.c:865 eaarch64cloudabib.c:865 eaarch64elf.c:865
+#: eaarch64elf32.c:865 eaarch64elf32b.c:865 eaarch64elfb.c:865
+#: eaarch64fbsd.c:870 eaarch64fbsdb.c:870 eaarch64haiku.c:865
+#: eaarch64linux.c:870 eaarch64linux32.c:870 eaarch64linux32b.c:870
+#: eaarch64linuxb.c:870 eaarch64nto.c:1027
msgid "%P: error: unrecognized option for --fix-cortex-a53-843419: %s\n"
msgstr ""
-#: eaarch64cloudabi.c:863 eaarch64cloudabib.c:863 eaarch64elf.c:858
-#: eaarch64elf32.c:858 eaarch64elf32b.c:858 eaarch64elfb.c:858
-#: eaarch64fbsd.c:863 eaarch64fbsdb.c:863 eaarch64haiku.c:863
-#: eaarch64linux.c:863 eaarch64linux32.c:863 eaarch64linux32b.c:863
-#: eaarch64linuxb.c:863 eaarch64nto.c:1047 earmelf.c:1163 earmelf_fbsd.c:1163
-#: earmelf_fuchsia.c:1168 earmelf_haiku.c:1168 earmelf_linux.c:1168
-#: earmelf_linux_eabi.c:1168 earmelf_linux_fdpiceabi.c:1168
-#: earmelf_nacl.c:1168 earmelf_nbsd.c:1163 earmelf_phoenix.c:1168
-#: earmelf_vxworks.c:1203 earmelfb.c:1163 earmelfb_fbsd.c:1163
-#: earmelfb_fuchsia.c:1168 earmelfb_linux.c:1168 earmelfb_linux_eabi.c:1168
-#: earmelfb_linux_fdpiceabi.c:1168 earmelfb_nacl.c:1168 earmelfb_nbsd.c:1163
-#: earmnto.c:1138
+#: eaarch64cloudabi.c:894 eaarch64cloudabib.c:894 eaarch64elf.c:894
+#: eaarch64elf32.c:894 eaarch64elf32b.c:894 eaarch64elfb.c:894
+#: eaarch64fbsd.c:899 eaarch64fbsdb.c:899 eaarch64haiku.c:894
+#: eaarch64linux.c:899 eaarch64linux32.c:899 eaarch64linux32b.c:899
+#: eaarch64linuxb.c:899 eaarch64nto.c:1072 earmelf.c:1179 earmelf_fbsd.c:1179
+#: earmelf_fuchsia.c:1184 earmelf_haiku.c:1184 earmelf_linux.c:1184
+#: earmelf_linux_eabi.c:1184 earmelf_linux_fdpiceabi.c:1184
+#: earmelf_nacl.c:1184 earmelf_nbsd.c:1179 earmelf_phoenix.c:1184
+#: earmelf_vxworks.c:1215 earmelfb.c:1179 earmelfb_fbsd.c:1179
+#: earmelfb_fuchsia.c:1184 earmelfb_linux.c:1184 earmelfb_linux_eabi.c:1184
+#: earmelfb_linux_fdpiceabi.c:1184 earmelfb_nacl.c:1184 earmelfb_nbsd.c:1179
+#: earmnto.c:1139
#, c-format
msgid ""
" --no-enum-size-warning Don't warn about objects with incompatible\n"
" enum sizes\n"
msgstr ""
-#: eaarch64cloudabi.c:865 eaarch64cloudabib.c:865 eaarch64elf.c:860
-#: eaarch64elf32.c:860 eaarch64elf32b.c:860 eaarch64elfb.c:860
-#: eaarch64fbsd.c:865 eaarch64fbsdb.c:865 eaarch64haiku.c:865
-#: eaarch64linux.c:865 eaarch64linux32.c:865 eaarch64linux32b.c:865
-#: eaarch64linuxb.c:865 eaarch64nto.c:1049 earmelf.c:1165 earmelf_fbsd.c:1165
-#: earmelf_fuchsia.c:1170 earmelf_haiku.c:1170 earmelf_linux.c:1170
-#: earmelf_linux_eabi.c:1170 earmelf_linux_fdpiceabi.c:1170
-#: earmelf_nacl.c:1170 earmelf_nbsd.c:1165 earmelf_phoenix.c:1170
-#: earmelf_vxworks.c:1205 earmelfb.c:1165 earmelfb_fbsd.c:1165
-#: earmelfb_fuchsia.c:1170 earmelfb_linux.c:1170 earmelfb_linux_eabi.c:1170
-#: earmelfb_linux_fdpiceabi.c:1170 earmelfb_nacl.c:1170 earmelfb_nbsd.c:1165
-#: earmnto.c:1140
+#: eaarch64cloudabi.c:896 eaarch64cloudabib.c:896 eaarch64elf.c:896
+#: eaarch64elf32.c:896 eaarch64elf32b.c:896 eaarch64elfb.c:896
+#: eaarch64fbsd.c:901 eaarch64fbsdb.c:901 eaarch64haiku.c:896
+#: eaarch64linux.c:901 eaarch64linux32.c:901 eaarch64linux32b.c:901
+#: eaarch64linuxb.c:901 eaarch64nto.c:1074 earmelf.c:1181 earmelf_fbsd.c:1181
+#: earmelf_fuchsia.c:1186 earmelf_haiku.c:1186 earmelf_linux.c:1186
+#: earmelf_linux_eabi.c:1186 earmelf_linux_fdpiceabi.c:1186
+#: earmelf_nacl.c:1186 earmelf_nbsd.c:1181 earmelf_phoenix.c:1186
+#: earmelf_vxworks.c:1217 earmelfb.c:1181 earmelfb_fbsd.c:1181
+#: earmelfb_fuchsia.c:1186 earmelfb_linux.c:1186 earmelfb_linux_eabi.c:1186
+#: earmelfb_linux_fdpiceabi.c:1186 earmelfb_nacl.c:1186 earmelfb_nbsd.c:1181
+#: earmnto.c:1141
#, c-format
msgid ""
" --no-wchar-size-warning Don't warn about objects with incompatible\n"
" wchar_t sizes\n"
msgstr ""
-#: eaarch64cloudabi.c:867 eaarch64cloudabib.c:867 eaarch64elf.c:862
-#: eaarch64elf32.c:862 eaarch64elf32b.c:862 eaarch64elfb.c:862
-#: eaarch64fbsd.c:867 eaarch64fbsdb.c:867 eaarch64haiku.c:867
-#: eaarch64linux.c:867 eaarch64linux32.c:867 eaarch64linux32b.c:867
-#: eaarch64linuxb.c:867 eaarch64nto.c:1051 earmelf.c:1167 earmelf_fbsd.c:1167
-#: earmelf_fuchsia.c:1172 earmelf_haiku.c:1172 earmelf_linux.c:1172
-#: earmelf_linux_eabi.c:1172 earmelf_linux_fdpiceabi.c:1172
-#: earmelf_nacl.c:1172 earmelf_nbsd.c:1167 earmelf_phoenix.c:1172
-#: earmelf_vxworks.c:1207 earmelfb.c:1167 earmelfb_fbsd.c:1167
-#: earmelfb_fuchsia.c:1172 earmelfb_linux.c:1172 earmelfb_linux_eabi.c:1172
-#: earmelfb_linux_fdpiceabi.c:1172 earmelfb_nacl.c:1172 earmelfb_nbsd.c:1167
-#: earmnto.c:1142
+#: eaarch64cloudabi.c:898 eaarch64cloudabib.c:898 eaarch64elf.c:898
+#: eaarch64elf32.c:898 eaarch64elf32b.c:898 eaarch64elfb.c:898
+#: eaarch64fbsd.c:903 eaarch64fbsdb.c:903 eaarch64haiku.c:898
+#: eaarch64linux.c:903 eaarch64linux32.c:903 eaarch64linux32b.c:903
+#: eaarch64linuxb.c:903 eaarch64nto.c:1076 earmelf.c:1183 earmelf_fbsd.c:1183
+#: earmelf_fuchsia.c:1188 earmelf_haiku.c:1188 earmelf_linux.c:1188
+#: earmelf_linux_eabi.c:1188 earmelf_linux_fdpiceabi.c:1188
+#: earmelf_nacl.c:1188 earmelf_nbsd.c:1183 earmelf_phoenix.c:1188
+#: earmelf_vxworks.c:1219 earmelfb.c:1183 earmelfb_fbsd.c:1183
+#: earmelfb_fuchsia.c:1188 earmelfb_linux.c:1188 earmelfb_linux_eabi.c:1188
+#: earmelfb_linux_fdpiceabi.c:1188 earmelfb_nacl.c:1188 earmelfb_nbsd.c:1183
+#: earmnto.c:1143
#, c-format
msgid ""
" --pic-veneer Always generate PIC interworking veneers\n"
msgstr ""
-#: eaarch64cloudabi.c:868 eaarch64cloudabib.c:868 eaarch64elf.c:863
-#: eaarch64elf32.c:863 eaarch64elf32b.c:863 eaarch64elfb.c:863
-#: eaarch64fbsd.c:868 eaarch64fbsdb.c:868 eaarch64haiku.c:868
-#: eaarch64linux.c:868 eaarch64linux32.c:868 eaarch64linux32b.c:868
-#: eaarch64linuxb.c:868 eaarch64nto.c:1052 earmelf.c:1174 earmelf_fbsd.c:1174
-#: earmelf_fuchsia.c:1179 earmelf_haiku.c:1179 earmelf_linux.c:1179
-#: earmelf_linux_eabi.c:1179 earmelf_linux_fdpiceabi.c:1179
-#: earmelf_nacl.c:1179 earmelf_nbsd.c:1174 earmelf_phoenix.c:1179
-#: earmelf_vxworks.c:1214 earmelfb.c:1174 earmelfb_fbsd.c:1174
-#: earmelfb_fuchsia.c:1179 earmelfb_linux.c:1179 earmelfb_linux_eabi.c:1179
-#: earmelfb_linux_fdpiceabi.c:1179 earmelfb_nacl.c:1179 earmelfb_nbsd.c:1174
-#: earmnto.c:1149
+#: eaarch64cloudabi.c:899 eaarch64cloudabib.c:899 eaarch64elf.c:899
+#: eaarch64elf32.c:899 eaarch64elf32b.c:899 eaarch64elfb.c:899
+#: eaarch64fbsd.c:904 eaarch64fbsdb.c:904 eaarch64haiku.c:899
+#: eaarch64linux.c:904 eaarch64linux32.c:904 eaarch64linux32b.c:904
+#: eaarch64linuxb.c:904 eaarch64nto.c:1077 earmelf.c:1190 earmelf_fbsd.c:1190
+#: earmelf_fuchsia.c:1195 earmelf_haiku.c:1195 earmelf_linux.c:1195
+#: earmelf_linux_eabi.c:1195 earmelf_linux_fdpiceabi.c:1195
+#: earmelf_nacl.c:1195 earmelf_nbsd.c:1190 earmelf_phoenix.c:1195
+#: earmelf_vxworks.c:1226 earmelfb.c:1190 earmelfb_fbsd.c:1190
+#: earmelfb_fuchsia.c:1195 earmelfb_linux.c:1195 earmelfb_linux_eabi.c:1195
+#: earmelfb_linux_fdpiceabi.c:1195 earmelfb_nacl.c:1195 earmelfb_nbsd.c:1190
+#: earmnto.c:1150
#, c-format
msgid ""
" --stub-group-size=N Maximum size of a group of input sections "
@@ -4396,20 +4375,20 @@ msgid ""
" choose suitable defaults.\n"
msgstr ""
-#: eaarch64cloudabi.c:877 eaarch64cloudabib.c:877 eaarch64elf.c:872
-#: eaarch64elf32.c:872 eaarch64elf32b.c:872 eaarch64elfb.c:872
-#: eaarch64fbsd.c:877 eaarch64fbsdb.c:877 eaarch64haiku.c:877
-#: eaarch64linux.c:877 eaarch64linux32.c:877 eaarch64linux32b.c:877
-#: eaarch64linuxb.c:877 eaarch64nto.c:1061
+#: eaarch64cloudabi.c:908 eaarch64cloudabib.c:908 eaarch64elf.c:908
+#: eaarch64elf32.c:908 eaarch64elf32b.c:908 eaarch64elfb.c:908
+#: eaarch64fbsd.c:913 eaarch64fbsdb.c:913 eaarch64haiku.c:908
+#: eaarch64linux.c:913 eaarch64linux32.c:913 eaarch64linux32b.c:913
+#: eaarch64linuxb.c:913 eaarch64nto.c:1086
#, c-format
msgid " --fix-cortex-a53-835769 Fix erratum 835769\n"
msgstr ""
-#: eaarch64cloudabi.c:878 eaarch64cloudabib.c:878 eaarch64elf.c:873
-#: eaarch64elf32.c:873 eaarch64elf32b.c:873 eaarch64elfb.c:873
-#: eaarch64fbsd.c:878 eaarch64fbsdb.c:878 eaarch64haiku.c:878
-#: eaarch64linux.c:878 eaarch64linux32.c:878 eaarch64linux32b.c:878
-#: eaarch64linuxb.c:878 eaarch64nto.c:1062
+#: eaarch64cloudabi.c:909 eaarch64cloudabib.c:909 eaarch64elf.c:909
+#: eaarch64elf32.c:909 eaarch64elf32b.c:909 eaarch64elfb.c:909
+#: eaarch64fbsd.c:914 eaarch64fbsdb.c:914 eaarch64haiku.c:909
+#: eaarch64linux.c:914 eaarch64linux32.c:914 eaarch64linux32b.c:914
+#: eaarch64linuxb.c:914 eaarch64nto.c:1087
#, c-format
msgid ""
" --fix-cortex-a53-843419[=full|adr|adrp] Fix erratum 843419 and "
@@ -4434,22 +4413,22 @@ msgid ""
"you both a performance and size overhead.\n"
msgstr ""
-#: eaarch64cloudabi.c:889 eaarch64cloudabib.c:889 eaarch64elf.c:884
-#: eaarch64elf32.c:884 eaarch64elf32b.c:884 eaarch64elfb.c:884
-#: eaarch64fbsd.c:889 eaarch64fbsdb.c:889 eaarch64haiku.c:889
-#: eaarch64linux.c:889 eaarch64linux32.c:889 eaarch64linux32b.c:889
-#: eaarch64linuxb.c:889 eaarch64nto.c:1073
+#: eaarch64cloudabi.c:920 eaarch64cloudabib.c:920 eaarch64elf.c:920
+#: eaarch64elf32.c:920 eaarch64elf32b.c:920 eaarch64elfb.c:920
+#: eaarch64fbsd.c:925 eaarch64fbsdb.c:925 eaarch64haiku.c:920
+#: eaarch64linux.c:925 eaarch64linux32.c:925 eaarch64linux32b.c:925
+#: eaarch64linuxb.c:925 eaarch64nto.c:1098
#, c-format
msgid ""
" --no-apply-dynamic-relocs Do not apply link-time values for dynamic "
"relocations\n"
msgstr ""
-#: eaarch64cloudabi.c:890 eaarch64cloudabib.c:890 eaarch64elf.c:885
-#: eaarch64elf32.c:885 eaarch64elf32b.c:885 eaarch64elfb.c:885
-#: eaarch64fbsd.c:890 eaarch64fbsdb.c:890 eaarch64haiku.c:890
-#: eaarch64linux.c:890 eaarch64linux32.c:890 eaarch64linux32b.c:890
-#: eaarch64linuxb.c:890 eaarch64nto.c:1074
+#: eaarch64cloudabi.c:921 eaarch64cloudabib.c:921 eaarch64elf.c:921
+#: eaarch64elf32.c:921 eaarch64elf32b.c:921 eaarch64elfb.c:921
+#: eaarch64fbsd.c:926 eaarch64fbsdb.c:926 eaarch64haiku.c:921
+#: eaarch64linux.c:926 eaarch64linux32.c:926 eaarch64linux32b.c:926
+#: eaarch64linuxb.c:926 eaarch64nto.c:1099
#, c-format
msgid ""
" -z force-bti Turn on Branch Target Identification "
@@ -4457,259 +4436,259 @@ msgid ""
"inputs\n"
msgstr ""
-#: eaarch64cloudabi.c:891 eaarch64cloudabib.c:891 eaarch64elf.c:886
-#: eaarch64elf32.c:886 eaarch64elf32b.c:886 eaarch64elfb.c:886
-#: eaarch64fbsd.c:891 eaarch64fbsdb.c:891 eaarch64haiku.c:891
-#: eaarch64linux.c:891 eaarch64linux32.c:891 eaarch64linux32b.c:891
-#: eaarch64linuxb.c:891 eaarch64nto.c:1075
+#: eaarch64cloudabi.c:922 eaarch64cloudabib.c:922 eaarch64elf.c:922
+#: eaarch64elf32.c:922 eaarch64elf32b.c:922 eaarch64elfb.c:922
+#: eaarch64fbsd.c:927 eaarch64fbsdb.c:927 eaarch64haiku.c:922
+#: eaarch64linux.c:927 eaarch64linux32.c:927 eaarch64linux32b.c:927
+#: eaarch64linuxb.c:927 eaarch64nto.c:1100
#, c-format
msgid ""
" -z pac-plt Protect PLTs with Pointer Authentication.\n"
msgstr ""
-#: eaarch64nto.c:400
+#: eaarch64nto.c:401
msgid "%F%P: cannot create .note section in stub BFD.\n"
msgstr ""
-#: eaarch64nto.c:409
+#: eaarch64nto.c:410
msgid "%F%P: failed to create .note section\n"
msgstr ""
-#: eaarch64nto.c:450
+#: eaarch64nto.c:451
msgid "%F%P: %pB: can't read contents of section .note: %E\n"
msgstr ""
-#: eaarch64nto.c:460 eaarch64nto.c:464
+#: eaarch64nto.c:461 eaarch64nto.c:465
msgid "%P: %pB: warning: duplicated QNX stack .note detected\n"
msgstr ""
-#: eaarch64nto.c:493
+#: eaarch64nto.c:494
msgid "%F%P: error: --lazy-stack must follow -zstack-size=<size>\n"
msgstr ""
-#: eaarch64nto.c:1077
+#: eaarch64nto.c:1102
#, c-format
msgid ""
" --stack <size> Set size of the initial stack\n"
" --lazy-stack\t\t Set lazy allocation of stack\n"
msgstr ""
-#: eaarch64pe.c:423 earm64pe.c:423 earm_wince_pe.c:416 earmpe.c:416
-#: ei386pe.c:416 ei386pe_posix.c:416 ei386pep.c:423 emcorepe.c:416 eshpe.c:416
+#: eaarch64pe.c:350 earm64pe.c:350 earm_wince_pe.c:338 earmpe.c:338
+#: ei386pe.c:338 ei386pe_posix.c:338 ei386pep.c:350 emcorepe.c:338 eshpe.c:338
#, c-format
msgid ""
" --base_file <basefile> Generate a base file for relocatable "
"DLLs\n"
msgstr ""
-#: eaarch64pe.c:424 earm64pe.c:424 earm_wince_pe.c:417 earmpe.c:417
-#: ei386pe.c:417 ei386pe_posix.c:417 ei386pep.c:424 emcorepe.c:417 eshpe.c:417
+#: eaarch64pe.c:351 earm64pe.c:351 earm_wince_pe.c:339 earmpe.c:339
+#: ei386pe.c:339 ei386pe_posix.c:339 ei386pep.c:351 emcorepe.c:339 eshpe.c:339
#, c-format
msgid ""
" --dll Set image base to the default for DLLs\n"
msgstr ""
-#: eaarch64pe.c:425 earm64pe.c:425 earm_wince_pe.c:418 earmpe.c:418
-#: ei386pe.c:418 ei386pe_posix.c:418 ei386pep.c:425 emcorepe.c:418 eshpe.c:418
+#: eaarch64pe.c:352 earm64pe.c:352 earm_wince_pe.c:340 earmpe.c:340
+#: ei386pe.c:340 ei386pe_posix.c:340 ei386pep.c:352 emcorepe.c:340 eshpe.c:340
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
msgstr ""
-#: eaarch64pe.c:426 earm64pe.c:426 earm_wince_pe.c:419 earmpe.c:419
-#: ei386pe.c:419 ei386pe_posix.c:419 ei386pep.c:426 emcorepe.c:419 eshpe.c:419
+#: eaarch64pe.c:353 earm64pe.c:353 earm_wince_pe.c:341 earmpe.c:341
+#: ei386pe.c:341 ei386pe_posix.c:341 ei386pep.c:353 emcorepe.c:341 eshpe.c:341
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
msgstr ""
-#: eaarch64pe.c:427 earm64pe.c:427 earm_wince_pe.c:420 earmpe.c:420
-#: ei386pe.c:420 ei386pe_posix.c:420 ei386pep.c:427 emcorepe.c:420 eshpe.c:420
+#: eaarch64pe.c:354 earm64pe.c:354 earm_wince_pe.c:342 earmpe.c:342
+#: ei386pe.c:342 ei386pe_posix.c:342 ei386pep.c:354 emcorepe.c:342 eshpe.c:342
#, c-format
msgid ""
" --image-base <address> Set start address of the executable\n"
msgstr ""
-#: eaarch64pe.c:428 earm64pe.c:428 earm_wince_pe.c:421 earmpe.c:421
-#: ei386pe.c:421 ei386pe_posix.c:421 ei386pep.c:428 emcorepe.c:421 eshpe.c:421
+#: eaarch64pe.c:355 earm64pe.c:355 earm_wince_pe.c:343 earmpe.c:343
+#: ei386pe.c:343 ei386pe_posix.c:343 ei386pep.c:355 emcorepe.c:343 eshpe.c:343
#, c-format
msgid ""
" --major-image-version <number> Set version number of the executable\n"
msgstr ""
-#: eaarch64pe.c:429 earm64pe.c:429 earm_wince_pe.c:422 earmpe.c:422
-#: ei386pe.c:422 ei386pe_posix.c:422 ei386pep.c:429 emcorepe.c:422 eshpe.c:422
+#: eaarch64pe.c:356 earm64pe.c:356 earm_wince_pe.c:344 earmpe.c:344
+#: ei386pe.c:344 ei386pe_posix.c:344 ei386pep.c:356 emcorepe.c:344 eshpe.c:344
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr ""
-#: eaarch64pe.c:430 earm64pe.c:430 earm_wince_pe.c:423 earmpe.c:423
-#: ei386pe.c:423 ei386pe_posix.c:423 ei386pep.c:430 emcorepe.c:423 eshpe.c:423
+#: eaarch64pe.c:357 earm64pe.c:357 earm_wince_pe.c:345 earmpe.c:345
+#: ei386pe.c:345 ei386pe_posix.c:345 ei386pep.c:357 emcorepe.c:345 eshpe.c:345
#, c-format
msgid ""
" --major-subsystem-version <number> Set minimum required OS subsystem "
"version\n"
msgstr ""
-#: eaarch64pe.c:431 earm64pe.c:431 earm_wince_pe.c:424 earmpe.c:424
-#: ei386pe.c:424 ei386pe_posix.c:424 ei386pep.c:431 emcorepe.c:424 eshpe.c:424
+#: eaarch64pe.c:358 earm64pe.c:358 earm_wince_pe.c:346 earmpe.c:346
+#: ei386pe.c:346 ei386pe_posix.c:346 ei386pep.c:358 emcorepe.c:346 eshpe.c:346
#, c-format
msgid ""
" --minor-image-version <number> Set revision number of the executable\n"
msgstr ""
-#: eaarch64pe.c:432 earm64pe.c:432 earm_wince_pe.c:425 earmpe.c:425
-#: ei386pe.c:425 ei386pe_posix.c:425 ei386pep.c:432 emcorepe.c:425 eshpe.c:425
+#: eaarch64pe.c:359 earm64pe.c:359 earm_wince_pe.c:347 earmpe.c:347
+#: ei386pe.c:347 ei386pe_posix.c:347 ei386pep.c:359 emcorepe.c:347 eshpe.c:347
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
msgstr ""
-#: eaarch64pe.c:433 earm64pe.c:433 earm_wince_pe.c:426 earmpe.c:426
-#: ei386pe.c:426 ei386pe_posix.c:426 ei386pep.c:433 emcorepe.c:426 eshpe.c:426
+#: eaarch64pe.c:360 earm64pe.c:360 earm_wince_pe.c:348 earmpe.c:348
+#: ei386pe.c:348 ei386pe_posix.c:348 ei386pep.c:360 emcorepe.c:348 eshpe.c:348
#, c-format
msgid ""
" --minor-subsystem-version <number> Set minimum required OS subsystem "
"revision\n"
msgstr ""
-#: eaarch64pe.c:434 earm64pe.c:434 earm_wince_pe.c:427 earmpe.c:427
-#: ei386pe.c:427 ei386pe_posix.c:427 ei386pep.c:434 emcorepe.c:427 eshpe.c:427
+#: eaarch64pe.c:361 earm64pe.c:361 earm_wince_pe.c:349 earmpe.c:349
+#: ei386pe.c:349 ei386pe_posix.c:349 ei386pep.c:361 emcorepe.c:349 eshpe.c:349
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
msgstr ""
-#: eaarch64pe.c:435 earm64pe.c:435 earm_wince_pe.c:428 earmpe.c:428
-#: ei386pe.c:428 ei386pe_posix.c:428 ei386pep.c:435 emcorepe.c:428 eshpe.c:428
+#: eaarch64pe.c:362 earm64pe.c:362 earm_wince_pe.c:350 earmpe.c:350
+#: ei386pe.c:350 ei386pe_posix.c:350 ei386pep.c:362 emcorepe.c:350 eshpe.c:350
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
msgstr ""
-#: eaarch64pe.c:436 earm64pe.c:436 earm_wince_pe.c:429 earmpe.c:429
-#: ei386pe.c:429 ei386pe_posix.c:429 ei386pep.c:436 emcorepe.c:429 eshpe.c:429
+#: eaarch64pe.c:363 earm64pe.c:363 earm_wince_pe.c:351 earmpe.c:351
+#: ei386pe.c:351 ei386pe_posix.c:351 ei386pep.c:363 emcorepe.c:351 eshpe.c:351
#, c-format
msgid ""
" --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
msgstr ""
-#: eaarch64pe.c:437 earm64pe.c:437 earm_wince_pe.c:430 earmpe.c:430
-#: ei386pe.c:430 ei386pe_posix.c:430 ei386pep.c:437 emcorepe.c:430 eshpe.c:430
+#: eaarch64pe.c:364 earm64pe.c:364 earm_wince_pe.c:352 earmpe.c:352
+#: ei386pe.c:352 ei386pe_posix.c:352 ei386pep.c:364 emcorepe.c:352 eshpe.c:352
#, c-format
msgid ""
" --support-old-code Support interworking with old code\n"
msgstr ""
-#: eaarch64pe.c:438 earm64pe.c:438 earm_wince_pe.c:431 earmpe.c:431
-#: ei386pe.c:431 ei386pe_posix.c:431 ei386pep.c:438 emcorepe.c:431 eshpe.c:431
+#: eaarch64pe.c:365 earm64pe.c:365 earm_wince_pe.c:353 earmpe.c:353
+#: ei386pe.c:353 ei386pe_posix.c:353 ei386pep.c:365 emcorepe.c:353 eshpe.c:353
#, c-format
msgid ""
" --[no-]leading-underscore Set explicit symbol underscore prefix "
"mode\n"
msgstr ""
-#: eaarch64pe.c:439 earm64pe.c:439 ei386pep.c:439
+#: eaarch64pe.c:366 earm64pe.c:366 ei386pep.c:366
#, c-format
msgid ""
" --[no-]insert-timestamp Use a real timestamp rather than zero "
"(default)\n"
msgstr ""
-#: eaarch64pe.c:440 earm64pe.c:440 earm_wince_pe.c:434 earmpe.c:434
-#: ei386pe.c:434 ei386pe_posix.c:434 ei386pep.c:440 emcorepe.c:434 eshpe.c:434
+#: eaarch64pe.c:367 earm64pe.c:367 earm_wince_pe.c:356 earmpe.c:356
+#: ei386pe.c:356 ei386pe_posix.c:356 ei386pep.c:367 emcorepe.c:356 eshpe.c:356
#, c-format
msgid ""
" This makes binaries non-deterministic\n"
msgstr ""
-#: eaarch64pe.c:442 earm64pe.c:442 earm_wince_pe.c:436 earmpe.c:436
-#: ei386pe.c:436 ei386pe_posix.c:436 ei386pep.c:442 emcorepe.c:436 eshpe.c:436
+#: eaarch64pe.c:369 earm64pe.c:369 earm_wince_pe.c:358 earmpe.c:358
+#: ei386pe.c:358 ei386pe_posix.c:358 ei386pep.c:369 emcorepe.c:358 eshpe.c:358
#, c-format
msgid ""
" --add-stdcall-alias Export symbols with and without @nn\n"
msgstr ""
-#: eaarch64pe.c:443 earm64pe.c:443 earm_wince_pe.c:437 earmpe.c:437
-#: ei386pe.c:437 ei386pe_posix.c:437 ei386pep.c:443 emcorepe.c:437 eshpe.c:437
+#: eaarch64pe.c:370 earm64pe.c:370 earm_wince_pe.c:359 earmpe.c:359
+#: ei386pe.c:359 ei386pe_posix.c:359 ei386pep.c:370 emcorepe.c:359 eshpe.c:359
#, c-format
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
msgstr ""
-#: eaarch64pe.c:444 earm64pe.c:444 earm_wince_pe.c:438 earmpe.c:438
-#: ei386pe.c:438 ei386pe_posix.c:438 ei386pep.c:444 emcorepe.c:438 eshpe.c:438
+#: eaarch64pe.c:371 earm64pe.c:371 earm_wince_pe.c:360 earmpe.c:360
+#: ei386pe.c:360 ei386pe_posix.c:360 ei386pep.c:371 emcorepe.c:360 eshpe.c:360
#, c-format
msgid ""
" --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
msgstr ""
-#: eaarch64pe.c:445 earm64pe.c:445 earm_wince_pe.c:439 earmpe.c:439
-#: ei386pe.c:439 ei386pe_posix.c:439 ei386pep.c:445 emcorepe.c:439 eshpe.c:439
+#: eaarch64pe.c:372 earm64pe.c:372 earm_wince_pe.c:361 earmpe.c:361
+#: ei386pe.c:361 ei386pe_posix.c:361 ei386pep.c:372 emcorepe.c:361 eshpe.c:361
#, c-format
msgid ""
" --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr ""
-#: eaarch64pe.c:446 earm64pe.c:446 earm_wince_pe.c:440 earmpe.c:440
-#: ei386pe.c:440 ei386pe_posix.c:440 ei386pep.c:446 emcorepe.c:440 eshpe.c:440
+#: eaarch64pe.c:373 earm64pe.c:373 earm_wince_pe.c:362 earmpe.c:362
+#: ei386pe.c:362 ei386pe_posix.c:362 ei386pep.c:373 emcorepe.c:362 eshpe.c:362
#, c-format
msgid ""
" --exclude-all-symbols Exclude all symbols from automatic "
"export\n"
msgstr ""
-#: eaarch64pe.c:447 earm64pe.c:447 earm_wince_pe.c:441 earmpe.c:441
-#: ei386pe.c:441 ei386pe_posix.c:441 ei386pep.c:447 emcorepe.c:441 eshpe.c:441
+#: eaarch64pe.c:374 earm64pe.c:374 earm_wince_pe.c:363 earmpe.c:363
+#: ei386pe.c:363 ei386pe_posix.c:363 ei386pep.c:374 emcorepe.c:363 eshpe.c:363
#, c-format
msgid ""
" --exclude-libs lib,lib,... Exclude libraries from automatic "
"export\n"
msgstr ""
-#: eaarch64pe.c:448 earm64pe.c:448 earm_wince_pe.c:442 earmpe.c:442
-#: ei386pe.c:442 ei386pe_posix.c:442 ei386pep.c:448 emcorepe.c:442 eshpe.c:442
+#: eaarch64pe.c:375 earm64pe.c:375 earm_wince_pe.c:364 earmpe.c:364
+#: ei386pe.c:364 ei386pe_posix.c:364 ei386pep.c:375 emcorepe.c:364 eshpe.c:364
#, c-format
msgid " --exclude-modules-for-implib mod,mod,...\n"
msgstr ""
-#: eaarch64pe.c:449 earm64pe.c:449 earm_wince_pe.c:443 earmpe.c:443
-#: ei386pe.c:443 ei386pe_posix.c:443 ei386pep.c:449 emcorepe.c:443 eshpe.c:443
+#: eaarch64pe.c:376 earm64pe.c:376 earm_wince_pe.c:365 earmpe.c:365
+#: ei386pe.c:365 ei386pe_posix.c:365 ei386pep.c:376 emcorepe.c:365 eshpe.c:365
#, c-format
msgid ""
" Exclude objects, archive members from "
"auto\n"
msgstr ""
-#: eaarch64pe.c:450 earm64pe.c:450 ei386pep.c:450
+#: eaarch64pe.c:377 earm64pe.c:377 ei386pep.c:377
#, c-format
msgid ""
" export, place into import library "
"instead\n"
msgstr ""
-#: eaarch64pe.c:451 earm64pe.c:451 earm_wince_pe.c:445 earmpe.c:445
-#: ei386pe.c:445 ei386pe_posix.c:445 ei386pep.c:451 emcorepe.c:445 eshpe.c:445
+#: eaarch64pe.c:378 earm64pe.c:378 earm_wince_pe.c:367 earmpe.c:367
+#: ei386pe.c:367 ei386pe_posix.c:367 ei386pep.c:378 emcorepe.c:367 eshpe.c:367
#, c-format
msgid ""
" --export-all-symbols Automatically export all globals to "
"DLL\n"
msgstr ""
-#: eaarch64pe.c:452 earm64pe.c:452 earm_wince_pe.c:446 earmpe.c:446
-#: ei386pe.c:446 ei386pe_posix.c:446 ei386pep.c:452 emcorepe.c:446 eshpe.c:446
+#: eaarch64pe.c:379 earm64pe.c:379 earm_wince_pe.c:368 earmpe.c:368
+#: ei386pe.c:368 ei386pe_posix.c:368 ei386pep.c:379 emcorepe.c:368 eshpe.c:368
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
msgstr ""
-#: eaarch64pe.c:453 earm64pe.c:453 earm_wince_pe.c:447 earmpe.c:447
-#: ei386pe.c:447 ei386pe_posix.c:447 ei386pep.c:453 emcorepe.c:447 eshpe.c:447
+#: eaarch64pe.c:380 earm64pe.c:380 earm_wince_pe.c:369 earmpe.c:369
+#: ei386pe.c:369 ei386pe_posix.c:369 ei386pep.c:380 emcorepe.c:369 eshpe.c:369
#, c-format
msgid ""
" --output-def <file> Generate a .DEF file for the built DLL\n"
msgstr ""
-#: eaarch64pe.c:454 earm64pe.c:454 earm_wince_pe.c:448 earmpe.c:448
-#: ei386pe.c:448 ei386pe_posix.c:448 ei386pep.c:454 emcorepe.c:448 eshpe.c:448
+#: eaarch64pe.c:381 earm64pe.c:381 earm_wince_pe.c:370 earmpe.c:370
+#: ei386pe.c:370 ei386pe_posix.c:370 ei386pep.c:381 emcorepe.c:370 eshpe.c:370
#, c-format
msgid " --warn-duplicate-exports Warn about duplicate exports\n"
msgstr ""
-#: eaarch64pe.c:455 earm64pe.c:455 ei386pep.c:455
+#: eaarch64pe.c:382 earm64pe.c:382 ei386pep.c:382
#, c-format
msgid ""
" --compat-implib Create backward compatible import "
@@ -4717,7 +4696,7 @@ msgid ""
" create __imp_<SYMBOL> as well\n"
msgstr ""
-#: eaarch64pe.c:456 earm64pe.c:456 ei386pep.c:456
+#: eaarch64pe.c:383 earm64pe.c:383 ei386pep.c:383
#, c-format
msgid ""
" --enable-auto-image-base Automatically choose image base for "
@@ -4725,15 +4704,15 @@ msgid ""
" unless user specifies one\n"
msgstr ""
-#: eaarch64pe.c:457 earm64pe.c:457 ei386pep.c:457
+#: eaarch64pe.c:384 earm64pe.c:384 ei386pep.c:384
#, c-format
msgid ""
" --disable-auto-image-base Do not auto-choose image base "
"(default)\n"
msgstr ""
-#: eaarch64pe.c:458 earm64pe.c:458 earm_wince_pe.c:452 earmpe.c:452
-#: ei386pe.c:452 ei386pe_posix.c:452 ei386pep.c:458 emcorepe.c:452 eshpe.c:452
+#: eaarch64pe.c:385 earm64pe.c:385 earm_wince_pe.c:374 earmpe.c:374
+#: ei386pe.c:374 ei386pe_posix.c:374 ei386pep.c:385 emcorepe.c:374 eshpe.c:374
#, c-format
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll "
@@ -4743,23 +4722,23 @@ msgid ""
" in preference to lib<basename>.dll \n"
msgstr ""
-#: eaarch64pe.c:459 earm64pe.c:459 earm_wince_pe.c:453 earmpe.c:453
-#: ei386pe.c:453 ei386pe_posix.c:453 ei386pep.c:459 emcorepe.c:453 eshpe.c:453
+#: eaarch64pe.c:386 earm64pe.c:386 earm_wince_pe.c:375 earmpe.c:375
+#: ei386pe.c:375 ei386pe_posix.c:375 ei386pep.c:386 emcorepe.c:375 eshpe.c:375
#, c-format
msgid ""
" --enable-auto-import Do sophisticated linking of _sym to\n"
" __imp_sym for DATA references\n"
msgstr ""
-#: eaarch64pe.c:460 earm64pe.c:460 earm_wince_pe.c:454 earmpe.c:454
-#: ei386pe.c:454 ei386pe_posix.c:454 ei386pep.c:460 emcorepe.c:454 eshpe.c:454
+#: eaarch64pe.c:387 earm64pe.c:387 earm_wince_pe.c:376 earmpe.c:376
+#: ei386pe.c:376 ei386pe_posix.c:376 ei386pep.c:387 emcorepe.c:376 eshpe.c:376
#, c-format
msgid ""
" --disable-auto-import Do not auto-import DATA items from "
"DLLs\n"
msgstr ""
-#: eaarch64pe.c:461 earm64pe.c:461 ei386pep.c:461
+#: eaarch64pe.c:388 earm64pe.c:388 ei386pep.c:388
#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
@@ -4768,7 +4747,7 @@ msgid ""
" runtime\n"
msgstr ""
-#: eaarch64pe.c:462 earm64pe.c:462 ei386pep.c:462
+#: eaarch64pe.c:389 earm64pe.c:389 ei386pep.c:389
#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations "
@@ -4776,7 +4755,7 @@ msgid ""
" auto-imported DATA\n"
msgstr ""
-#: eaarch64pe.c:463 earm64pe.c:463 ei386pep.c:463
+#: eaarch64pe.c:390 earm64pe.c:390 ei386pep.c:390
#, c-format
msgid ""
" --enable-extra-pep-debug Enable verbose debug output when "
@@ -4785,16 +4764,16 @@ msgid ""
"import)\n"
msgstr ""
-#: eaarch64pe.c:464 earm64pe.c:464 earm_wince_pe.c:461 earmpe.c:461
-#: ei386pe.c:461 ei386pe_posix.c:461 ei386pep.c:464 emcorepe.c:461 eshpe.c:461
+#: eaarch64pe.c:391 earm64pe.c:391 earm_wince_pe.c:383 earmpe.c:383
+#: ei386pe.c:383 ei386pe_posix.c:383 ei386pep.c:391 emcorepe.c:383 eshpe.c:383
#, c-format
msgid ""
" --enable-long-section-names Use long COFF section names even in\n"
" executable image files\n"
msgstr ""
-#: eaarch64pe.c:465 earm64pe.c:465 earm_wince_pe.c:462 earmpe.c:462
-#: ei386pe.c:462 ei386pe_posix.c:462 ei386pep.c:465 emcorepe.c:462 eshpe.c:462
+#: eaarch64pe.c:392 earm64pe.c:392 earm_wince_pe.c:384 earmpe.c:384
+#: ei386pe.c:384 ei386pe_posix.c:384 ei386pep.c:392 emcorepe.c:384 eshpe.c:384
#, c-format
msgid ""
" --disable-long-section-names Never use long COFF section names, "
@@ -4802,7 +4781,7 @@ msgid ""
" in object files\n"
msgstr ""
-#: eaarch64pe.c:466 earm64pe.c:466 ei386pep.c:466
+#: eaarch64pe.c:393 earm64pe.c:393 ei386pep.c:393
#, c-format
msgid ""
" --[disable-]high-entropy-va Image is compatible with 64-bit address "
@@ -4810,8 +4789,8 @@ msgid ""
" layout randomization (ASLR)\n"
msgstr ""
-#: eaarch64pe.c:467 earm64pe.c:467 earm_wince_pe.c:463 earmpe.c:463
-#: ei386pe.c:463 ei386pe_posix.c:463 ei386pep.c:467 emcorepe.c:463 eshpe.c:463
+#: eaarch64pe.c:394 earm64pe.c:394 earm_wince_pe.c:385 earmpe.c:385
+#: ei386pe.c:385 ei386pe_posix.c:385 ei386pep.c:394 emcorepe.c:385 eshpe.c:385
#, c-format
msgid ""
" --[disable-]dynamicbase Image base address may be relocated "
@@ -4820,29 +4799,29 @@ msgid ""
"(ASLR)\n"
msgstr ""
-#: eaarch64pe.c:468 earm64pe.c:468 earm_wince_pe.c:464 earmpe.c:464
-#: ei386pe.c:464 ei386pe_posix.c:464 ei386pep.c:468 emcorepe.c:464 eshpe.c:464
+#: eaarch64pe.c:395 earm64pe.c:395 earm_wince_pe.c:386 earmpe.c:386
+#: ei386pe.c:386 ei386pe_posix.c:386 ei386pep.c:395 emcorepe.c:386 eshpe.c:386
#, c-format
msgid " --enable-reloc-section Create the base relocation table\n"
msgstr ""
-#: eaarch64pe.c:469 earm64pe.c:469 earm_wince_pe.c:465 earmpe.c:465
-#: ei386pe.c:465 ei386pe_posix.c:465 ei386pep.c:469 emcorepe.c:465 eshpe.c:465
+#: eaarch64pe.c:396 earm64pe.c:396 earm_wince_pe.c:387 earmpe.c:387
+#: ei386pe.c:387 ei386pe_posix.c:387 ei386pep.c:396 emcorepe.c:387 eshpe.c:387
#, c-format
msgid ""
" --disable-reloc-section Do not create the base relocation "
"table\n"
msgstr ""
-#: eaarch64pe.c:470 earm64pe.c:470 earm_wince_pe.c:466 earmpe.c:466
-#: ei386pe.c:466 ei386pe_posix.c:466 ei386pep.c:470 emcorepe.c:466 eshpe.c:466
+#: eaarch64pe.c:397 earm64pe.c:397 earm_wince_pe.c:388 earmpe.c:388
+#: ei386pe.c:388 ei386pe_posix.c:388 ei386pep.c:397 emcorepe.c:388 eshpe.c:388
#, c-format
msgid ""
" --[disable-]forceinteg Code integrity checks are enforced\n"
msgstr ""
-#: eaarch64pe.c:471 earm64pe.c:471 earm_wince_pe.c:467 earmpe.c:467
-#: ei386pe.c:467 ei386pe_posix.c:467 ei386pep.c:471 emcorepe.c:467 eshpe.c:467
+#: eaarch64pe.c:398 earm64pe.c:398 earm_wince_pe.c:389 earmpe.c:389
+#: ei386pe.c:389 ei386pe_posix.c:389 ei386pep.c:398 emcorepe.c:389 eshpe.c:389
#, c-format
msgid ""
" --[disable-]nxcompat Image is compatible with data "
@@ -4850,15 +4829,15 @@ msgid ""
" prevention\n"
msgstr ""
-#: eaarch64pe.c:472 earm64pe.c:472 earm_wince_pe.c:468 earmpe.c:468
-#: ei386pe.c:468 ei386pe_posix.c:468 ei386pep.c:472 emcorepe.c:468 eshpe.c:468
+#: eaarch64pe.c:399 earm64pe.c:399 earm_wince_pe.c:390 earmpe.c:390
+#: ei386pe.c:390 ei386pe_posix.c:390 ei386pep.c:399 emcorepe.c:390 eshpe.c:390
#, c-format
msgid ""
" --[disable-]no-isolation Image understands isolation but do not\n"
" isolate the image\n"
msgstr ""
-#: eaarch64pe.c:473 earm64pe.c:473 ei386pep.c:473
+#: eaarch64pe.c:400 earm64pe.c:400 ei386pep.c:400
#, c-format
msgid ""
" --[disable-]no-seh Image does not use SEH; no SE handler "
@@ -4866,256 +4845,256 @@ msgid ""
" be called in this image\n"
msgstr ""
-#: eaarch64pe.c:474 earm64pe.c:474 earm_wince_pe.c:470 earmpe.c:470
-#: ei386pe.c:470 ei386pe_posix.c:470 ei386pep.c:474 emcorepe.c:470 eshpe.c:470
+#: eaarch64pe.c:401 earm64pe.c:401 earm_wince_pe.c:392 earmpe.c:392
+#: ei386pe.c:392 ei386pe_posix.c:392 ei386pep.c:401 emcorepe.c:392 eshpe.c:392
#, c-format
msgid " --[disable-]no-bind Do not bind this image\n"
msgstr ""
-#: eaarch64pe.c:475 earm64pe.c:475 earm_wince_pe.c:471 earmpe.c:471
-#: ei386pe.c:471 ei386pe_posix.c:471 ei386pep.c:475 emcorepe.c:471 eshpe.c:471
+#: eaarch64pe.c:402 earm64pe.c:402 earm_wince_pe.c:393 earmpe.c:393
+#: ei386pe.c:393 ei386pe_posix.c:393 ei386pep.c:402 emcorepe.c:393 eshpe.c:393
#, c-format
msgid " --[disable-]wdmdriver Driver uses the WDM model\n"
msgstr ""
-#: eaarch64pe.c:476 earm64pe.c:476 earm_wince_pe.c:472 earmpe.c:472
-#: ei386pe.c:472 ei386pe_posix.c:472 ei386pep.c:476 emcorepe.c:472 eshpe.c:472
+#: eaarch64pe.c:403 earm64pe.c:403 earm_wince_pe.c:394 earmpe.c:394
+#: ei386pe.c:394 ei386pe_posix.c:394 ei386pep.c:403 emcorepe.c:394 eshpe.c:394
#, c-format
msgid " --[disable-]tsaware Image is Terminal Server aware\n"
msgstr ""
-#: eaarch64pe.c:477 earm64pe.c:477 earm_wince_pe.c:473 earmpe.c:473
-#: ei386pe.c:473 ei386pe_posix.c:473 ei386pep.c:477 emcorepe.c:473 eshpe.c:473
+#: eaarch64pe.c:404 earm64pe.c:404 earm_wince_pe.c:395 earmpe.c:395
+#: ei386pe.c:395 ei386pe_posix.c:395 ei386pep.c:404 emcorepe.c:395 eshpe.c:395
#, c-format
msgid " --build-id[=STYLE] Generate build ID\n"
msgstr ""
-#: eaarch64pe.c:479 earm64pe.c:479 earm_wince_pe.c:475 earmpe.c:475
-#: ei386pe.c:475 ei386pe_posix.c:475 ei386pep.c:479 emcorepe.c:475 eshpe.c:475
+#: eaarch64pe.c:406 earm64pe.c:406 earm_wince_pe.c:397 earmpe.c:397
+#: ei386pe.c:397 ei386pe_posix.c:397 ei386pep.c:406 emcorepe.c:397 eshpe.c:397
#, c-format
msgid " --pdb=[FILENAME] Generate PDB file\n"
msgstr ""
-#: eaarch64pe.c:608 earm64pe.c:608 earm_wince_pe.c:624 earmpe.c:624
-#: ei386beos.c:205 ei386pe.c:624 ei386pe_posix.c:624 ei386pep.c:608
-#: emcorepe.c:624 eshpe.c:624
+#: eaarch64pe.c:535 earm64pe.c:535 earm_wince_pe.c:546 earmpe.c:546
+#: ei386beos.c:189 ei386pe.c:546 ei386pe_posix.c:546 ei386pep.c:535
+#: emcorepe.c:546 eshpe.c:546
msgid "%P: warning: bad version number in -subsystem option\n"
msgstr ""
-#: eaarch64pe.c:633 earm64pe.c:633 earm_wince_pe.c:649 earmpe.c:649
-#: ei386beos.c:222 ei386pe.c:649 ei386pe_posix.c:649 ei386pep.c:633
-#: emcorepe.c:649 eshpe.c:649
+#: eaarch64pe.c:560 earm64pe.c:560 earm_wince_pe.c:571 earmpe.c:571
+#: ei386beos.c:206 ei386pe.c:571 ei386pe_posix.c:571 ei386pep.c:560
+#: emcorepe.c:571 eshpe.c:571
msgid "%F%P: invalid subsystem type %s\n"
msgstr ""
-#: eaarch64pe.c:654 earm64pe.c:654 earm_wince_pe.c:670 earmpe.c:670
-#: ei386beos.c:233 ei386pe.c:670 ei386pe_posix.c:670 ei386pep.c:654
-#: emcorepe.c:670 eshpe.c:670
+#: eaarch64pe.c:581 earm64pe.c:581 earm_wince_pe.c:592 earmpe.c:592
+#: ei386beos.c:217 ei386pe.c:592 ei386pe_posix.c:592 ei386pep.c:581
+#: emcorepe.c:592 eshpe.c:592
msgid "%F%P: invalid hex number for PE parameter '%s'\n"
msgstr ""
-#: eaarch64pe.c:671 earm64pe.c:671 earm_wince_pe.c:687 earmpe.c:687
-#: ei386beos.c:250 ei386pe.c:687 ei386pe_posix.c:687 ei386pep.c:671
-#: emcorepe.c:687 eshpe.c:687
+#: eaarch64pe.c:598 earm64pe.c:598 earm_wince_pe.c:609 earmpe.c:609
+#: ei386beos.c:234 ei386pe.c:609 ei386pe_posix.c:609 ei386pep.c:598
+#: emcorepe.c:609 eshpe.c:609
msgid "%F%P: strange hex info for PE parameter '%s'\n"
msgstr ""
-#: eaarch64pe.c:688 earm64pe.c:688 earm_wince_pe.c:703 earmpe.c:703
-#: eelf32mcore.c:325 ei386beos.c:266 ei386pe.c:703 ei386pe_posix.c:703
-#: ei386pep.c:688 emcorepe.c:703 eshpe.c:703
+#: eaarch64pe.c:615 earm64pe.c:615 earm_wince_pe.c:625 earmpe.c:625
+#: eelf32mcore.c:333 ei386beos.c:250 ei386pe.c:625 ei386pe_posix.c:625
+#: ei386pep.c:615 emcorepe.c:625 eshpe.c:625
msgid "%F%P: cannot open base file %s\n"
msgstr ""
-#: eaarch64pe.c:1005 earm64pe.c:1005 earm_wince_pe.c:1033 earmpe.c:1033
-#: ei386beos.c:362 ei386pe.c:1033 ei386pe_posix.c:1033 ei386pep.c:1005
-#: emcorepe.c:1033 eshpe.c:1033
+#: eaarch64pe.c:932 earm64pe.c:932 earm_wince_pe.c:955 earmpe.c:955
+#: ei386beos.c:346 ei386pe.c:955 ei386pe_posix.c:955 ei386pep.c:932
+#: emcorepe.c:955 eshpe.c:955
msgid "%P: warning, file alignment > section alignment\n"
msgstr ""
-#: eaarch64pe.c:1018 earm64pe.c:1018 ei386pep.c:1018
+#: eaarch64pe.c:945 earm64pe.c:945 ei386pep.c:945
msgid ""
"%P: warning: --export-dynamic is not supported for PE+ targets, did you mean "
"--export-all-symbols?\n"
msgstr ""
-#: eaarch64pe.c:1070 earm64pe.c:1070 earm_wince_pe.c:1127 earmpe.c:1127
-#: ei386pe.c:1127 ei386pe_posix.c:1127 ei386pep.c:1070 emcorepe.c:1127
-#: eshpe.c:1127
+#: eaarch64pe.c:997 earm64pe.c:997 earm_wince_pe.c:1049 earmpe.c:1049
+#: ei386pe.c:1049 ei386pe_posix.c:1049 ei386pep.c:997 emcorepe.c:1049
+#: eshpe.c:1049
msgid "%P: warning: overwriting decorated name %s with %s\n"
msgstr ""
-#: eaarch64pe.c:1115 eaarch64pe.c:1143 earm64pe.c:1115 earm64pe.c:1143
-#: ei386pep.c:1115 ei386pep.c:1143
+#: eaarch64pe.c:1042 eaarch64pe.c:1070 earm64pe.c:1042 earm64pe.c:1070
+#: ei386pep.c:1042 ei386pep.c:1070
#, c-format
msgid "warning: resolving %s by linking to %s\n"
msgstr ""
-#: eaarch64pe.c:1120 eaarch64pe.c:1148 earm64pe.c:1120 earm64pe.c:1148
-#: earm_wince_pe.c:1101 earmpe.c:1101 ei386pe.c:1101 ei386pe_posix.c:1101
-#: ei386pep.c:1120 ei386pep.c:1148 emcorepe.c:1101 eshpe.c:1101
+#: eaarch64pe.c:1047 eaarch64pe.c:1075 earm64pe.c:1047 earm64pe.c:1075
+#: earm_wince_pe.c:1023 earmpe.c:1023 ei386pe.c:1023 ei386pe_posix.c:1023
+#: ei386pep.c:1047 ei386pep.c:1075 emcorepe.c:1023 eshpe.c:1023
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
msgstr ""
-#: eaarch64pe.c:1121 eaarch64pe.c:1149 earm64pe.c:1121 earm64pe.c:1149
-#: earm_wince_pe.c:1102 earmpe.c:1102 ei386pe.c:1102 ei386pe_posix.c:1102
-#: ei386pep.c:1121 ei386pep.c:1149 emcorepe.c:1102 eshpe.c:1102
+#: eaarch64pe.c:1048 eaarch64pe.c:1076 earm64pe.c:1048 earm64pe.c:1076
+#: earm_wince_pe.c:1024 earmpe.c:1024 ei386pe.c:1024 ei386pe_posix.c:1024
+#: ei386pep.c:1048 ei386pep.c:1076 emcorepe.c:1024 eshpe.c:1024
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
msgstr ""
-#: eaarch64pe.c:1204 earm64pe.c:1204 earm_wince_pe.c:1193 earmpe.c:1193
-#: ei386pe.c:1193 ei386pe_posix.c:1193 ei386pep.c:1204 emcorepe.c:1193
-#: eshpe.c:1193
+#: eaarch64pe.c:1131 earm64pe.c:1131 earm_wince_pe.c:1115 earmpe.c:1115
+#: ei386pe.c:1115 ei386pe_posix.c:1115 ei386pep.c:1131 emcorepe.c:1115
+#: eshpe.c:1115
msgid "%P: %H: cannot get section contents - auto-import exception\n"
msgstr ""
-#: eaarch64pe.c:1334 earm64pe.c:1334 earm_wince_pe.c:1324 earmpe.c:1324
-#: ei386pe.c:1324 ei386pe_posix.c:1324 ei386pep.c:1334 emcorepe.c:1324
-#: eshpe.c:1324
+#: eaarch64pe.c:1261 earm64pe.c:1261 earm_wince_pe.c:1246 earmpe.c:1246
+#: ei386pe.c:1246 ei386pe_posix.c:1246 ei386pep.c:1261 emcorepe.c:1246
+#: eshpe.c:1246
msgid "%P: warning: .buildid section discarded, --build-id ignored\n"
msgstr ""
-#: eaarch64pe.c:1455 earm64pe.c:1455 earm_wince_pe.c:1445 earmpe.c:1445
-#: ei386pe.c:1445 ei386pe_posix.c:1445 ei386pep.c:1455 emcorepe.c:1445
-#: eshpe.c:1445
+#: eaarch64pe.c:1382 earm64pe.c:1382 earm_wince_pe.c:1367 earmpe.c:1367
+#: ei386pe.c:1367 ei386pe_posix.c:1367 ei386pep.c:1382 emcorepe.c:1367
+#: eshpe.c:1367
msgid "%P: warning: cannot create .buildid section, --build-id ignored\n"
msgstr ""
-#: eaarch64pe.c:1541 earm64pe.c:1541 earm_wince_pe.c:1530 earmpe.c:1530
-#: ei386pe.c:1530 ei386pe_posix.c:1530 ei386pep.c:1541 emcorepe.c:1530
-#: eshpe.c:1530
+#: eaarch64pe.c:1468 earm64pe.c:1468 earm_wince_pe.c:1452 earmpe.c:1452
+#: ei386pe.c:1452 ei386pe_posix.c:1452 ei386pep.c:1468 emcorepe.c:1452
+#: eshpe.c:1452
msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n"
msgstr ""
-#: eaarch64pe.c:1665 earm64pe.c:1665 earm_wince_pe.c:1673 earmpe.c:1673
-#: ei386pe.c:1673 ei386pe_posix.c:1673 ei386pep.c:1665 emcorepe.c:1673
-#: eshpe.c:1673
+#: eaarch64pe.c:1592 earm64pe.c:1592 earm_wince_pe.c:1595 earmpe.c:1595
+#: ei386pe.c:1595 ei386pe_posix.c:1595 ei386pep.c:1592 emcorepe.c:1595
+#: eshpe.c:1595
msgid "%X%P: unable to process relocs: %E\n"
msgstr ""
-#: eaix5ppc.c:330 eaix5rs6.c:330 eaixppc.c:330 eaixrs6.c:330 eppcmacos.c:330
+#: eaix5ppc.c:302 eaix5rs6.c:302 eaixppc.c:302 eaixrs6.c:302 eppcmacos.c:302
msgid "%F%P: cannot open %s\n"
msgstr ""
-#: eaix5ppc.c:377 eaix5rs6.c:377 eaixppc.c:377 eaixrs6.c:377 eppcmacos.c:377
+#: eaix5ppc.c:349 eaix5rs6.c:349 eaixppc.c:349 eaixrs6.c:349 eppcmacos.c:349
msgid "%F%P: cannot read %s\n"
msgstr ""
-#: eaix5ppc.c:405 eaix5rs6.c:405 eaixppc.c:405 eaixrs6.c:405 eppcmacos.c:405
+#: eaix5ppc.c:377 eaix5rs6.c:377 eaixppc.c:377 eaixrs6.c:377 eppcmacos.c:377
msgid "%P: warning: ignoring invalid -D number %s\n"
msgstr ""
-#: eaix5ppc.c:413 eaix5rs6.c:413 eaixppc.c:413 eaixrs6.c:413 eppcmacos.c:413
+#: eaix5ppc.c:385 eaix5rs6.c:385 eaixppc.c:385 eaixrs6.c:385 eppcmacos.c:385
msgid "%P: warning: ignoring invalid -H number %s\n"
msgstr ""
-#: eaix5ppc.c:525 eaix5rs6.c:525 eaixppc.c:525 eaixrs6.c:525 eppcmacos.c:525
+#: eaix5ppc.c:497 eaix5rs6.c:497 eaixppc.c:497 eaixrs6.c:497 eppcmacos.c:497
msgid "%P: warning: ignoring invalid -bmaxdata number %s\n"
msgstr ""
-#: eaix5ppc.c:534 eaix5rs6.c:534 eaixppc.c:534 eaixrs6.c:534 eppcmacos.c:534
+#: eaix5ppc.c:506 eaix5rs6.c:506 eaixppc.c:506 eaixrs6.c:506 eppcmacos.c:506
msgid "%P: warning: ignoring invalid -bmaxstack number %s\n"
msgstr ""
-#: eaix5ppc.c:547 eaix5rs6.c:547 eaixppc.c:547 eaixrs6.c:547 eppcmacos.c:547
+#: eaix5ppc.c:519 eaix5rs6.c:519 eaixppc.c:519 eaixrs6.c:519 eppcmacos.c:519
msgid "%P: warning: ignoring invalid module type %s\n"
msgstr ""
-#: eaix5ppc.c:577 eaix5rs6.c:577 eaixppc.c:577 eaixrs6.c:577 eppcmacos.c:577
+#: eaix5ppc.c:549 eaix5rs6.c:549 eaixppc.c:549 eaixrs6.c:549 eppcmacos.c:549
msgid "%P: warning: ignoring invalid -pD number %s\n"
msgstr ""
-#: eaix5ppc.c:600 eaix5rs6.c:600 eaixppc.c:600 eaixrs6.c:600 eppcmacos.c:600
+#: eaix5ppc.c:572 eaix5rs6.c:572 eaixppc.c:572 eaixrs6.c:572 eppcmacos.c:572
msgid "%P: warning: ignoring invalid -pT number %s\n"
msgstr ""
-#: eaix5ppc.c:729 eaix5rs6.c:729 eaixppc.c:729 eaixrs6.c:729 eppcmacos.c:729
+#: eaix5ppc.c:701 eaix5rs6.c:701 eaixppc.c:701 eaixrs6.c:701 eppcmacos.c:701
msgid "%F%P: bfd_xcoff_link_record_set failed: %E\n"
msgstr ""
-#: eaix5ppc.c:759 eaix5rs6.c:759 eaixppc.c:759 eaixrs6.c:759 eppcmacos.c:759
+#: eaix5ppc.c:731 eaix5rs6.c:731 eaixppc.c:731 eaixrs6.c:731 eppcmacos.c:731
msgid "%F%P: bfd_link_hash_lookup of export symbol failed: %E\n"
msgstr ""
-#: eaix5ppc.c:761 eaix5rs6.c:761 eaixppc.c:761 eaixrs6.c:761 eppcmacos.c:761
+#: eaix5ppc.c:733 eaix5rs6.c:733 eaixppc.c:733 eaixrs6.c:733 eppcmacos.c:733
msgid "%F%P: bfd_xcoff_export_symbol failed: %E\n"
msgstr ""
-#: eaix5ppc.c:866 eaix5rs6.c:866 eaixppc.c:866 eaixrs6.c:866 eppcmacos.c:866
+#: eaix5ppc.c:838 eaix5rs6.c:838 eaixppc.c:838 eaixrs6.c:838 eppcmacos.c:838
msgid "%F%P: can't find output section %s\n"
msgstr ""
-#: eaix5ppc.c:903 eaix5rs6.c:903 eaixppc.c:903 eaixrs6.c:903 eppcmacos.c:903
+#: eaix5ppc.c:875 eaix5rs6.c:875 eaixppc.c:875 eaixrs6.c:875 eppcmacos.c:875
msgid "%F%P: can't find %s in output section\n"
msgstr ""
-#: eaix5ppc.c:970 eaix5rs6.c:970 eaixppc.c:970 eaixrs6.c:970 eppcmacos.c:970
+#: eaix5ppc.c:942 eaix5rs6.c:942 eaixppc.c:942 eaixrs6.c:942 eppcmacos.c:942
msgid "%P: can't find required output section %s\n"
msgstr ""
-#: eaix5ppc.c:1152 eaix5rs6.c:1152 eaixppc.c:1152 eaixrs6.c:1152
-#: eppcmacos.c:1152
+#: eaix5ppc.c:1124 eaix5rs6.c:1124 eaixppc.c:1124 eaixrs6.c:1124
+#: eppcmacos.c:1124
msgid "%X%P: can not size stub sections: %E\n"
msgstr ""
-#: eaix5ppc.c:1157 eaix5rs6.c:1157 eaixppc.c:1157 eaixrs6.c:1157
-#: eppcmacos.c:1157
+#: eaix5ppc.c:1129 eaix5rs6.c:1129 eaixppc.c:1129 eaixrs6.c:1129
+#: eppcmacos.c:1129
msgid "%F%P: failed to layout dynamic sections: %E\n"
msgstr ""
-#: eaix5ppc.c:1370 eaix5rs6.c:1370 eaixppc.c:1370 eaixrs6.c:1370
-#: eppcmacos.c:1370
+#: eaix5ppc.c:1342 eaix5rs6.c:1342 eaixppc.c:1342 eaixrs6.c:1342
+#: eppcmacos.c:1342
msgid "%F%P:%s:%d: #! ([member]) is not supported in import files\n"
msgstr ""
-#: eaix5ppc.c:1387 eaix5rs6.c:1387 eaixppc.c:1387 eaixrs6.c:1387
-#: eppcmacos.c:1387
+#: eaix5ppc.c:1359 eaix5rs6.c:1359 eaixppc.c:1359 eaixrs6.c:1359
+#: eppcmacos.c:1359
msgid "%F%P: could not parse import path: %E\n"
msgstr ""
-#: eaix5ppc.c:1397 eaix5ppc.c:1409 eaix5rs6.c:1397 eaix5rs6.c:1409
-#: eaixppc.c:1397 eaixppc.c:1409 eaixrs6.c:1397 eaixrs6.c:1409
-#: eppcmacos.c:1397 eppcmacos.c:1409
+#: eaix5ppc.c:1369 eaix5ppc.c:1381 eaix5rs6.c:1369 eaix5rs6.c:1381
+#: eaixppc.c:1369 eaixppc.c:1381 eaixrs6.c:1369 eaixrs6.c:1381
+#: eppcmacos.c:1369 eppcmacos.c:1381
msgid "%P:%s:%d: warning: syntax error in import file\n"
msgstr ""
-#: eaix5ppc.c:1444 eaix5rs6.c:1444 eaixppc.c:1444 eaixrs6.c:1444
-#: eppcmacos.c:1444
+#: eaix5ppc.c:1416 eaix5rs6.c:1416 eaixppc.c:1416 eaixrs6.c:1416
+#: eppcmacos.c:1416
msgid "%P:%s%d: warning: syntax error in import/export file\n"
msgstr ""
-#: eaix5ppc.c:1462 eaix5rs6.c:1462 eaixppc.c:1462 eaixrs6.c:1462
-#: eppcmacos.c:1462
+#: eaix5ppc.c:1434 eaix5rs6.c:1434 eaixppc.c:1434 eaixrs6.c:1434
+#: eppcmacos.c:1434
msgid "%P:%s:%d: warning: syntax error in import/export file\n"
msgstr ""
-#: eaix5ppc.c:1497 eaix5rs6.c:1497 eaixppc.c:1497 eaixrs6.c:1497
-#: eppcmacos.c:1497
+#: eaix5ppc.c:1469 eaix5rs6.c:1469 eaixppc.c:1469 eaixrs6.c:1469
+#: eppcmacos.c:1469
msgid "%X%P:%s:%d: failed to import symbol %s: %E\n"
msgstr ""
-#: eaix5ppc.c:1507 eaix5rs6.c:1507 eaixppc.c:1507 eaixrs6.c:1507
-#: eppcmacos.c:1507
+#: eaix5ppc.c:1479 eaix5rs6.c:1479 eaixppc.c:1479 eaixrs6.c:1479
+#: eppcmacos.c:1479
msgid "%P:%s:%d: warning: ignoring unterminated last line\n"
msgstr ""
-#: eaix5ppc.c:1542 eaix5rs6.c:1542 eaixppc.c:1542 eaixrs6.c:1542
-#: eppcmacos.c:1542
+#: eaix5ppc.c:1514 eaix5rs6.c:1514 eaixppc.c:1514 eaixrs6.c:1514
+#: eppcmacos.c:1514
msgid "%F%P: only relocations against symbols are permitted\n"
msgstr ""
-#: eaix5ppc.c:1545 eaix5rs6.c:1545 eaixppc.c:1545 eaixrs6.c:1545
-#: eppcmacos.c:1545
+#: eaix5ppc.c:1517 eaix5rs6.c:1517 eaixppc.c:1517 eaixrs6.c:1517
+#: eppcmacos.c:1517
msgid "%F%P: bfd_xcoff_link_count_reloc failed: %E\n"
msgstr ""
-#: eaix5ppc.c:1633 eaix5rs6.c:1633 eaixppc.c:1633 eaixrs6.c:1633
-#: eppcmacos.c:1633
+#: eaix5ppc.c:1605 eaix5rs6.c:1605 eaixppc.c:1605 eaixrs6.c:1605
+#: eppcmacos.c:1605
msgid "%F%P: can not create stub BFD: %E\n"
msgstr ""
-#: eaix5ppc.c:1643 eaix5rs6.c:1643 eaixppc.c:1643 eaixrs6.c:1643
-#: eelf64_s390.c:65 eelf64lppc.c:131 eelf64lppc_fbsd.c:131 eelf64ppc.c:131
-#: eelf64ppc_fbsd.c:131 eppcmacos.c:1643
+#: eaix5ppc.c:1615 eaix5rs6.c:1615 eaixppc.c:1615 eaixrs6.c:1615
+#: eelf64_s390.c:66 eelf64lppc.c:132 eelf64lppc_fbsd.c:132 eelf64ppc.c:132
+#: eelf64ppc_fbsd.c:132 eppcmacos.c:1615
msgid "%F%P: can not init BFD: %E\n"
msgstr ""
@@ -5125,32 +5104,32 @@ msgid ""
" --identification <string> Set the identification of the output\n"
msgstr ""
-#: earm_wince_pe.c:432 earmpe.c:432 ei386pe.c:432 ei386pe_posix.c:432
-#: emcorepe.c:432 eshpe.c:432
+#: earm_wince_pe.c:354 earmpe.c:354 ei386pe.c:354 ei386pe_posix.c:354
+#: emcorepe.c:354 eshpe.c:354
#, c-format
msgid ""
" --thumb-entry=<symbol> Set the entry point to be Thumb "
"<symbol>\n"
msgstr ""
-#: earm_wince_pe.c:433 earmpe.c:433 ei386pe.c:433 ei386pe_posix.c:433
-#: emcorepe.c:433 eshpe.c:433
+#: earm_wince_pe.c:355 earmpe.c:355 ei386pe.c:355 ei386pe_posix.c:355
+#: emcorepe.c:355 eshpe.c:355
#, c-format
msgid ""
" --[no-]insert-timestamp Use a real timestamp rather than zero "
"(default).\n"
msgstr ""
-#: earm_wince_pe.c:444 earmpe.c:444 ei386pe.c:444 ei386pe_posix.c:444
-#: emcorepe.c:444 eshpe.c:444
+#: earm_wince_pe.c:366 earmpe.c:366 ei386pe.c:366 ei386pe_posix.c:366
+#: emcorepe.c:366 eshpe.c:366
#, c-format
msgid ""
" export, place into import library "
"instead.\n"
msgstr ""
-#: earm_wince_pe.c:449 earmpe.c:449 ei386pe.c:449 ei386pe_posix.c:449
-#: emcorepe.c:449 eshpe.c:449
+#: earm_wince_pe.c:371 earmpe.c:371 ei386pe.c:371 ei386pe_posix.c:371
+#: emcorepe.c:371 eshpe.c:371
#, c-format
msgid ""
" --compat-implib Create backward compatible import "
@@ -5158,8 +5137,8 @@ msgid ""
" create __imp_<SYMBOL> as well.\n"
msgstr ""
-#: earm_wince_pe.c:450 earmpe.c:450 ei386pe.c:450 ei386pe_posix.c:450
-#: emcorepe.c:450 eshpe.c:450
+#: earm_wince_pe.c:372 earmpe.c:372 ei386pe.c:372 ei386pe_posix.c:372
+#: emcorepe.c:372 eshpe.c:372
#, c-format
msgid ""
" --enable-auto-image-base[=<address>] Automatically choose image base for "
@@ -5169,16 +5148,16 @@ msgid ""
" specifically set with --image-base\n"
msgstr ""
-#: earm_wince_pe.c:451 earmpe.c:451 ei386pe.c:451 ei386pe_posix.c:451
-#: emcorepe.c:451 eshpe.c:451
+#: earm_wince_pe.c:373 earmpe.c:373 ei386pe.c:373 ei386pe_posix.c:373
+#: emcorepe.c:373 eshpe.c:373
#, c-format
msgid ""
" --disable-auto-image-base Do not auto-choose image base. "
"(default)\n"
msgstr ""
-#: earm_wince_pe.c:455 earmpe.c:455 ei386pe.c:455 ei386pe_posix.c:455
-#: emcorepe.c:455 eshpe.c:455
+#: earm_wince_pe.c:377 earmpe.c:377 ei386pe.c:377 ei386pe_posix.c:377
+#: emcorepe.c:377 eshpe.c:377
#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
@@ -5187,8 +5166,8 @@ msgid ""
" runtime.\n"
msgstr ""
-#: earm_wince_pe.c:456 earmpe.c:456 ei386pe.c:456 ei386pe_posix.c:456
-#: emcorepe.c:456 eshpe.c:456
+#: earm_wince_pe.c:378 earmpe.c:378 ei386pe.c:378 ei386pe_posix.c:378
+#: emcorepe.c:378 eshpe.c:378
#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations "
@@ -5196,8 +5175,8 @@ msgid ""
" auto-imported DATA.\n"
msgstr ""
-#: earm_wince_pe.c:457 earmpe.c:457 ei386pe.c:457 ei386pe_posix.c:457
-#: emcorepe.c:457 eshpe.c:457
+#: earm_wince_pe.c:379 earmpe.c:379 ei386pe.c:379 ei386pe_posix.c:379
+#: emcorepe.c:379 eshpe.c:379
#, c-format
msgid ""
" --enable-extra-pe-debug Enable verbose debug output when "
@@ -5206,24 +5185,24 @@ msgid ""
"import)\n"
msgstr ""
-#: earm_wince_pe.c:459 earmpe.c:459 ei386pe.c:459 ei386pe_posix.c:459
-#: emcorepe.c:459 eshpe.c:459
+#: earm_wince_pe.c:381 earmpe.c:381 ei386pe.c:381 ei386pe_posix.c:381
+#: emcorepe.c:381 eshpe.c:381
#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
" greater than 2 gigabytes\n"
msgstr ""
-#: earm_wince_pe.c:460 earmpe.c:460 ei386pe.c:460 ei386pe_posix.c:460
-#: emcorepe.c:460 eshpe.c:460
+#: earm_wince_pe.c:382 earmpe.c:382 ei386pe.c:382 ei386pe_posix.c:382
+#: emcorepe.c:382 eshpe.c:382
#, c-format
msgid ""
" --disable-large-address-aware Executable does not support virtual\n"
" addresses greater than 2 gigabytes\n"
msgstr ""
-#: earm_wince_pe.c:469 earmpe.c:469 ei386pe.c:469 ei386pe_posix.c:469
-#: emcorepe.c:469 eshpe.c:469
+#: earm_wince_pe.c:391 earmpe.c:391 ei386pe.c:391 ei386pe_posix.c:391
+#: emcorepe.c:391 eshpe.c:391
#, c-format
msgid ""
" --[disable-]no-seh Image does not use SEH. No SE handler "
@@ -5231,231 +5210,231 @@ msgid ""
" be called in this image\n"
msgstr ""
-#: earm_wince_pe.c:1046 earmpe.c:1046 ei386pe.c:1046 ei386pe_posix.c:1046
-#: emcorepe.c:1046 eshpe.c:1046
+#: earm_wince_pe.c:968 earmpe.c:968 ei386pe.c:968 ei386pe_posix.c:968
+#: emcorepe.c:968 eshpe.c:968
msgid ""
"%P: warning: --export-dynamic is not supported for PE targets, did you mean "
"--export-all-symbols?\n"
msgstr ""
-#: earm_wince_pe.c:1096 earmpe.c:1096 ei386pe.c:1096 ei386pe_posix.c:1096
-#: emcorepe.c:1096 eshpe.c:1096
+#: earm_wince_pe.c:1018 earmpe.c:1018 ei386pe.c:1018 ei386pe_posix.c:1018
+#: emcorepe.c:1018 eshpe.c:1018
msgid "%P: warning: resolving %s by linking to %s\n"
msgstr ""
-#: earm_wince_pe.c:1882 earmpe.c:1882 ei386pe.c:1882 ei386pe_posix.c:1882
-#: emcorepe.c:1882 eshpe.c:1882
+#: earm_wince_pe.c:1804 earmpe.c:1804 ei386pe.c:1804 ei386pe_posix.c:1804
+#: emcorepe.c:1804 eshpe.c:1804
#, c-format
msgid "%P: errors encountered processing file %s for interworking\n"
msgstr ""
-#: earm_wince_pe.c:2046 earmelf.c:523 earmelf_fbsd.c:523 earmelf_fuchsia.c:524
-#: earmelf_haiku.c:524 earmelf_linux.c:524 earmelf_linux_eabi.c:524
-#: earmelf_linux_fdpiceabi.c:524 earmelf_nacl.c:524 earmelf_nbsd.c:523
-#: earmelf_phoenix.c:524 earmelf_vxworks.c:523 earmelfb.c:523
-#: earmelfb_fbsd.c:523 earmelfb_fuchsia.c:524 earmelfb_linux.c:524
-#: earmelfb_linux_eabi.c:524 earmelfb_linux_fdpiceabi.c:524
-#: earmelfb_nacl.c:524 earmelfb_nbsd.c:523 earmnto.c:523 earmpe.c:2046
-#: ei386pe.c:2046 ei386pe_posix.c:2046 emcorepe.c:2046 eshpe.c:2046
+#: earm_wince_pe.c:1968 earmelf.c:524 earmelf_fbsd.c:524 earmelf_fuchsia.c:525
+#: earmelf_haiku.c:525 earmelf_linux.c:525 earmelf_linux_eabi.c:525
+#: earmelf_linux_fdpiceabi.c:525 earmelf_nacl.c:525 earmelf_nbsd.c:524
+#: earmelf_phoenix.c:525 earmelf_vxworks.c:524 earmelfb.c:524
+#: earmelfb_fbsd.c:524 earmelfb_fuchsia.c:525 earmelfb_linux.c:525
+#: earmelfb_linux_eabi.c:525 earmelfb_linux_fdpiceabi.c:525
+#: earmelfb_nacl.c:525 earmelfb_nbsd.c:524 earmnto.c:524 earmpe.c:1968
+#: ei386pe.c:1968 ei386pe_posix.c:1968 emcorepe.c:1968 eshpe.c:1968
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr ""
-#: earm_wince_pe.c:2051 earmelf.c:528 earmelf_fbsd.c:528 earmelf_fuchsia.c:529
-#: earmelf_haiku.c:529 earmelf_linux.c:529 earmelf_linux_eabi.c:529
-#: earmelf_linux_fdpiceabi.c:529 earmelf_nacl.c:529 earmelf_nbsd.c:528
-#: earmelf_phoenix.c:529 earmelf_vxworks.c:528 earmelfb.c:528
-#: earmelfb_fbsd.c:528 earmelfb_fuchsia.c:529 earmelfb_linux.c:529
-#: earmelfb_linux_eabi.c:529 earmelfb_linux_fdpiceabi.c:529
-#: earmelfb_nacl.c:529 earmelfb_nbsd.c:528 earmnto.c:528 earmpe.c:2051
-#: ei386pe.c:2051 ei386pe_posix.c:2051 emcorepe.c:2051 eshpe.c:2051
+#: earm_wince_pe.c:1973 earmelf.c:529 earmelf_fbsd.c:529 earmelf_fuchsia.c:530
+#: earmelf_haiku.c:530 earmelf_linux.c:530 earmelf_linux_eabi.c:530
+#: earmelf_linux_fdpiceabi.c:530 earmelf_nacl.c:530 earmelf_nbsd.c:529
+#: earmelf_phoenix.c:530 earmelf_vxworks.c:529 earmelfb.c:529
+#: earmelfb_fbsd.c:529 earmelfb_fuchsia.c:530 earmelfb_linux.c:530
+#: earmelfb_linux_eabi.c:530 earmelfb_linux_fdpiceabi.c:530
+#: earmelfb_nacl.c:530 earmelfb_nbsd.c:529 earmnto.c:529 earmpe.c:1973
+#: ei386pe.c:1973 ei386pe_posix.c:1973 emcorepe.c:1973 eshpe.c:1973
msgid "%P: warning: cannot find thumb start symbol %s\n"
msgstr ""
-#: earmelf.c:144 earmelf_fbsd.c:144 earmelf_fuchsia.c:145 earmelf_haiku.c:145
-#: earmelf_linux.c:145 earmelf_linux_eabi.c:145 earmelf_linux_fdpiceabi.c:145
-#: earmelf_nacl.c:145 earmelf_nbsd.c:144 earmelf_phoenix.c:145
-#: earmelf_vxworks.c:144 earmelfb.c:144 earmelfb_fbsd.c:144
-#: earmelfb_fuchsia.c:145 earmelfb_linux.c:145 earmelfb_linux_eabi.c:145
-#: earmelfb_linux_fdpiceabi.c:145 earmelfb_nacl.c:145 earmelfb_nbsd.c:144
-#: earmnto.c:144 ei386beos.c:615
+#: earmelf.c:145 earmelf_fbsd.c:145 earmelf_fuchsia.c:146 earmelf_haiku.c:146
+#: earmelf_linux.c:146 earmelf_linux_eabi.c:146 earmelf_linux_fdpiceabi.c:146
+#: earmelf_nacl.c:146 earmelf_nbsd.c:145 earmelf_phoenix.c:146
+#: earmelf_vxworks.c:145 earmelfb.c:145 earmelfb_fbsd.c:145
+#: earmelfb_fuchsia.c:146 earmelfb_linux.c:146 earmelfb_linux_eabi.c:146
+#: earmelfb_linux_fdpiceabi.c:146 earmelfb_nacl.c:146 earmelfb_nbsd.c:145
+#: earmnto.c:145 ei386beos.c:599
#, c-format
msgid "%P: errors encountered processing file %s\n"
msgstr ""
-#: earmelf.c:554 earmelf_fbsd.c:554 earmelf_fuchsia.c:555 earmelf_haiku.c:555
-#: earmelf_linux.c:555 earmelf_linux_eabi.c:555 earmelf_linux_fdpiceabi.c:555
-#: earmelf_nacl.c:555 earmelf_nbsd.c:554 earmelf_phoenix.c:555
-#: earmelf_vxworks.c:554 earmelfb.c:554 earmelfb_fbsd.c:554
-#: earmelfb_fuchsia.c:555 earmelfb_linux.c:555 earmelfb_linux_eabi.c:555
-#: earmelfb_linux_fdpiceabi.c:555 earmelfb_nacl.c:555 earmelfb_nbsd.c:554
-#: earmnto.c:554
+#: earmelf.c:555 earmelf_fbsd.c:555 earmelf_fuchsia.c:556 earmelf_haiku.c:556
+#: earmelf_linux.c:556 earmelf_linux_eabi.c:556 earmelf_linux_fdpiceabi.c:556
+#: earmelf_nacl.c:556 earmelf_nbsd.c:555 earmelf_phoenix.c:556
+#: earmelf_vxworks.c:555 earmelfb.c:555 earmelfb_fbsd.c:555
+#: earmelfb_fuchsia.c:556 earmelfb_linux.c:556 earmelfb_linux_eabi.c:556
+#: earmelfb_linux_fdpiceabi.c:556 earmelfb_nacl.c:556 earmelfb_nbsd.c:555
+#: earmnto.c:555
msgid "%F%P: %s: can't open: %E\n"
msgstr ""
-#: earmelf.c:557 earmelf_fbsd.c:557 earmelf_fuchsia.c:558 earmelf_haiku.c:558
-#: earmelf_linux.c:558 earmelf_linux_eabi.c:558 earmelf_linux_fdpiceabi.c:558
-#: earmelf_nacl.c:558 earmelf_nbsd.c:557 earmelf_phoenix.c:558
-#: earmelf_vxworks.c:557 earmelfb.c:557 earmelfb_fbsd.c:557
-#: earmelfb_fuchsia.c:558 earmelfb_linux.c:558 earmelfb_linux_eabi.c:558
-#: earmelfb_linux_fdpiceabi.c:558 earmelfb_nacl.c:558 earmelfb_nbsd.c:557
-#: earmnto.c:557
+#: earmelf.c:558 earmelf_fbsd.c:558 earmelf_fuchsia.c:559 earmelf_haiku.c:559
+#: earmelf_linux.c:559 earmelf_linux_eabi.c:559 earmelf_linux_fdpiceabi.c:559
+#: earmelf_nacl.c:559 earmelf_nbsd.c:558 earmelf_phoenix.c:559
+#: earmelf_vxworks.c:558 earmelfb.c:558 earmelfb_fbsd.c:558
+#: earmelfb_fuchsia.c:559 earmelfb_linux.c:559 earmelfb_linux_eabi.c:559
+#: earmelfb_linux_fdpiceabi.c:559 earmelfb_nacl.c:559 earmelfb_nbsd.c:558
+#: earmnto.c:558
msgid "%F%P: %s: not a relocatable file: %E\n"
msgstr ""
-#: earmelf.c:1073 earmelf_fbsd.c:1073 earmelf_fuchsia.c:1078
-#: earmelf_haiku.c:1078 earmelf_linux.c:1078 earmelf_linux_eabi.c:1078
-#: earmelf_linux_fdpiceabi.c:1078 earmelf_nacl.c:1078 earmelf_nbsd.c:1073
-#: earmelf_phoenix.c:1078 earmelf_vxworks.c:1109 earmelfb.c:1073
-#: earmelfb_fbsd.c:1073 earmelfb_fuchsia.c:1078 earmelfb_linux.c:1078
-#: earmelfb_linux_eabi.c:1078 earmelfb_linux_fdpiceabi.c:1078
-#: earmelfb_nacl.c:1078 earmelfb_nbsd.c:1073 earmnto.c:1048
+#: earmelf.c:1089 earmelf_fbsd.c:1089 earmelf_fuchsia.c:1094
+#: earmelf_haiku.c:1094 earmelf_linux.c:1094 earmelf_linux_eabi.c:1094
+#: earmelf_linux_fdpiceabi.c:1094 earmelf_nacl.c:1094 earmelf_nbsd.c:1089
+#: earmelf_phoenix.c:1094 earmelf_vxworks.c:1121 earmelfb.c:1089
+#: earmelfb_fbsd.c:1089 earmelfb_fuchsia.c:1094 earmelfb_linux.c:1094
+#: earmelfb_linux_eabi.c:1094 earmelfb_linux_fdpiceabi.c:1094
+#: earmelfb_nacl.c:1094 earmelfb_nbsd.c:1089 earmnto.c:1049
msgid "%P: unrecognized VFP11 fix type '%s'\n"
msgstr ""
-#: earmelf.c:1086 earmelf_fbsd.c:1086 earmelf_fuchsia.c:1091
-#: earmelf_haiku.c:1091 earmelf_linux.c:1091 earmelf_linux_eabi.c:1091
-#: earmelf_linux_fdpiceabi.c:1091 earmelf_nacl.c:1091 earmelf_nbsd.c:1086
-#: earmelf_phoenix.c:1091 earmelf_vxworks.c:1122 earmelfb.c:1086
-#: earmelfb_fbsd.c:1086 earmelfb_fuchsia.c:1091 earmelfb_linux.c:1091
-#: earmelfb_linux_eabi.c:1091 earmelfb_linux_fdpiceabi.c:1091
-#: earmelfb_nacl.c:1091 earmelfb_nbsd.c:1086 earmnto.c:1061
+#: earmelf.c:1102 earmelf_fbsd.c:1102 earmelf_fuchsia.c:1107
+#: earmelf_haiku.c:1107 earmelf_linux.c:1107 earmelf_linux_eabi.c:1107
+#: earmelf_linux_fdpiceabi.c:1107 earmelf_nacl.c:1107 earmelf_nbsd.c:1102
+#: earmelf_phoenix.c:1107 earmelf_vxworks.c:1134 earmelfb.c:1102
+#: earmelfb_fbsd.c:1102 earmelfb_fuchsia.c:1107 earmelfb_linux.c:1107
+#: earmelfb_linux_eabi.c:1107 earmelfb_linux_fdpiceabi.c:1107
+#: earmelfb_nacl.c:1107 earmelfb_nbsd.c:1102 earmnto.c:1062
msgid "%P: unrecognized STM32L4XX fix type '%s'\n"
msgstr ""
-#: earmelf.c:1153 earmelf_fbsd.c:1153 earmelf_fuchsia.c:1158
-#: earmelf_haiku.c:1158 earmelf_linux.c:1158 earmelf_linux_eabi.c:1158
-#: earmelf_linux_fdpiceabi.c:1158 earmelf_nacl.c:1158 earmelf_nbsd.c:1153
-#: earmelf_phoenix.c:1158 earmelf_vxworks.c:1193 earmelfb.c:1153
-#: earmelfb_fbsd.c:1153 earmelfb_fuchsia.c:1158 earmelfb_linux.c:1158
-#: earmelfb_linux_eabi.c:1158 earmelfb_linux_fdpiceabi.c:1158
-#: earmelfb_nacl.c:1158 earmelfb_nbsd.c:1153 earmnto.c:1128
+#: earmelf.c:1169 earmelf_fbsd.c:1169 earmelf_fuchsia.c:1174
+#: earmelf_haiku.c:1174 earmelf_linux.c:1174 earmelf_linux_eabi.c:1174
+#: earmelf_linux_fdpiceabi.c:1174 earmelf_nacl.c:1174 earmelf_nbsd.c:1169
+#: earmelf_phoenix.c:1174 earmelf_vxworks.c:1205 earmelfb.c:1169
+#: earmelfb_fbsd.c:1169 earmelfb_fuchsia.c:1174 earmelfb_linux.c:1174
+#: earmelfb_linux_eabi.c:1174 earmelfb_linux_fdpiceabi.c:1174
+#: earmelfb_nacl.c:1174 earmelfb_nbsd.c:1169 earmnto.c:1129
#, c-format
msgid ""
" --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
msgstr ""
-#: earmelf.c:1154 earmelf_fbsd.c:1154 earmelf_fuchsia.c:1159
-#: earmelf_haiku.c:1159 earmelf_linux.c:1159 earmelf_linux_eabi.c:1159
-#: earmelf_linux_fdpiceabi.c:1159 earmelf_nacl.c:1159 earmelf_nbsd.c:1154
-#: earmelf_phoenix.c:1159 earmelf_vxworks.c:1194 earmelfb.c:1154
-#: earmelfb_fbsd.c:1154 earmelfb_fuchsia.c:1159 earmelfb_linux.c:1159
-#: earmelfb_linux_eabi.c:1159 earmelfb_linux_fdpiceabi.c:1159
-#: earmelfb_nacl.c:1159 earmelfb_nbsd.c:1154 earmnto.c:1129
+#: earmelf.c:1170 earmelf_fbsd.c:1170 earmelf_fuchsia.c:1175
+#: earmelf_haiku.c:1175 earmelf_linux.c:1175 earmelf_linux_eabi.c:1175
+#: earmelf_linux_fdpiceabi.c:1175 earmelf_nacl.c:1175 earmelf_nbsd.c:1170
+#: earmelf_phoenix.c:1175 earmelf_vxworks.c:1206 earmelfb.c:1170
+#: earmelfb_fbsd.c:1170 earmelfb_fuchsia.c:1175 earmelfb_linux.c:1175
+#: earmelfb_linux_eabi.c:1175 earmelfb_linux_fdpiceabi.c:1175
+#: earmelfb_nacl.c:1175 earmelfb_nbsd.c:1170 earmnto.c:1130
#, c-format
msgid " --be8 Output BE8 format image\n"
msgstr ""
-#: earmelf.c:1155 earmelf_fbsd.c:1155 earmelf_fuchsia.c:1160
-#: earmelf_haiku.c:1160 earmelf_linux.c:1160 earmelf_linux_eabi.c:1160
-#: earmelf_linux_fdpiceabi.c:1160 earmelf_nacl.c:1160 earmelf_nbsd.c:1155
-#: earmelf_phoenix.c:1160 earmelf_vxworks.c:1195 earmelfb.c:1155
-#: earmelfb_fbsd.c:1155 earmelfb_fuchsia.c:1160 earmelfb_linux.c:1160
-#: earmelfb_linux_eabi.c:1160 earmelfb_linux_fdpiceabi.c:1160
-#: earmelfb_nacl.c:1160 earmelfb_nbsd.c:1155 earmnto.c:1130
+#: earmelf.c:1171 earmelf_fbsd.c:1171 earmelf_fuchsia.c:1176
+#: earmelf_haiku.c:1176 earmelf_linux.c:1176 earmelf_linux_eabi.c:1176
+#: earmelf_linux_fdpiceabi.c:1176 earmelf_nacl.c:1176 earmelf_nbsd.c:1171
+#: earmelf_phoenix.c:1176 earmelf_vxworks.c:1207 earmelfb.c:1171
+#: earmelfb_fbsd.c:1171 earmelfb_fuchsia.c:1176 earmelfb_linux.c:1176
+#: earmelfb_linux_eabi.c:1176 earmelfb_linux_fdpiceabi.c:1176
+#: earmelfb_nacl.c:1176 earmelfb_nbsd.c:1171 earmnto.c:1131
#, c-format
msgid " --target1-rel Interpret R_ARM_TARGET1 as R_ARM_REL32\n"
msgstr ""
-#: earmelf.c:1156 earmelf_fbsd.c:1156 earmelf_fuchsia.c:1161
-#: earmelf_haiku.c:1161 earmelf_linux.c:1161 earmelf_linux_eabi.c:1161
-#: earmelf_linux_fdpiceabi.c:1161 earmelf_nacl.c:1161 earmelf_nbsd.c:1156
-#: earmelf_phoenix.c:1161 earmelf_vxworks.c:1196 earmelfb.c:1156
-#: earmelfb_fbsd.c:1156 earmelfb_fuchsia.c:1161 earmelfb_linux.c:1161
-#: earmelfb_linux_eabi.c:1161 earmelfb_linux_fdpiceabi.c:1161
-#: earmelfb_nacl.c:1161 earmelfb_nbsd.c:1156 earmnto.c:1131
+#: earmelf.c:1172 earmelf_fbsd.c:1172 earmelf_fuchsia.c:1177
+#: earmelf_haiku.c:1177 earmelf_linux.c:1177 earmelf_linux_eabi.c:1177
+#: earmelf_linux_fdpiceabi.c:1177 earmelf_nacl.c:1177 earmelf_nbsd.c:1172
+#: earmelf_phoenix.c:1177 earmelf_vxworks.c:1208 earmelfb.c:1172
+#: earmelfb_fbsd.c:1172 earmelfb_fuchsia.c:1177 earmelfb_linux.c:1177
+#: earmelfb_linux_eabi.c:1177 earmelfb_linux_fdpiceabi.c:1177
+#: earmelfb_nacl.c:1177 earmelfb_nbsd.c:1172 earmnto.c:1132
#, c-format
msgid " --target1-abs Interpret R_ARM_TARGET1 as R_ARM_ABS32\n"
msgstr ""
-#: earmelf.c:1157 earmelf_fbsd.c:1157 earmelf_fuchsia.c:1162
-#: earmelf_haiku.c:1162 earmelf_linux.c:1162 earmelf_linux_eabi.c:1162
-#: earmelf_linux_fdpiceabi.c:1162 earmelf_nacl.c:1162 earmelf_nbsd.c:1157
-#: earmelf_phoenix.c:1162 earmelf_vxworks.c:1197 earmelfb.c:1157
-#: earmelfb_fbsd.c:1157 earmelfb_fuchsia.c:1162 earmelfb_linux.c:1162
-#: earmelfb_linux_eabi.c:1162 earmelfb_linux_fdpiceabi.c:1162
-#: earmelfb_nacl.c:1162 earmelfb_nbsd.c:1157 earmnto.c:1132
+#: earmelf.c:1173 earmelf_fbsd.c:1173 earmelf_fuchsia.c:1178
+#: earmelf_haiku.c:1178 earmelf_linux.c:1178 earmelf_linux_eabi.c:1178
+#: earmelf_linux_fdpiceabi.c:1178 earmelf_nacl.c:1178 earmelf_nbsd.c:1173
+#: earmelf_phoenix.c:1178 earmelf_vxworks.c:1209 earmelfb.c:1173
+#: earmelfb_fbsd.c:1173 earmelfb_fuchsia.c:1178 earmelfb_linux.c:1178
+#: earmelfb_linux_eabi.c:1178 earmelfb_linux_fdpiceabi.c:1178
+#: earmelfb_nacl.c:1178 earmelfb_nbsd.c:1173 earmnto.c:1133
#, c-format
msgid " --target2=<type> Specify definition of R_ARM_TARGET2\n"
msgstr ""
-#: earmelf.c:1158 earmelf_fbsd.c:1158 earmelf_fuchsia.c:1163
-#: earmelf_haiku.c:1163 earmelf_linux.c:1163 earmelf_linux_eabi.c:1163
-#: earmelf_linux_fdpiceabi.c:1163 earmelf_nacl.c:1163 earmelf_nbsd.c:1158
-#: earmelf_phoenix.c:1163 earmelf_vxworks.c:1198 earmelfb.c:1158
-#: earmelfb_fbsd.c:1158 earmelfb_fuchsia.c:1163 earmelfb_linux.c:1163
-#: earmelfb_linux_eabi.c:1163 earmelfb_linux_fdpiceabi.c:1163
-#: earmelfb_nacl.c:1163 earmelfb_nbsd.c:1158 earmnto.c:1133
+#: earmelf.c:1174 earmelf_fbsd.c:1174 earmelf_fuchsia.c:1179
+#: earmelf_haiku.c:1179 earmelf_linux.c:1179 earmelf_linux_eabi.c:1179
+#: earmelf_linux_fdpiceabi.c:1179 earmelf_nacl.c:1179 earmelf_nbsd.c:1174
+#: earmelf_phoenix.c:1179 earmelf_vxworks.c:1210 earmelfb.c:1174
+#: earmelfb_fbsd.c:1174 earmelfb_fuchsia.c:1179 earmelfb_linux.c:1179
+#: earmelfb_linux_eabi.c:1179 earmelfb_linux_fdpiceabi.c:1179
+#: earmelfb_nacl.c:1179 earmelfb_nbsd.c:1174 earmnto.c:1134
#, c-format
msgid " --fix-v4bx Rewrite BX rn as MOV pc, rn for ARMv4\n"
msgstr ""
-#: earmelf.c:1159 earmelf_fbsd.c:1159 earmelf_fuchsia.c:1164
-#: earmelf_haiku.c:1164 earmelf_linux.c:1164 earmelf_linux_eabi.c:1164
-#: earmelf_linux_fdpiceabi.c:1164 earmelf_nacl.c:1164 earmelf_nbsd.c:1159
-#: earmelf_phoenix.c:1164 earmelf_vxworks.c:1199 earmelfb.c:1159
-#: earmelfb_fbsd.c:1159 earmelfb_fuchsia.c:1164 earmelfb_linux.c:1164
-#: earmelfb_linux_eabi.c:1164 earmelfb_linux_fdpiceabi.c:1164
-#: earmelfb_nacl.c:1164 earmelfb_nbsd.c:1159 earmnto.c:1134
+#: earmelf.c:1175 earmelf_fbsd.c:1175 earmelf_fuchsia.c:1180
+#: earmelf_haiku.c:1180 earmelf_linux.c:1180 earmelf_linux_eabi.c:1180
+#: earmelf_linux_fdpiceabi.c:1180 earmelf_nacl.c:1180 earmelf_nbsd.c:1175
+#: earmelf_phoenix.c:1180 earmelf_vxworks.c:1211 earmelfb.c:1175
+#: earmelfb_fbsd.c:1175 earmelfb_fuchsia.c:1180 earmelfb_linux.c:1180
+#: earmelfb_linux_eabi.c:1180 earmelfb_linux_fdpiceabi.c:1180
+#: earmelfb_nacl.c:1180 earmelfb_nbsd.c:1175 earmnto.c:1135
#, c-format
msgid ""
" --fix-v4bx-interworking Rewrite BX rn branch to ARMv4 interworking "
"veneer\n"
msgstr ""
-#: earmelf.c:1160 earmelf_fbsd.c:1160 earmelf_fuchsia.c:1165
-#: earmelf_haiku.c:1165 earmelf_linux.c:1165 earmelf_linux_eabi.c:1165
-#: earmelf_linux_fdpiceabi.c:1165 earmelf_nacl.c:1165 earmelf_nbsd.c:1160
-#: earmelf_phoenix.c:1165 earmelf_vxworks.c:1200 earmelfb.c:1160
-#: earmelfb_fbsd.c:1160 earmelfb_fuchsia.c:1165 earmelfb_linux.c:1165
-#: earmelfb_linux_eabi.c:1165 earmelfb_linux_fdpiceabi.c:1165
-#: earmelfb_nacl.c:1165 earmelfb_nbsd.c:1160 earmnto.c:1135
+#: earmelf.c:1176 earmelf_fbsd.c:1176 earmelf_fuchsia.c:1181
+#: earmelf_haiku.c:1181 earmelf_linux.c:1181 earmelf_linux_eabi.c:1181
+#: earmelf_linux_fdpiceabi.c:1181 earmelf_nacl.c:1181 earmelf_nbsd.c:1176
+#: earmelf_phoenix.c:1181 earmelf_vxworks.c:1212 earmelfb.c:1176
+#: earmelfb_fbsd.c:1176 earmelfb_fuchsia.c:1181 earmelfb_linux.c:1181
+#: earmelfb_linux_eabi.c:1181 earmelfb_linux_fdpiceabi.c:1181
+#: earmelfb_nacl.c:1181 earmelfb_nbsd.c:1176 earmnto.c:1136
#, c-format
msgid " --use-blx Enable use of BLX instructions\n"
msgstr ""
-#: earmelf.c:1161 earmelf_fbsd.c:1161 earmelf_fuchsia.c:1166
-#: earmelf_haiku.c:1166 earmelf_linux.c:1166 earmelf_linux_eabi.c:1166
-#: earmelf_linux_fdpiceabi.c:1166 earmelf_nacl.c:1166 earmelf_nbsd.c:1161
-#: earmelf_phoenix.c:1166 earmelf_vxworks.c:1201 earmelfb.c:1161
-#: earmelfb_fbsd.c:1161 earmelfb_fuchsia.c:1166 earmelfb_linux.c:1166
-#: earmelfb_linux_eabi.c:1166 earmelfb_linux_fdpiceabi.c:1166
-#: earmelfb_nacl.c:1166 earmelfb_nbsd.c:1161 earmnto.c:1136
+#: earmelf.c:1177 earmelf_fbsd.c:1177 earmelf_fuchsia.c:1182
+#: earmelf_haiku.c:1182 earmelf_linux.c:1182 earmelf_linux_eabi.c:1182
+#: earmelf_linux_fdpiceabi.c:1182 earmelf_nacl.c:1182 earmelf_nbsd.c:1177
+#: earmelf_phoenix.c:1182 earmelf_vxworks.c:1213 earmelfb.c:1177
+#: earmelfb_fbsd.c:1177 earmelfb_fuchsia.c:1182 earmelfb_linux.c:1182
+#: earmelfb_linux_eabi.c:1182 earmelfb_linux_fdpiceabi.c:1182
+#: earmelfb_nacl.c:1182 earmelfb_nbsd.c:1177 earmnto.c:1137
#, c-format
msgid " --vfp11-denorm-fix Specify how to fix VFP11 denorm erratum\n"
msgstr ""
-#: earmelf.c:1162 earmelf_fbsd.c:1162 earmelf_fuchsia.c:1167
-#: earmelf_haiku.c:1167 earmelf_linux.c:1167 earmelf_linux_eabi.c:1167
-#: earmelf_linux_fdpiceabi.c:1167 earmelf_nacl.c:1167 earmelf_nbsd.c:1162
-#: earmelf_phoenix.c:1167 earmelf_vxworks.c:1202 earmelfb.c:1162
-#: earmelfb_fbsd.c:1162 earmelfb_fuchsia.c:1167 earmelfb_linux.c:1167
-#: earmelfb_linux_eabi.c:1167 earmelfb_linux_fdpiceabi.c:1167
-#: earmelfb_nacl.c:1167 earmelfb_nbsd.c:1162 earmnto.c:1137
+#: earmelf.c:1178 earmelf_fbsd.c:1178 earmelf_fuchsia.c:1183
+#: earmelf_haiku.c:1183 earmelf_linux.c:1183 earmelf_linux_eabi.c:1183
+#: earmelf_linux_fdpiceabi.c:1183 earmelf_nacl.c:1183 earmelf_nbsd.c:1178
+#: earmelf_phoenix.c:1183 earmelf_vxworks.c:1214 earmelfb.c:1178
+#: earmelfb_fbsd.c:1178 earmelfb_fuchsia.c:1183 earmelfb_linux.c:1183
+#: earmelfb_linux_eabi.c:1183 earmelfb_linux_fdpiceabi.c:1183
+#: earmelfb_nacl.c:1183 earmelfb_nbsd.c:1178 earmnto.c:1138
#, c-format
msgid ""
" --fix-stm32l4xx-629360 Specify how to fix STM32L4XX 629360 erratum\n"
msgstr ""
-#: earmelf.c:1168 earmelf_fbsd.c:1168 earmelf_fuchsia.c:1173
-#: earmelf_haiku.c:1173 earmelf_linux.c:1173 earmelf_linux_eabi.c:1173
-#: earmelf_linux_fdpiceabi.c:1173 earmelf_nacl.c:1173 earmelf_nbsd.c:1168
-#: earmelf_phoenix.c:1173 earmelf_vxworks.c:1208 earmelfb.c:1168
-#: earmelfb_fbsd.c:1168 earmelfb_fuchsia.c:1173 earmelfb_linux.c:1173
-#: earmelfb_linux_eabi.c:1173 earmelfb_linux_fdpiceabi.c:1173
-#: earmelfb_nacl.c:1173 earmelfb_nbsd.c:1168 earmnto.c:1143
+#: earmelf.c:1184 earmelf_fbsd.c:1184 earmelf_fuchsia.c:1189
+#: earmelf_haiku.c:1189 earmelf_linux.c:1189 earmelf_linux_eabi.c:1189
+#: earmelf_linux_fdpiceabi.c:1189 earmelf_nacl.c:1189 earmelf_nbsd.c:1184
+#: earmelf_phoenix.c:1189 earmelf_vxworks.c:1220 earmelfb.c:1184
+#: earmelfb_fbsd.c:1184 earmelfb_fuchsia.c:1189 earmelfb_linux.c:1189
+#: earmelfb_linux_eabi.c:1189 earmelfb_linux_fdpiceabi.c:1189
+#: earmelfb_nacl.c:1189 earmelfb_nbsd.c:1184 earmnto.c:1144
#, c-format
msgid ""
" --long-plt Generate long .plt entries\n"
" to handle large .plt/.got displacements\n"
msgstr ""
-#: earmelf.c:1170 earmelf_fbsd.c:1170 earmelf_fuchsia.c:1175
-#: earmelf_haiku.c:1175 earmelf_linux.c:1175 earmelf_linux_eabi.c:1175
-#: earmelf_linux_fdpiceabi.c:1175 earmelf_nacl.c:1175 earmelf_nbsd.c:1170
-#: earmelf_phoenix.c:1175 earmelf_vxworks.c:1210 earmelfb.c:1170
-#: earmelfb_fbsd.c:1170 earmelfb_fuchsia.c:1175 earmelfb_linux.c:1175
-#: earmelfb_linux_eabi.c:1175 earmelfb_linux_fdpiceabi.c:1175
-#: earmelfb_nacl.c:1175 earmelfb_nbsd.c:1170 earmnto.c:1145
+#: earmelf.c:1186 earmelf_fbsd.c:1186 earmelf_fuchsia.c:1191
+#: earmelf_haiku.c:1191 earmelf_linux.c:1191 earmelf_linux_eabi.c:1191
+#: earmelf_linux_fdpiceabi.c:1191 earmelf_nacl.c:1191 earmelf_nbsd.c:1186
+#: earmelf_phoenix.c:1191 earmelf_vxworks.c:1222 earmelfb.c:1186
+#: earmelfb_fbsd.c:1186 earmelfb_fuchsia.c:1191 earmelfb_linux.c:1191
+#: earmelfb_linux_eabi.c:1191 earmelfb_linux_fdpiceabi.c:1191
+#: earmelfb_nacl.c:1191 earmelfb_nbsd.c:1186 earmnto.c:1146
#, c-format
msgid ""
" --cmse-implib Make import library to be a secure gateway "
@@ -5463,93 +5442,96 @@ msgid ""
" library as per ARMv8-M Security Extensions\n"
msgstr ""
-#: earmelf.c:1172 earmelf_fbsd.c:1172 earmelf_fuchsia.c:1177
-#: earmelf_haiku.c:1177 earmelf_linux.c:1177 earmelf_linux_eabi.c:1177
-#: earmelf_linux_fdpiceabi.c:1177 earmelf_nacl.c:1177 earmelf_nbsd.c:1172
-#: earmelf_phoenix.c:1177 earmelf_vxworks.c:1212 earmelfb.c:1172
-#: earmelfb_fbsd.c:1172 earmelfb_fuchsia.c:1177 earmelfb_linux.c:1177
-#: earmelfb_linux_eabi.c:1177 earmelfb_linux_fdpiceabi.c:1177
-#: earmelfb_nacl.c:1177 earmelfb_nbsd.c:1172 earmnto.c:1147
+#: earmelf.c:1188 earmelf_fbsd.c:1188 earmelf_fuchsia.c:1193
+#: earmelf_haiku.c:1193 earmelf_linux.c:1193 earmelf_linux_eabi.c:1193
+#: earmelf_linux_fdpiceabi.c:1193 earmelf_nacl.c:1193 earmelf_nbsd.c:1188
+#: earmelf_phoenix.c:1193 earmelf_vxworks.c:1224 earmelfb.c:1188
+#: earmelfb_fbsd.c:1188 earmelfb_fuchsia.c:1193 earmelfb_linux.c:1193
+#: earmelfb_linux_eabi.c:1193 earmelfb_linux_fdpiceabi.c:1193
+#: earmelfb_nacl.c:1193 earmelfb_nbsd.c:1188 earmnto.c:1148
#, c-format
msgid ""
" --in-implib Import library whose symbols address must\n"
" remain stable\n"
msgstr ""
-#: earmelf.c:1183 earmelf_fbsd.c:1183 earmelf_fuchsia.c:1188
-#: earmelf_haiku.c:1188 earmelf_linux.c:1188 earmelf_linux_eabi.c:1188
-#: earmelf_linux_fdpiceabi.c:1188 earmelf_nacl.c:1188 earmelf_nbsd.c:1183
-#: earmelf_phoenix.c:1188 earmelf_vxworks.c:1223 earmelfb.c:1183
-#: earmelfb_fbsd.c:1183 earmelfb_fuchsia.c:1188 earmelfb_linux.c:1188
-#: earmelfb_linux_eabi.c:1188 earmelfb_linux_fdpiceabi.c:1188
-#: earmelfb_nacl.c:1188 earmelfb_nbsd.c:1183 earmnto.c:1158
+#: earmelf.c:1199 earmelf_fbsd.c:1199 earmelf_fuchsia.c:1204
+#: earmelf_haiku.c:1204 earmelf_linux.c:1204 earmelf_linux_eabi.c:1204
+#: earmelf_linux_fdpiceabi.c:1204 earmelf_nacl.c:1204 earmelf_nbsd.c:1199
+#: earmelf_phoenix.c:1204 earmelf_vxworks.c:1235 earmelfb.c:1199
+#: earmelfb_fbsd.c:1199 earmelfb_fuchsia.c:1204 earmelfb_linux.c:1204
+#: earmelfb_linux_eabi.c:1204 earmelfb_linux_fdpiceabi.c:1204
+#: earmelfb_nacl.c:1204 earmelfb_nbsd.c:1199 earmnto.c:1159
#, c-format
msgid ""
" --[no-]fix-cortex-a8 Disable/enable Cortex-A8 Thumb-2 branch "
"erratum fix\n"
msgstr ""
-#: earmelf.c:1184 earmelf_fbsd.c:1184 earmelf_fuchsia.c:1189
-#: earmelf_haiku.c:1189 earmelf_linux.c:1189 earmelf_linux_eabi.c:1189
-#: earmelf_linux_fdpiceabi.c:1189 earmelf_nacl.c:1189 earmelf_nbsd.c:1184
-#: earmelf_phoenix.c:1189 earmelf_vxworks.c:1224 earmelfb.c:1184
-#: earmelfb_fbsd.c:1184 earmelfb_fuchsia.c:1189 earmelfb_linux.c:1189
-#: earmelfb_linux_eabi.c:1189 earmelfb_linux_fdpiceabi.c:1189
-#: earmelfb_nacl.c:1189 earmelfb_nbsd.c:1184 earmnto.c:1159
+#: earmelf.c:1200 earmelf_fbsd.c:1200 earmelf_fuchsia.c:1205
+#: earmelf_haiku.c:1205 earmelf_linux.c:1205 earmelf_linux_eabi.c:1205
+#: earmelf_linux_fdpiceabi.c:1205 earmelf_nacl.c:1205 earmelf_nbsd.c:1200
+#: earmelf_phoenix.c:1205 earmelf_vxworks.c:1236 earmelfb.c:1200
+#: earmelfb_fbsd.c:1200 earmelfb_fuchsia.c:1205 earmelfb_linux.c:1205
+#: earmelfb_linux_eabi.c:1205 earmelfb_linux_fdpiceabi.c:1205
+#: earmelfb_nacl.c:1205 earmelfb_nbsd.c:1200 earmnto.c:1160
#, c-format
msgid " --no-merge-exidx-entries Disable merging exidx entries\n"
msgstr ""
-#: earmelf.c:1185 earmelf_fbsd.c:1185 earmelf_fuchsia.c:1190
-#: earmelf_haiku.c:1190 earmelf_linux.c:1190 earmelf_linux_eabi.c:1190
-#: earmelf_linux_fdpiceabi.c:1190 earmelf_nacl.c:1190 earmelf_nbsd.c:1185
-#: earmelf_phoenix.c:1190 earmelf_vxworks.c:1225 earmelfb.c:1185
-#: earmelfb_fbsd.c:1185 earmelfb_fuchsia.c:1190 earmelfb_linux.c:1190
-#: earmelfb_linux_eabi.c:1190 earmelfb_linux_fdpiceabi.c:1190
-#: earmelfb_nacl.c:1190 earmelfb_nbsd.c:1185 earmnto.c:1160
+#: earmelf.c:1201 earmelf_fbsd.c:1201 earmelf_fuchsia.c:1206
+#: earmelf_haiku.c:1206 earmelf_linux.c:1206 earmelf_linux_eabi.c:1206
+#: earmelf_linux_fdpiceabi.c:1206 earmelf_nacl.c:1206 earmelf_nbsd.c:1201
+#: earmelf_phoenix.c:1206 earmelf_vxworks.c:1237 earmelfb.c:1201
+#: earmelfb_fbsd.c:1201 earmelfb_fuchsia.c:1206 earmelfb_linux.c:1206
+#: earmelfb_linux_eabi.c:1206 earmelfb_linux_fdpiceabi.c:1206
+#: earmelfb_nacl.c:1206 earmelfb_nbsd.c:1201 earmnto.c:1161
#, c-format
msgid ""
" --[no-]fix-arm1176 Disable/enable ARM1176 BLX immediate erratum "
"fix\n"
msgstr ""
-#: earmelf_vxworks.c:603 eelf32_sparc_vxworks.c:73 eelf32ebmipvxworks.c:269
-#: eelf32elmipvxworks.c:269 eelf32ppcvxworks.c:238 eelf_i386_vxworks.c:97
-#: eshelf_vxworks.c:73 eshlelf_vxworks.c:73
+#: earmelf_vxworks.c:604 eelf32_sparc_vxworks.c:74 eelf32ebmipvxworks.c:270
+#: eelf32elmipvxworks.c:270 eelf32ppcvxworks.c:239 eelf_i386_vxworks.c:98
+#: eshelf_vxworks.c:74 eshlelf_vxworks.c:74
msgid "%X%P: cannot create dynamic sections %E\n"
msgstr ""
-#: earmelf_vxworks.c:609 eelf32_sparc_vxworks.c:79 eelf32ebmipvxworks.c:275
-#: eelf32elmipvxworks.c:275 eelf32ppcvxworks.c:244 eelf_i386_vxworks.c:103
-#: eshelf_vxworks.c:79 eshlelf_vxworks.c:79
+#: earmelf_vxworks.c:610 eelf32_sparc_vxworks.c:80 eelf32ebmipvxworks.c:276
+#: eelf32elmipvxworks.c:276 eelf32ppcvxworks.c:245 eelf_i386_vxworks.c:104
+#: eshelf_vxworks.c:80 eshlelf_vxworks.c:80
msgid "%X%P: dynamic sections created in non-dynamic link\n"
msgstr ""
-#: earmelf_vxworks.c:1227 eelf32_sparc_vxworks.c:534 eelf32ebmipvxworks.c:792
-#: eelf32elmipvxworks.c:792 eelf32ppcvxworks.c:857 eelf_i386_vxworks.c:619
-#: eshelf_vxworks.c:504 eshlelf_vxworks.c:504
+#: earmelf_vxworks.c:1239 eelf32_sparc_vxworks.c:570 eelf32ebmipvxworks.c:818
+#: eelf32elmipvxworks.c:818 eelf32ppcvxworks.c:872 eelf_i386_vxworks.c:655
+#: eshelf_vxworks.c:525 eshlelf_vxworks.c:525
#, c-format
msgid " --force-dynamic Always create dynamic sections\n"
msgstr ""
-#: eavr1.c:124 eavr2.c:124 eavr25.c:124 eavr3.c:124 eavr31.c:124 eavr35.c:124
-#: eavr4.c:124 eavr5.c:124 eavr51.c:124 eavr6.c:124 eavrtiny.c:124
-#: eavrxmega1.c:124 eavrxmega2.c:124 eavrxmega3.c:124 eavrxmega4.c:124
-#: eavrxmega5.c:124 eavrxmega6.c:124 eavrxmega7.c:124
+#: eavr1.c:125 eavr2.c:125 eavr25.c:125 eavr3.c:125 eavr31.c:125 eavr35.c:125
+#: eavr4.c:125 eavr5.c:125 eavr51.c:125 eavr6.c:125 eavrtiny.c:125
+#: eavrxmega1.c:125 eavrxmega2.c:125 eavrxmega2_flmap.c:125 eavrxmega3.c:125
+#: eavrxmega4.c:125 eavrxmega4_flmap.c:125 eavrxmega5.c:125 eavrxmega6.c:125
+#: eavrxmega7.c:125
msgid "%X%P: can not setup the input section list: %E\n"
msgstr ""
-#: eavr1.c:159 eavr2.c:159 eavr25.c:159 eavr3.c:159 eavr31.c:159 eavr35.c:159
-#: eavr4.c:159 eavr5.c:159 eavr51.c:159 eavr6.c:159 eavrtiny.c:159
-#: eavrxmega1.c:159 eavrxmega2.c:159 eavrxmega3.c:159 eavrxmega4.c:159
-#: eavrxmega5.c:159 eavrxmega6.c:159 eavrxmega7.c:159
+#: eavr1.c:160 eavr2.c:160 eavr25.c:160 eavr3.c:160 eavr31.c:160 eavr35.c:160
+#: eavr4.c:160 eavr5.c:160 eavr51.c:160 eavr6.c:160 eavrtiny.c:160
+#: eavrxmega1.c:160 eavrxmega2.c:160 eavrxmega2_flmap.c:160 eavrxmega3.c:160
+#: eavrxmega4.c:160 eavrxmega4_flmap.c:160 eavrxmega5.c:160 eavrxmega6.c:160
+#: eavrxmega7.c:160
msgid "%X%P: can not create stub BFD: %E\n"
msgstr ""
-#: eavr1.c:571 eavr2.c:571 eavr25.c:571 eavr3.c:571 eavr31.c:571 eavr35.c:571
-#: eavr4.c:571 eavr5.c:571 eavr51.c:571 eavr6.c:571 eavrtiny.c:571
-#: eavrxmega1.c:571 eavrxmega2.c:571 eavrxmega3.c:571 eavrxmega4.c:571
-#: eavrxmega5.c:571 eavrxmega6.c:571 eavrxmega7.c:571
+#: eavr1.c:564 eavr2.c:564 eavr25.c:564 eavr3.c:564 eavr31.c:564 eavr35.c:564
+#: eavr4.c:564 eavr5.c:564 eavr51.c:564 eavr6.c:564 eavrtiny.c:564
+#: eavrxmega1.c:564 eavrxmega2.c:564 eavrxmega2_flmap.c:564 eavrxmega3.c:564
+#: eavrxmega4.c:564 eavrxmega4_flmap.c:564 eavrxmega5.c:564 eavrxmega6.c:564
+#: eavrxmega7.c:564
#, c-format
msgid ""
" --pmem-wrap-around=<val> Make the linker relaxation machine assume that "
@@ -5560,10 +5542,11 @@ msgid ""
"64k.\n"
msgstr ""
-#: eavr1.c:577 eavr2.c:577 eavr25.c:577 eavr3.c:577 eavr31.c:577 eavr35.c:577
-#: eavr4.c:577 eavr5.c:577 eavr51.c:577 eavr6.c:577 eavrtiny.c:577
-#: eavrxmega1.c:577 eavrxmega2.c:577 eavrxmega3.c:577 eavrxmega4.c:577
-#: eavrxmega5.c:577 eavrxmega6.c:577 eavrxmega7.c:577
+#: eavr1.c:570 eavr2.c:570 eavr25.c:570 eavr3.c:570 eavr31.c:570 eavr35.c:570
+#: eavr4.c:570 eavr5.c:570 eavr51.c:570 eavr6.c:570 eavrtiny.c:570
+#: eavrxmega1.c:570 eavrxmega2.c:570 eavrxmega2_flmap.c:570 eavrxmega3.c:570
+#: eavrxmega4.c:570 eavrxmega4_flmap.c:570 eavrxmega5.c:570 eavrxmega6.c:570
+#: eavrxmega7.c:570
#, c-format
msgid ""
" --no-call-ret-replacement The relaxation machine normally will\n"
@@ -5573,10 +5556,11 @@ msgid ""
" This option disables this optimization.\n"
msgstr ""
-#: eavr1.c:585 eavr2.c:585 eavr25.c:585 eavr3.c:585 eavr31.c:585 eavr35.c:585
-#: eavr4.c:585 eavr5.c:585 eavr51.c:585 eavr6.c:585 eavrtiny.c:585
-#: eavrxmega1.c:585 eavrxmega2.c:585 eavrxmega3.c:585 eavrxmega4.c:585
-#: eavrxmega5.c:585 eavrxmega6.c:585 eavrxmega7.c:585
+#: eavr1.c:578 eavr2.c:578 eavr25.c:578 eavr3.c:578 eavr31.c:578 eavr35.c:578
+#: eavr4.c:578 eavr5.c:578 eavr51.c:578 eavr6.c:578 eavrtiny.c:578
+#: eavrxmega1.c:578 eavrxmega2.c:578 eavrxmega2_flmap.c:578 eavrxmega3.c:578
+#: eavrxmega4.c:578 eavrxmega4_flmap.c:578 eavrxmega5.c:578 eavrxmega6.c:578
+#: eavrxmega7.c:578
#, c-format
msgid ""
" --no-stubs If the linker detects to attempt to access\n"
@@ -5586,38 +5570,40 @@ msgid ""
"switch.\n"
msgstr ""
-#: eavr1.c:593 eavr2.c:593 eavr25.c:593 eavr3.c:593 eavr31.c:593 eavr35.c:593
-#: eavr4.c:593 eavr5.c:593 eavr51.c:593 eavr6.c:593 eavrtiny.c:593
-#: eavrxmega1.c:593 eavrxmega2.c:593 eavrxmega3.c:593 eavrxmega4.c:593
-#: eavrxmega5.c:593 eavrxmega6.c:593 eavrxmega7.c:593
+#: eavr1.c:586 eavr2.c:586 eavr25.c:586 eavr3.c:586 eavr31.c:586 eavr35.c:586
+#: eavr4.c:586 eavr5.c:586 eavr51.c:586 eavr6.c:586 eavrtiny.c:586
+#: eavrxmega1.c:586 eavrxmega2.c:586 eavrxmega2_flmap.c:586 eavrxmega3.c:586
+#: eavrxmega4.c:586 eavrxmega4_flmap.c:586 eavrxmega5.c:586 eavrxmega6.c:586
+#: eavrxmega7.c:586
#, c-format
msgid " --debug-stubs Used for debugging avr-ld.\n"
msgstr ""
-#: eavr1.c:595 eavr2.c:595 eavr25.c:595 eavr3.c:595 eavr31.c:595 eavr35.c:595
-#: eavr4.c:595 eavr5.c:595 eavr51.c:595 eavr6.c:595 eavrtiny.c:595
-#: eavrxmega1.c:595 eavrxmega2.c:595 eavrxmega3.c:595 eavrxmega4.c:595
-#: eavrxmega5.c:595 eavrxmega6.c:595 eavrxmega7.c:595
+#: eavr1.c:588 eavr2.c:588 eavr25.c:588 eavr3.c:588 eavr31.c:588 eavr35.c:588
+#: eavr4.c:588 eavr5.c:588 eavr51.c:588 eavr6.c:588 eavrtiny.c:588
+#: eavrxmega1.c:588 eavrxmega2.c:588 eavrxmega2_flmap.c:588 eavrxmega3.c:588
+#: eavrxmega4.c:588 eavrxmega4_flmap.c:588 eavrxmega5.c:588 eavrxmega6.c:588
+#: eavrxmega7.c:588
#, c-format
msgid " --debug-relax Used for debugging avr-ld.\n"
msgstr ""
-#: ecskyelf.c:277 ecskyelf_linux.c:277
+#: ecskyelf.c:278 ecskyelf_linux.c:278
msgid "%X%P: cannot size stub section: %E\n"
msgstr ""
-#: ecskyelf.c:294 ecskyelf_linux.c:294
+#: ecskyelf.c:295 ecskyelf_linux.c:295
msgid "%X%P: cannot build stubs: %E\n"
msgstr ""
-#: ecskyelf.c:587 ecskyelf_linux.c:754
+#: ecskyelf.c:593 ecskyelf_linux.c:790
#, c-format
msgid ""
" --[no-]branch-stub Disable/enable use of stubs to expand branch\n"
" instructions that cannot reach the target.\n"
msgstr ""
-#: ecskyelf.c:591 ecskyelf_linux.c:758
+#: ecskyelf.c:597 ecskyelf_linux.c:794
#, c-format
msgid ""
" --stub-group-size=N Maximum size of a group of input sections\n"
@@ -5626,168 +5612,168 @@ msgstr ""
#: ed30v_e.c:73 ed30v_o.c:73 ed30velf.c:73 eelf32_dlx.c:73 eelf32fr30.c:73
#: eelf32frv.c:73 eelf32ft32.c:73 eelf32iq10.c:73 eelf32iq2000.c:73
-#: eelf32mt.c:73 em9s12zelf.c:73 emn10200.c:73 emoxiebox.c:73 emsp430X.c:98
-#: emsp430elf.c:98 epjelf.c:73 epjlelf.c:73 exgateelf.c:73
+#: eelf32mt.c:73 em9s12zelf.c:73 emn10200.c:73 emoxiebox.c:73 emsp430X.c:99
+#: emsp430elf.c:99 epjelf.c:73 epjlelf.c:73 exgateelf.c:73
msgid "%X%P: can not size group sections: %E\n"
msgstr ""
-#: eelf32_spu.c:257 ev850.c:75 ev850_rh850.c:75
+#: eelf32_spu.c:258 ev850.c:76 ev850_rh850.c:76
msgid "%X%P: can not create note section: %E\n"
msgstr ""
-#: eelf32_spu.c:346
+#: eelf32_spu.c:347
msgid "%F%P: no built-in overlay manager\n"
msgstr ""
-#: eelf32_spu.c:356
+#: eelf32_spu.c:357
msgid "%X%P: can not open built-in overlay manager: %E\n"
msgstr ""
-#: eelf32_spu.c:362
+#: eelf32_spu.c:363
msgid "%X%P: can not load built-in overlay manager: %E\n"
msgstr ""
-#: eelf32_spu.c:422
+#: eelf32_spu.c:423
msgid "%X%P: can not find overlays: %E\n"
msgstr ""
-#: eelf32_spu.c:429
+#: eelf32_spu.c:430
msgid "%P: --auto-overlay ignored with user overlay script\n"
msgstr ""
-#: eelf32_spu.c:450
+#: eelf32_spu.c:451
msgid "%X%P: can not size overlay stubs: %E\n"
msgstr ""
-#: eelf32_spu.c:523
+#: eelf32_spu.c:524
msgid "%F%P: can not open script: %E\n"
msgstr ""
-#: eelf32_spu.c:570
+#: eelf32_spu.c:571
msgid "%X%P: %pA exceeds local store range\n"
msgstr ""
-#: eelf32_spu.c:573
+#: eelf32_spu.c:574
msgid "%P: --auto-overlay ignored with zero local store range\n"
msgstr ""
-#: eelf32_spu.c:677
+#: eelf32_spu.c:678
#, c-format
msgid "running: %s \"%s\" \"%s\" \"%s\" \"%s\"\n"
msgstr ""
-#: eelf32_spu.c:1064
+#: eelf32_spu.c:1052
msgid "%F%P: invalid --local-store address range `%s'\n"
msgstr ""
-#: eelf32_spu.c:1100
+#: eelf32_spu.c:1088
msgid "%F%P: invalid --num-lines/--num-regions `%u'\n"
msgstr ""
-#: eelf32_spu.c:1105
+#: eelf32_spu.c:1093
msgid "%F%P: invalid --line-size/--region-size `%u'\n"
msgstr ""
-#: eelf32_spu.c:1126
+#: eelf32_spu.c:1114
msgid "%F%P: invalid --num-lines/--num-regions `%s'\n"
msgstr ""
-#: eelf32_spu.c:1139
+#: eelf32_spu.c:1127
msgid "%F%P: invalid --line-size/--region-size `%s'\n"
msgstr ""
-#: eelf32_spu.c:1148
+#: eelf32_spu.c:1136
msgid "%F%P: invalid --fixed-space value `%s'\n"
msgstr ""
-#: eelf32_spu.c:1157
+#: eelf32_spu.c:1145
msgid "%F%P: invalid --reserved-space value `%s'\n"
msgstr ""
-#: eelf32_spu.c:1166
+#: eelf32_spu.c:1154
msgid "%F%P: invalid --extra-stack-space value `%s'\n"
msgstr ""
-#: eelf32_spu.c:1203
+#: eelf32_spu.c:1191
#, c-format
msgid " --plugin Make SPU plugin\n"
msgstr ""
-#: eelf32_spu.c:1205
+#: eelf32_spu.c:1193
#, c-format
msgid " --no-overlays No overlay handling\n"
msgstr ""
-#: eelf32_spu.c:1207
+#: eelf32_spu.c:1195
#, c-format
msgid ""
" --compact-stubs Use smaller and possibly slower call stubs\n"
msgstr ""
-#: eelf32_spu.c:1209
+#: eelf32_spu.c:1197
#, c-format
msgid " --emit-stub-syms Add symbols on overlay call stubs\n"
msgstr ""
-#: eelf32_spu.c:1211
+#: eelf32_spu.c:1199
#, c-format
msgid ""
" --extra-overlay-stubs Add stubs on all calls out of overlay regions\n"
msgstr ""
-#: eelf32_spu.c:1213
+#: eelf32_spu.c:1201
#, c-format
msgid " --local-store=lo:hi Valid address range\n"
msgstr ""
-#: eelf32_spu.c:1215
+#: eelf32_spu.c:1203
#, c-format
msgid " --stack-analysis Estimate maximum stack requirement\n"
msgstr ""
-#: eelf32_spu.c:1217
+#: eelf32_spu.c:1205
#, c-format
msgid ""
" --emit-stack-syms Add sym giving stack needed for each func\n"
msgstr ""
-#: eelf32_spu.c:1219
+#: eelf32_spu.c:1207
#, c-format
msgid ""
" --auto-overlay [=filename] Create an overlay script in filename if\n"
" executable does not fit in local store\n"
msgstr ""
-#: eelf32_spu.c:1222
+#: eelf32_spu.c:1210
#, c-format
msgid " --auto-relink Rerun linker using auto-overlay script\n"
msgstr ""
-#: eelf32_spu.c:1224
+#: eelf32_spu.c:1212
#, c-format
msgid ""
" --overlay-rodata Place read-only data with associated function\n"
" code in overlays\n"
msgstr ""
-#: eelf32_spu.c:1227
+#: eelf32_spu.c:1215
#, c-format
msgid " --num-regions Number of overlay buffers (default 1)\n"
msgstr ""
-#: eelf32_spu.c:1229
+#: eelf32_spu.c:1217
#, c-format
msgid ""
" --region-size Size of overlay buffers (default 0, auto)\n"
msgstr ""
-#: eelf32_spu.c:1231
+#: eelf32_spu.c:1219
#, c-format
msgid ""
" --fixed-space=bytes Local store for non-overlay code and data\n"
msgstr ""
-#: eelf32_spu.c:1233
+#: eelf32_spu.c:1221
#, c-format
msgid ""
" --reserved-space=bytes Local store for stack and heap. If not "
@@ -5796,7 +5782,7 @@ msgid ""
"heap\n"
msgstr ""
-#: eelf32_spu.c:1236
+#: eelf32_spu.c:1224
#, c-format
msgid ""
" --extra-stack-space=bytes Space for negative sp access (default 2000) "
@@ -5804,570 +5790,612 @@ msgid ""
" --reserved-space not given\n"
msgstr ""
-#: eelf32_spu.c:1239
+#: eelf32_spu.c:1227
#, c-format
msgid " --soft-icache Generate software icache overlays\n"
msgstr ""
-#: eelf32_spu.c:1241
+#: eelf32_spu.c:1229
#, c-format
msgid ""
" --num-lines Number of soft-icache lines (default 32)\n"
msgstr ""
-#: eelf32_spu.c:1243
+#: eelf32_spu.c:1231
#, c-format
msgid " --line-size Size of soft-icache lines (default 1k)\n"
msgstr ""
-#: eelf32_spu.c:1245
+#: eelf32_spu.c:1233
#, c-format
msgid " --non-ia-text Allow non-icache code in icache lines\n"
msgstr ""
-#: eelf32_spu.c:1247
+#: eelf32_spu.c:1235
#, c-format
msgid " --lrlive-analysis Scan function prologue for lr liveness\n"
msgstr ""
-#: eelf32_tic6x_be.c:90 eelf32_tic6x_elf_be.c:90 eelf32_tic6x_elf_le.c:90
-#: eelf32_tic6x_le.c:90 eelf32_tic6x_linux_be.c:90 eelf32_tic6x_linux_le.c:90
+#: eelf32_tic6x_be.c:91 eelf32_tic6x_elf_be.c:91 eelf32_tic6x_elf_le.c:91
+#: eelf32_tic6x_le.c:91 eelf32_tic6x_linux_be.c:91 eelf32_tic6x_linux_le.c:91
msgid "%F%P: invalid --dsbt-index %d, outside DSBT size\n"
msgstr ""
-#: eelf32_tic6x_be.c:597 eelf32_tic6x_elf_be.c:597 eelf32_tic6x_elf_le.c:597
-#: eelf32_tic6x_le.c:597 eelf32_tic6x_linux_be.c:597
-#: eelf32_tic6x_linux_le.c:597
+#: eelf32_tic6x_be.c:618 eelf32_tic6x_elf_be.c:618 eelf32_tic6x_elf_le.c:618
+#: eelf32_tic6x_le.c:618 eelf32_tic6x_linux_be.c:618
+#: eelf32_tic6x_linux_le.c:618
msgid "%F%P: invalid --dsbt-index %s\n"
msgstr ""
-#: eelf32_tic6x_be.c:607 eelf32_tic6x_elf_be.c:607 eelf32_tic6x_elf_le.c:607
-#: eelf32_tic6x_le.c:607 eelf32_tic6x_linux_be.c:607
-#: eelf32_tic6x_linux_le.c:607
+#: eelf32_tic6x_be.c:628 eelf32_tic6x_elf_be.c:628 eelf32_tic6x_elf_le.c:628
+#: eelf32_tic6x_le.c:628 eelf32_tic6x_linux_be.c:628
+#: eelf32_tic6x_linux_le.c:628
msgid "%F%P: invalid --dsbt-size %s\n"
msgstr ""
-#: eelf32_tic6x_be.c:623 eelf32_tic6x_elf_be.c:623 eelf32_tic6x_elf_le.c:623
-#: eelf32_tic6x_le.c:623 eelf32_tic6x_linux_be.c:623
-#: eelf32_tic6x_linux_le.c:623
+#: eelf32_tic6x_be.c:644 eelf32_tic6x_elf_be.c:644 eelf32_tic6x_elf_le.c:644
+#: eelf32_tic6x_le.c:644 eelf32_tic6x_linux_be.c:644
+#: eelf32_tic6x_linux_le.c:644
#, c-format
msgid ""
" --dsbt-index <index> Use this as the DSBT index for the output object\n"
msgstr ""
-#: eelf32_tic6x_be.c:624 eelf32_tic6x_elf_be.c:624 eelf32_tic6x_elf_le.c:624
-#: eelf32_tic6x_le.c:624 eelf32_tic6x_linux_be.c:624
-#: eelf32_tic6x_linux_le.c:624
+#: eelf32_tic6x_be.c:645 eelf32_tic6x_elf_be.c:645 eelf32_tic6x_elf_le.c:645
+#: eelf32_tic6x_le.c:645 eelf32_tic6x_linux_be.c:645
+#: eelf32_tic6x_linux_le.c:645
#, c-format
msgid ""
" --dsbt-size <index> Use this as the number of entries in the DSBT "
"table\n"
msgstr ""
-#: eelf32_tic6x_be.c:625 eelf32_tic6x_elf_be.c:625 eelf32_tic6x_elf_le.c:625
-#: eelf32_tic6x_le.c:625 eelf32_tic6x_linux_be.c:625
-#: eelf32_tic6x_linux_le.c:625
+#: eelf32_tic6x_be.c:646 eelf32_tic6x_elf_be.c:646 eelf32_tic6x_elf_le.c:646
+#: eelf32_tic6x_le.c:646 eelf32_tic6x_linux_be.c:646
+#: eelf32_tic6x_linux_le.c:646
#, c-format
msgid " --no-merge-exidx-entries\n"
msgstr ""
-#: eelf32_tic6x_be.c:626 eelf32_tic6x_elf_be.c:626 eelf32_tic6x_elf_le.c:626
-#: eelf32_tic6x_le.c:626 eelf32_tic6x_linux_be.c:626
-#: eelf32_tic6x_linux_le.c:626
+#: eelf32_tic6x_be.c:647 eelf32_tic6x_elf_be.c:647 eelf32_tic6x_elf_le.c:647
+#: eelf32_tic6x_le.c:647 eelf32_tic6x_linux_be.c:647
+#: eelf32_tic6x_linux_le.c:647
#, c-format
msgid " Disable merging exidx entries\n"
msgstr ""
-#: eelf32_x86_64.c:5647 eelf_i386.c:5266 eelf_i386_be.c:503
-#: eelf_i386_fbsd.c:543 eelf_i386_haiku.c:543 eelf_i386_ldso.c:518
-#: eelf_i386_sol2.c:675 eelf_i386_vxworks.c:570 eelf_iamcu.c:543
-#: eelf_x86_64.c:5647 eelf_x86_64_cloudabi.c:546 eelf_x86_64_fbsd.c:546
-#: eelf_x86_64_haiku.c:546 eelf_x86_64_sol2.c:678
+#: eelf32_x86_64.c:7867 eelf_i386.c:7322 eelf_i386_be.c:529
+#: eelf_i386_fbsd.c:580 eelf_i386_haiku.c:580 eelf_i386_ldso.c:540
+#: eelf_i386_sol2.c:712 eelf_i386_vxworks.c:606 eelf_iamcu.c:580
+#: eelf_x86_64.c:7867 eelf_x86_64_cloudabi.c:591 eelf_x86_64_fbsd.c:591
+#: eelf_x86_64_haiku.c:591 eelf_x86_64_sol2.c:723
msgid "%F%P: invalid number for -z call-nop=prefix-: %s\n"
msgstr ""
-#: eelf32_x86_64.c:5656 eelf_i386.c:5275 eelf_i386_be.c:512
-#: eelf_i386_fbsd.c:552 eelf_i386_haiku.c:552 eelf_i386_ldso.c:527
-#: eelf_i386_sol2.c:684 eelf_i386_vxworks.c:579 eelf_iamcu.c:552
-#: eelf_x86_64.c:5656 eelf_x86_64_cloudabi.c:555 eelf_x86_64_fbsd.c:555
-#: eelf_x86_64_haiku.c:555 eelf_x86_64_sol2.c:687
+#: eelf32_x86_64.c:7876 eelf_i386.c:7331 eelf_i386_be.c:538
+#: eelf_i386_fbsd.c:589 eelf_i386_haiku.c:589 eelf_i386_ldso.c:549
+#: eelf_i386_sol2.c:721 eelf_i386_vxworks.c:615 eelf_iamcu.c:589
+#: eelf_x86_64.c:7876 eelf_x86_64_cloudabi.c:600 eelf_x86_64_fbsd.c:600
+#: eelf_x86_64_haiku.c:600 eelf_x86_64_sol2.c:732
msgid "%F%P: invalid number for -z call-nop=suffix-: %s\n"
msgstr ""
-#: eelf32_x86_64.c:5661 eelf_i386.c:5280 eelf_i386_be.c:517
-#: eelf_i386_fbsd.c:557 eelf_i386_haiku.c:557 eelf_i386_ldso.c:532
-#: eelf_i386_sol2.c:689 eelf_i386_vxworks.c:584 eelf_iamcu.c:557
-#: eelf_x86_64.c:5661 eelf_x86_64_cloudabi.c:560 eelf_x86_64_fbsd.c:560
-#: eelf_x86_64_haiku.c:560 eelf_x86_64_sol2.c:692
+#: eelf32_x86_64.c:7881 eelf_i386.c:7336 eelf_i386_be.c:543
+#: eelf_i386_fbsd.c:594 eelf_i386_haiku.c:594 eelf_i386_ldso.c:554
+#: eelf_i386_sol2.c:726 eelf_i386_vxworks.c:620 eelf_iamcu.c:594
+#: eelf_x86_64.c:7881 eelf_x86_64_cloudabi.c:605 eelf_x86_64_fbsd.c:605
+#: eelf_x86_64_haiku.c:605 eelf_x86_64_sol2.c:737
msgid "%F%P: unsupported option: -z %s\n"
msgstr ""
-#: eelf32_x86_64.c:5683 eelf_i386.c:5302 eelf_i386_fbsd.c:579
-#: eelf_i386_haiku.c:579 eelf_x86_64.c:5683 eelf_x86_64_cloudabi.c:582
-#: eelf_x86_64_fbsd.c:582 eelf_x86_64_haiku.c:582 eelf_x86_64_sol2.c:714
+#: eelf32_x86_64.c:7903 eelf_i386.c:7358 eelf_i386_fbsd.c:616
+#: eelf_i386_haiku.c:616 eelf_x86_64.c:7903 eelf_x86_64_cloudabi.c:627
+#: eelf_x86_64_fbsd.c:627 eelf_x86_64_haiku.c:627 eelf_x86_64_sol2.c:759
msgid "%F%P: invalid option for -z cet-report=: %s\n"
msgstr ""
-#: eelf32_x86_64.c:5697 eelf_i386.c:5316 eelf_i386_fbsd.c:593
-#: eelf_i386_haiku.c:593 eelf_x86_64.c:5697 eelf_x86_64_cloudabi.c:596
-#: eelf_x86_64_fbsd.c:596 eelf_x86_64_haiku.c:596 eelf_x86_64_sol2.c:728
+#: eelf32_x86_64.c:7917 eelf_i386.c:7372 eelf_i386_fbsd.c:630
+#: eelf_i386_haiku.c:630 eelf_x86_64.c:7917 eelf_x86_64_cloudabi.c:641
+#: eelf_x86_64_fbsd.c:641 eelf_x86_64_haiku.c:641 eelf_x86_64_sol2.c:773
msgid "%F%P: invalid x86-64 ISA level: %s\n"
msgstr ""
-#: eelf32_x86_64.c:5744 eelf_i386.c:5358 eelf_i386_be.c:533
-#: eelf_i386_fbsd.c:635 eelf_i386_haiku.c:635 eelf_i386_ldso.c:557
-#: eelf_i386_sol2.c:714 eelf_i386_vxworks.c:605 eelf_iamcu.c:582
-#: eelf_x86_64.c:5794 eelf_x86_64_cloudabi.c:693 eelf_x86_64_fbsd.c:693
-#: eelf_x86_64_haiku.c:693 eelf_x86_64_sol2.c:825
+#: eelf32_x86_64.c:7933 eelf_i386.c:7388 eelf_i386_fbsd.c:646
+#: eelf_i386_haiku.c:646 eelf_x86_64.c:7933 eelf_x86_64_cloudabi.c:657
+#: eelf_x86_64_fbsd.c:657 eelf_x86_64_haiku.c:657 eelf_x86_64_sol2.c:789
+msgid "%F%P: invalid option for -z isa-level-report=: %s\n"
+msgstr ""
+
+#: eelf32_x86_64.c:7980 eelf_i386.c:7430 eelf_i386_be.c:559
+#: eelf_i386_fbsd.c:688 eelf_i386_haiku.c:688 eelf_i386_ldso.c:579
+#: eelf_i386_sol2.c:751 eelf_i386_vxworks.c:641 eelf_iamcu.c:619
+#: eelf_x86_64.c:8030 eelf_x86_64_cloudabi.c:754 eelf_x86_64_fbsd.c:754
+#: eelf_x86_64_haiku.c:754 eelf_x86_64_sol2.c:886
#, c-format
msgid ""
" -z noextern-protected-data Do not treat protected data symbol as "
"external\n"
msgstr ""
-#: eelf32_x86_64.c:5746 eelf_i386.c:5360 eelf_i386_be.c:535
-#: eelf_i386_fbsd.c:637 eelf_i386_haiku.c:637 eelf_i386_ldso.c:559
-#: eelf_i386_sol2.c:716 eelf_i386_vxworks.c:607 eelf_iamcu.c:584
-#: eelf_x86_64.c:5796 eelf_x86_64_cloudabi.c:695 eelf_x86_64_fbsd.c:695
-#: eelf_x86_64_haiku.c:695 eelf_x86_64_sol2.c:827
+#: eelf32_x86_64.c:7982 eelf_i386.c:7432 eelf_i386_be.c:561
+#: eelf_i386_fbsd.c:690 eelf_i386_haiku.c:690 eelf_i386_ldso.c:581
+#: eelf_i386_sol2.c:753 eelf_i386_vxworks.c:643 eelf_iamcu.c:621
+#: eelf_x86_64.c:8032 eelf_x86_64_cloudabi.c:756 eelf_x86_64_fbsd.c:756
+#: eelf_x86_64_haiku.c:756 eelf_x86_64_sol2.c:888
#, c-format
msgid " -z indirect-extern-access Enable indirect external access\n"
msgstr ""
-#: eelf32_x86_64.c:5748 eelf_i386.c:5362 eelf_i386_be.c:537
-#: eelf_i386_fbsd.c:639 eelf_i386_haiku.c:639 eelf_i386_ldso.c:561
-#: eelf_i386_sol2.c:718 eelf_i386_vxworks.c:609 eelf_iamcu.c:586
-#: eelf_x86_64.c:5798 eelf_x86_64_cloudabi.c:697 eelf_x86_64_fbsd.c:697
-#: eelf_x86_64_haiku.c:697 eelf_x86_64_sol2.c:829
+#: eelf32_x86_64.c:7984 eelf_i386.c:7434 eelf_i386_be.c:563
+#: eelf_i386_fbsd.c:692 eelf_i386_haiku.c:692 eelf_i386_ldso.c:583
+#: eelf_i386_sol2.c:755 eelf_i386_vxworks.c:645 eelf_iamcu.c:623
+#: eelf_x86_64.c:8034 eelf_x86_64_cloudabi.c:758 eelf_x86_64_fbsd.c:758
+#: eelf_x86_64_haiku.c:758 eelf_x86_64_sol2.c:890
#, c-format
msgid ""
" -z noindirect-extern-access Disable indirect external access (default)\n"
msgstr ""
-#: eelf32_x86_64.c:5751 eelf32lppc.c:849 eelf32lppclinux.c:849
-#: eelf32lppcnto.c:849 eelf32lppcsim.c:849 eelf32ppc.c:849
-#: eelf32ppc_fbsd.c:849 eelf32ppchaiku.c:849 eelf32ppclinux.c:849
-#: eelf32ppcnto.c:849 eelf32ppcsim.c:849 eelf32ppcvxworks.c:827
-#: eelf32ppcwindiss.c:849 eelf64lppc.c:1378 eelf64lppc_fbsd.c:1378
-#: eelf64ppc.c:1378 eelf64ppc_fbsd.c:1378 eelf_i386.c:5365 eelf_i386_be.c:540
-#: eelf_i386_fbsd.c:642 eelf_i386_haiku.c:642 eelf_i386_ldso.c:564
-#: eelf_i386_sol2.c:721 eelf_i386_vxworks.c:612 eelf_iamcu.c:589
-#: eelf_x86_64.c:5801 eelf_x86_64_cloudabi.c:700 eelf_x86_64_fbsd.c:700
-#: eelf_x86_64_haiku.c:700 eelf_x86_64_sol2.c:832
+#: eelf32_x86_64.c:7987 eelf32lppc.c:868 eelf32lppclinux.c:868
+#: eelf32lppcnto.c:868 eelf32lppcsim.c:868 eelf32ppc.c:868
+#: eelf32ppc_fbsd.c:868 eelf32ppchaiku.c:868 eelf32ppclinux.c:868
+#: eelf32ppcnto.c:868 eelf32ppcsim.c:868 eelf32ppcvxworks.c:842
+#: eelf32ppcwindiss.c:868 eelf64lppc.c:1382 eelf64lppc_fbsd.c:1382
+#: eelf64ppc.c:1382 eelf64ppc_fbsd.c:1382 eelf_i386.c:7437 eelf_i386_be.c:566
+#: eelf_i386_fbsd.c:695 eelf_i386_haiku.c:695 eelf_i386_ldso.c:586
+#: eelf_i386_sol2.c:758 eelf_i386_vxworks.c:648 eelf_iamcu.c:626
+#: eelf_x86_64.c:8037 eelf_x86_64_cloudabi.c:761 eelf_x86_64_fbsd.c:761
+#: eelf_x86_64_haiku.c:761 eelf_x86_64_sol2.c:893
#, c-format
msgid ""
" -z dynamic-undefined-weak Make undefined weak symbols dynamic\n"
" -z nodynamic-undefined-weak Do not make undefined weak symbols dynamic\n"
msgstr ""
-#: eelf32_x86_64.c:5755 eelf_x86_64.c:5805 eelf_x86_64_cloudabi.c:704
-#: eelf_x86_64_fbsd.c:704 eelf_x86_64_haiku.c:704 eelf_x86_64_sol2.c:836
+#: eelf32_x86_64.c:7991 eelf_x86_64.c:8041 eelf_x86_64_cloudabi.c:765
+#: eelf_x86_64_fbsd.c:765 eelf_x86_64_haiku.c:765 eelf_x86_64_sol2.c:897
#, c-format
msgid " -z noreloc-overflow Disable relocation overflow check\n"
msgstr ""
-#: eelf32_x86_64.c:5758 eelf_i386.c:5369 eelf_i386_be.c:544
-#: eelf_i386_fbsd.c:646 eelf_i386_haiku.c:646 eelf_i386_ldso.c:568
-#: eelf_i386_sol2.c:725 eelf_i386_vxworks.c:616 eelf_iamcu.c:593
-#: eelf_x86_64.c:5808 eelf_x86_64_cloudabi.c:707 eelf_x86_64_fbsd.c:707
-#: eelf_x86_64_haiku.c:707 eelf_x86_64_sol2.c:839
+#: eelf32_x86_64.c:7994 eelf_i386.c:7441 eelf_i386_be.c:570
+#: eelf_i386_fbsd.c:699 eelf_i386_haiku.c:699 eelf_i386_ldso.c:590
+#: eelf_i386_sol2.c:762 eelf_i386_vxworks.c:652 eelf_iamcu.c:630
+#: eelf_x86_64.c:8044 eelf_x86_64_cloudabi.c:768 eelf_x86_64_fbsd.c:768
+#: eelf_x86_64_haiku.c:768 eelf_x86_64_sol2.c:900
#, c-format
msgid " -z call-nop=PADDING Use PADDING as 1-byte NOP for branch\n"
msgstr ""
-#: eelf32_x86_64.c:5761 eelf_i386.c:5372 eelf_i386_fbsd.c:649
-#: eelf_i386_haiku.c:649 eelf_x86_64.c:5811 eelf_x86_64_cloudabi.c:710
-#: eelf_x86_64_fbsd.c:710 eelf_x86_64_haiku.c:710 eelf_x86_64_sol2.c:842
+#: eelf32_x86_64.c:7997 eelf_i386.c:7444 eelf_i386_fbsd.c:702
+#: eelf_i386_haiku.c:702 eelf_x86_64.c:8047 eelf_x86_64_cloudabi.c:771
+#: eelf_x86_64_fbsd.c:771 eelf_x86_64_haiku.c:771 eelf_x86_64_sol2.c:903
#, c-format
msgid " -z ibtplt Generate IBT-enabled PLT entries\n"
msgstr ""
-#: eelf32_x86_64.c:5763 eelf_i386.c:5374 eelf_i386_fbsd.c:651
-#: eelf_i386_haiku.c:651 eelf_x86_64.c:5813 eelf_x86_64_cloudabi.c:712
-#: eelf_x86_64_fbsd.c:712 eelf_x86_64_haiku.c:712 eelf_x86_64_sol2.c:844
+#: eelf32_x86_64.c:7999 eelf_i386.c:7446 eelf_i386_fbsd.c:704
+#: eelf_i386_haiku.c:704 eelf_x86_64.c:8049 eelf_x86_64_cloudabi.c:773
+#: eelf_x86_64_fbsd.c:773 eelf_x86_64_haiku.c:773 eelf_x86_64_sol2.c:905
#, c-format
msgid " -z ibt Generate GNU_PROPERTY_X86_FEATURE_1_IBT\n"
msgstr ""
-#: eelf32_x86_64.c:5765 eelf_i386.c:5376 eelf_i386_fbsd.c:653
-#: eelf_i386_haiku.c:653 eelf_x86_64.c:5815 eelf_x86_64_cloudabi.c:714
-#: eelf_x86_64_fbsd.c:714 eelf_x86_64_haiku.c:714 eelf_x86_64_sol2.c:846
+#: eelf32_x86_64.c:8001 eelf_i386.c:7448 eelf_i386_fbsd.c:706
+#: eelf_i386_haiku.c:706 eelf_x86_64.c:8051 eelf_x86_64_cloudabi.c:775
+#: eelf_x86_64_fbsd.c:775 eelf_x86_64_haiku.c:775 eelf_x86_64_sol2.c:907
#, c-format
msgid ""
" -z shstk Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK\n"
msgstr ""
-#: eelf32_x86_64.c:5767 eelf_i386.c:5378 eelf_i386_fbsd.c:655
-#: eelf_i386_haiku.c:655 eelf_x86_64.c:5817 eelf_x86_64_cloudabi.c:716
-#: eelf_x86_64_fbsd.c:716 eelf_x86_64_haiku.c:716 eelf_x86_64_sol2.c:848
+#: eelf32_x86_64.c:8003 eelf_i386.c:7450 eelf_i386_fbsd.c:708
+#: eelf_i386_haiku.c:708 eelf_x86_64.c:8053 eelf_x86_64_cloudabi.c:777
+#: eelf_x86_64_fbsd.c:777 eelf_x86_64_haiku.c:777 eelf_x86_64_sol2.c:909
#, c-format
msgid ""
" -z cet-report=[none|warning|error] (default: none)\n"
" Report missing IBT and SHSTK properties\n"
msgstr ""
-#: eelf32_x86_64.c:5771 eelf_i386.c:5382 eelf_i386_fbsd.c:659
-#: eelf_i386_haiku.c:659 eelf_x86_64.c:5821 eelf_x86_64_cloudabi.c:720
-#: eelf_x86_64_fbsd.c:720 eelf_x86_64_haiku.c:720 eelf_x86_64_sol2.c:852
+#: eelf32_x86_64.c:8007 eelf_i386.c:7454 eelf_i386_fbsd.c:712
+#: eelf_i386_haiku.c:712 eelf_x86_64.c:8057 eelf_x86_64_cloudabi.c:781
+#: eelf_x86_64_fbsd.c:781 eelf_x86_64_haiku.c:781 eelf_x86_64_sol2.c:913
#, c-format
msgid " -z report-relative-reloc Report relative relocations\n"
msgstr ""
-#: eelf32_x86_64.c:5774 eelf_i386.c:5385 eelf_i386_fbsd.c:662
-#: eelf_i386_haiku.c:662 eelf_x86_64.c:5824 eelf_x86_64_cloudabi.c:723
-#: eelf_x86_64_fbsd.c:723 eelf_x86_64_haiku.c:723 eelf_x86_64_sol2.c:855
+#: eelf32_x86_64.c:8010 eelf_i386.c:7457 eelf_i386_fbsd.c:715
+#: eelf_i386_haiku.c:715 eelf_x86_64.c:8060 eelf_x86_64_cloudabi.c:784
+#: eelf_x86_64_fbsd.c:784 eelf_x86_64_haiku.c:784 eelf_x86_64_sol2.c:916
#, c-format
msgid ""
" -z x86-64-{baseline|v[234]} Mark x86-64-{baseline|v[234]} ISA level as "
"needed\n"
msgstr ""
-#: eelf32_x86_64.c:5777 eelf_x86_64.c:5841 eelf_x86_64_cloudabi.c:740
-#: eelf_x86_64_fbsd.c:740 eelf_x86_64_haiku.c:740 eelf_x86_64_sol2.c:872
+#: eelf32_x86_64.c:8013 eelf_i386.c:7460 eelf_i386_fbsd.c:718
+#: eelf_i386_haiku.c:718 eelf_x86_64.c:8063 eelf_x86_64_cloudabi.c:787
+#: eelf_x86_64_fbsd.c:787 eelf_x86_64_haiku.c:787 eelf_x86_64_sol2.c:919
+#, c-format
+msgid ""
+" -z isa-level-report=[none|all|needed|used] (default: none)\n"
+" Report x86-64 ISA level\n"
+msgstr ""
+
+#: eelf32_x86_64.c:8018 eelf_x86_64.c:8082 eelf_x86_64_cloudabi.c:806
+#: eelf_x86_64_fbsd.c:806 eelf_x86_64_haiku.c:806 eelf_x86_64_sol2.c:938
+#, c-format
+msgid ""
+" -z mark-plt Mark PLT with dynamic tags (default)\n"
+" -z nomark-plt Do not mark PLT with dynamic tags\n"
+msgstr ""
+
+#: eelf32_x86_64.c:8022 eelf_x86_64.c:8086 eelf_x86_64_cloudabi.c:810
+#: eelf_x86_64_fbsd.c:810 eelf_x86_64_haiku.c:810 eelf_x86_64_sol2.c:942
#, c-format
msgid ""
" -z mark-plt Mark PLT with dynamic tags\n"
" -z nomark-plt Do not mark PLT with dynamic tags (default)\n"
msgstr ""
-#: eelf32_x86_64.c:5781 eelf64lppc.c:1382 eelf64lppc_fbsd.c:1382
-#: eelf64ppc.c:1382 eelf64ppc_fbsd.c:1382 eelf_i386.c:5388
-#: eelf_i386_fbsd.c:665 eelf_i386_haiku.c:665 eelf_x86_64.c:5845
-#: eelf_x86_64_cloudabi.c:744 eelf_x86_64_fbsd.c:744 eelf_x86_64_haiku.c:744
-#: eelf_x86_64_sol2.c:876
+#: eelf32_x86_64.c:8026 eelf64loongarch.c:621 eelf64lppc.c:1386
+#: eelf64lppc_fbsd.c:1386 eelf64ppc.c:1386 eelf64ppc_fbsd.c:1386
+#: eelf_i386.c:7464 eelf_i386_fbsd.c:722 eelf_i386_haiku.c:722
+#: eelf_x86_64.c:8090 eelf_x86_64_cloudabi.c:814 eelf_x86_64_fbsd.c:814
+#: eelf_x86_64_haiku.c:814 eelf_x86_64_sol2.c:946
#, c-format
msgid " -z pack-relative-relocs Pack relative relocations\n"
msgstr ""
-#: eelf32_x86_64.c:5783 eelf64lppc.c:1384 eelf64lppc_fbsd.c:1384
-#: eelf64ppc.c:1384 eelf64ppc_fbsd.c:1384 eelf_i386.c:5390
-#: eelf_i386_fbsd.c:667 eelf_i386_haiku.c:667 eelf_x86_64.c:5847
-#: eelf_x86_64_cloudabi.c:746 eelf_x86_64_fbsd.c:746 eelf_x86_64_haiku.c:746
-#: eelf_x86_64_sol2.c:878
+#: eelf32_x86_64.c:8028 eelf64loongarch.c:623 eelf64lppc.c:1388
+#: eelf64lppc_fbsd.c:1388 eelf64ppc.c:1388 eelf64ppc_fbsd.c:1388
+#: eelf_i386.c:7466 eelf_i386_fbsd.c:724 eelf_i386_haiku.c:724
+#: eelf_x86_64.c:8092 eelf_x86_64_cloudabi.c:816 eelf_x86_64_fbsd.c:816
+#: eelf_x86_64_haiku.c:816 eelf_x86_64_sol2.c:948
#, c-format
msgid ""
" -z nopack-relative-relocs Do not pack relative relocations (default)\n"
msgstr ""
-#: eelf32b4300.c:732 eelf32bmip.c:732 eelf32bmipn32.c:746 eelf32bsmip.c:746
-#: eelf32btsmip.c:732 eelf32btsmip_fbsd.c:732 eelf32btsmipn32.c:732
-#: eelf32btsmipn32_fbsd.c:732 eelf32ebmip.c:732 eelf32ebmipvxworks.c:771
-#: eelf32elmip.c:732 eelf32elmipvxworks.c:771 eelf32l4300.c:732
-#: eelf32lmip.c:732 eelf32lr5900.c:591 eelf32lr5900n32.c:590 eelf32lsmip.c:732
-#: eelf32ltsmip.c:732 eelf32ltsmip_fbsd.c:732 eelf32ltsmipn32.c:732
-#: eelf32ltsmipn32_fbsd.c:732 eelf32mipswindiss.c:565 eelf64bmip.c:746
-#: eelf64btsmip.c:732 eelf64btsmip_fbsd.c:732 eelf64ltsmip.c:732
-#: eelf64ltsmip_fbsd.c:732 eelf_mipsel_haiku.c:732
+#: eelf32b4300.c:762 eelf32bmip.c:762 eelf32bmipn32.c:776 eelf32bsmip.c:776
+#: eelf32btsmip.c:762 eelf32btsmip_fbsd.c:762 eelf32btsmipn32.c:762
+#: eelf32btsmipn32_fbsd.c:762 eelf32ebmip.c:762 eelf32ebmipvxworks.c:797
+#: eelf32elmip.c:762 eelf32elmipvxworks.c:797 eelf32l4300.c:762
+#: eelf32lmip.c:762 eelf32lr5900.c:606 eelf32lr5900n32.c:605 eelf32lsmip.c:762
+#: eelf32ltsmip.c:762 eelf32ltsmip_fbsd.c:762 eelf32ltsmipn32.c:762
+#: eelf32ltsmipn32_fbsd.c:762 eelf32mipswindiss.c:565 eelf64bmip.c:776
+#: eelf64btsmip.c:762 eelf64btsmip_fbsd.c:762 eelf64ltsmip.c:762
+#: eelf64ltsmip_fbsd.c:762 eelf_mipsel_haiku.c:762
#, c-format
msgid ""
" --insn32 Only generate 32-bit microMIPS instructions\n"
msgstr ""
-#: eelf32b4300.c:735 eelf32bmip.c:735 eelf32bmipn32.c:749 eelf32bsmip.c:749
-#: eelf32btsmip.c:735 eelf32btsmip_fbsd.c:735 eelf32btsmipn32.c:735
-#: eelf32btsmipn32_fbsd.c:735 eelf32ebmip.c:735 eelf32ebmipvxworks.c:774
-#: eelf32elmip.c:735 eelf32elmipvxworks.c:774 eelf32l4300.c:735
-#: eelf32lmip.c:735 eelf32lr5900.c:594 eelf32lr5900n32.c:593 eelf32lsmip.c:735
-#: eelf32ltsmip.c:735 eelf32ltsmip_fbsd.c:735 eelf32ltsmipn32.c:735
-#: eelf32ltsmipn32_fbsd.c:735 eelf32mipswindiss.c:568 eelf64bmip.c:749
-#: eelf64btsmip.c:735 eelf64btsmip_fbsd.c:735 eelf64ltsmip.c:735
-#: eelf64ltsmip_fbsd.c:735 eelf_mipsel_haiku.c:735
+#: eelf32b4300.c:765 eelf32bmip.c:765 eelf32bmipn32.c:779 eelf32bsmip.c:779
+#: eelf32btsmip.c:765 eelf32btsmip_fbsd.c:765 eelf32btsmipn32.c:765
+#: eelf32btsmipn32_fbsd.c:765 eelf32ebmip.c:765 eelf32ebmipvxworks.c:800
+#: eelf32elmip.c:765 eelf32elmipvxworks.c:800 eelf32l4300.c:765
+#: eelf32lmip.c:765 eelf32lr5900.c:609 eelf32lr5900n32.c:608 eelf32lsmip.c:765
+#: eelf32ltsmip.c:765 eelf32ltsmip_fbsd.c:765 eelf32ltsmipn32.c:765
+#: eelf32ltsmipn32_fbsd.c:765 eelf32mipswindiss.c:568 eelf64bmip.c:779
+#: eelf64btsmip.c:765 eelf64btsmip_fbsd.c:765 eelf64ltsmip.c:765
+#: eelf64ltsmip_fbsd.c:765 eelf_mipsel_haiku.c:765
#, c-format
msgid " --no-insn32 Generate all microMIPS instructions\n"
msgstr ""
-#: eelf32b4300.c:738 eelf32bmip.c:738 eelf32bmipn32.c:752 eelf32bsmip.c:752
-#: eelf32btsmip.c:738 eelf32btsmip_fbsd.c:738 eelf32btsmipn32.c:738
-#: eelf32btsmipn32_fbsd.c:738 eelf32ebmip.c:738 eelf32ebmipvxworks.c:777
-#: eelf32elmip.c:738 eelf32elmipvxworks.c:777 eelf32l4300.c:738
-#: eelf32lmip.c:738 eelf32lr5900.c:597 eelf32lr5900n32.c:596 eelf32lsmip.c:738
-#: eelf32ltsmip.c:738 eelf32ltsmip_fbsd.c:738 eelf32ltsmipn32.c:738
-#: eelf32ltsmipn32_fbsd.c:738 eelf32mipswindiss.c:571 eelf64bmip.c:752
-#: eelf64btsmip.c:738 eelf64btsmip_fbsd.c:738 eelf64ltsmip.c:738
-#: eelf64ltsmip_fbsd.c:738 eelf_mipsel_haiku.c:738
+#: eelf32b4300.c:768 eelf32bmip.c:768 eelf32bmipn32.c:782 eelf32bsmip.c:782
+#: eelf32btsmip.c:768 eelf32btsmip_fbsd.c:768 eelf32btsmipn32.c:768
+#: eelf32btsmipn32_fbsd.c:768 eelf32ebmip.c:768 eelf32ebmipvxworks.c:803
+#: eelf32elmip.c:768 eelf32elmipvxworks.c:803 eelf32l4300.c:768
+#: eelf32lmip.c:768 eelf32lr5900.c:612 eelf32lr5900n32.c:611 eelf32lsmip.c:768
+#: eelf32ltsmip.c:768 eelf32ltsmip_fbsd.c:768 eelf32ltsmipn32.c:768
+#: eelf32ltsmipn32_fbsd.c:768 eelf32mipswindiss.c:571 eelf64bmip.c:782
+#: eelf64btsmip.c:768 eelf64btsmip_fbsd.c:768 eelf64ltsmip.c:768
+#: eelf64ltsmip_fbsd.c:768 eelf_mipsel_haiku.c:768
#, c-format
msgid ""
" --ignore-branch-isa Accept invalid branch relocations requiring\n"
" an ISA mode switch\n"
msgstr ""
-#: eelf32b4300.c:742 eelf32bmip.c:742 eelf32bmipn32.c:756 eelf32bsmip.c:756
-#: eelf32btsmip.c:742 eelf32btsmip_fbsd.c:742 eelf32btsmipn32.c:742
-#: eelf32btsmipn32_fbsd.c:742 eelf32ebmip.c:742 eelf32ebmipvxworks.c:781
-#: eelf32elmip.c:742 eelf32elmipvxworks.c:781 eelf32l4300.c:742
-#: eelf32lmip.c:742 eelf32lr5900.c:601 eelf32lr5900n32.c:600 eelf32lsmip.c:742
-#: eelf32ltsmip.c:742 eelf32ltsmip_fbsd.c:742 eelf32ltsmipn32.c:742
-#: eelf32ltsmipn32_fbsd.c:742 eelf32mipswindiss.c:575 eelf64bmip.c:756
-#: eelf64btsmip.c:742 eelf64btsmip_fbsd.c:742 eelf64ltsmip.c:742
-#: eelf64ltsmip_fbsd.c:742 eelf_mipsel_haiku.c:742
+#: eelf32b4300.c:772 eelf32bmip.c:772 eelf32bmipn32.c:786 eelf32bsmip.c:786
+#: eelf32btsmip.c:772 eelf32btsmip_fbsd.c:772 eelf32btsmipn32.c:772
+#: eelf32btsmipn32_fbsd.c:772 eelf32ebmip.c:772 eelf32ebmipvxworks.c:807
+#: eelf32elmip.c:772 eelf32elmipvxworks.c:807 eelf32l4300.c:772
+#: eelf32lmip.c:772 eelf32lr5900.c:616 eelf32lr5900n32.c:615 eelf32lsmip.c:772
+#: eelf32ltsmip.c:772 eelf32ltsmip_fbsd.c:772 eelf32ltsmipn32.c:772
+#: eelf32ltsmipn32_fbsd.c:772 eelf32mipswindiss.c:575 eelf64bmip.c:786
+#: eelf64btsmip.c:772 eelf64btsmip_fbsd.c:772 eelf64ltsmip.c:772
+#: eelf64ltsmip_fbsd.c:772 eelf_mipsel_haiku.c:772
#, c-format
msgid ""
" --no-ignore-branch-isa Reject invalid branch relocations requiring\n"
" an ISA mode switch\n"
msgstr ""
-#: eelf32b4300.c:746 eelf32bmip.c:746 eelf32bmipn32.c:760 eelf32bsmip.c:760
-#: eelf32btsmip.c:746 eelf32btsmip_fbsd.c:746 eelf32btsmipn32.c:746
-#: eelf32btsmipn32_fbsd.c:746 eelf32ebmip.c:746 eelf32ebmipvxworks.c:785
-#: eelf32elmip.c:746 eelf32elmipvxworks.c:785 eelf32l4300.c:746
-#: eelf32lmip.c:746 eelf32lr5900.c:605 eelf32lr5900n32.c:604 eelf32lsmip.c:746
-#: eelf32ltsmip.c:746 eelf32ltsmip_fbsd.c:746 eelf32ltsmipn32.c:746
-#: eelf32ltsmipn32_fbsd.c:746 eelf32mipswindiss.c:579 eelf64bmip.c:760
-#: eelf64btsmip.c:746 eelf64btsmip_fbsd.c:746 eelf64ltsmip.c:746
-#: eelf64ltsmip_fbsd.c:746 eelf_mipsel_haiku.c:746
+#: eelf32b4300.c:776 eelf32bmip.c:776 eelf32bmipn32.c:790 eelf32bsmip.c:790
+#: eelf32btsmip.c:776 eelf32btsmip_fbsd.c:776 eelf32btsmipn32.c:776
+#: eelf32btsmipn32_fbsd.c:776 eelf32ebmip.c:776 eelf32ebmipvxworks.c:811
+#: eelf32elmip.c:776 eelf32elmipvxworks.c:811 eelf32l4300.c:776
+#: eelf32lmip.c:776 eelf32lr5900.c:620 eelf32lr5900n32.c:619 eelf32lsmip.c:776
+#: eelf32ltsmip.c:776 eelf32ltsmip_fbsd.c:776 eelf32ltsmipn32.c:776
+#: eelf32ltsmipn32_fbsd.c:776 eelf32mipswindiss.c:579 eelf64bmip.c:790
+#: eelf64btsmip.c:776 eelf64btsmip_fbsd.c:776 eelf64ltsmip.c:776
+#: eelf64ltsmip_fbsd.c:776 eelf_mipsel_haiku.c:776
#, c-format
msgid ""
" --compact-branches Generate compact branches/jumps for MIPS R6\n"
msgstr ""
-#: eelf32b4300.c:749 eelf32bmip.c:749 eelf32bmipn32.c:763 eelf32bsmip.c:763
-#: eelf32btsmip.c:749 eelf32btsmip_fbsd.c:749 eelf32btsmipn32.c:749
-#: eelf32btsmipn32_fbsd.c:749 eelf32ebmip.c:749 eelf32ebmipvxworks.c:788
-#: eelf32elmip.c:749 eelf32elmipvxworks.c:788 eelf32l4300.c:749
-#: eelf32lmip.c:749 eelf32lr5900.c:608 eelf32lr5900n32.c:607 eelf32lsmip.c:749
-#: eelf32ltsmip.c:749 eelf32ltsmip_fbsd.c:749 eelf32ltsmipn32.c:749
-#: eelf32ltsmipn32_fbsd.c:749 eelf32mipswindiss.c:582 eelf64bmip.c:763
-#: eelf64btsmip.c:749 eelf64btsmip_fbsd.c:749 eelf64ltsmip.c:749
-#: eelf64ltsmip_fbsd.c:749 eelf_mipsel_haiku.c:749
+#: eelf32b4300.c:779 eelf32bmip.c:779 eelf32bmipn32.c:793 eelf32bsmip.c:793
+#: eelf32btsmip.c:779 eelf32btsmip_fbsd.c:779 eelf32btsmipn32.c:779
+#: eelf32btsmipn32_fbsd.c:779 eelf32ebmip.c:779 eelf32ebmipvxworks.c:814
+#: eelf32elmip.c:779 eelf32elmipvxworks.c:814 eelf32l4300.c:779
+#: eelf32lmip.c:779 eelf32lr5900.c:623 eelf32lr5900n32.c:622 eelf32lsmip.c:779
+#: eelf32ltsmip.c:779 eelf32ltsmip_fbsd.c:779 eelf32ltsmipn32.c:779
+#: eelf32ltsmipn32_fbsd.c:779 eelf32mipswindiss.c:582 eelf64bmip.c:793
+#: eelf64btsmip.c:779 eelf64btsmip_fbsd.c:779 eelf64ltsmip.c:779
+#: eelf64ltsmip_fbsd.c:779 eelf_mipsel_haiku.c:779
#, c-format
msgid ""
" --no-compact-branches Generate delay slot branches/jumps for MIPS "
"R6\n"
msgstr ""
-#: eelf32bfin.c:488 eelf32bfinfd.c:513
+#: eelf32bfin.c:510 eelf32bfinfd.c:550
#, c-format
msgid " --code-in-l1 Put code in L1\n"
msgstr ""
-#: eelf32bfin.c:490 eelf32bfinfd.c:515
+#: eelf32bfin.c:512 eelf32bfinfd.c:552
#, c-format
msgid " --data-in-l1 Put data in L1\n"
msgstr ""
-#: eelf32briscv.c:583 eelf32briscv_ilp32.c:583 eelf32briscv_ilp32f.c:583
-#: eelf32lriscv.c:583 eelf32lriscv_ilp32.c:583 eelf32lriscv_ilp32f.c:583
-#: eelf64briscv.c:583 eelf64briscv_lp64.c:583 eelf64briscv_lp64f.c:583
-#: eelf64lriscv.c:583 eelf64lriscv_lp64.c:583 eelf64lriscv_lp64f.c:583
+#: eelf32briscv.c:628 eelf32briscv_ilp32.c:628 eelf32briscv_ilp32f.c:628
+#: eelf32lriscv.c:628 eelf32lriscv_ilp32.c:628 eelf32lriscv_ilp32f.c:628
+#: eelf64briscv.c:628 eelf64briscv_lp64.c:628 eelf64briscv_lp64f.c:628
+#: eelf64lriscv.c:628 eelf64lriscv_lp64.c:628 eelf64lriscv_lp64f.c:628
#, c-format
msgid " --relax-gp Perform GP relaxation\n"
msgstr ""
-#: eelf32briscv.c:584 eelf32briscv_ilp32.c:584 eelf32briscv_ilp32f.c:584
-#: eelf32lriscv.c:584 eelf32lriscv_ilp32.c:584 eelf32lriscv_ilp32f.c:584
-#: eelf64briscv.c:584 eelf64briscv_lp64.c:584 eelf64briscv_lp64f.c:584
-#: eelf64lriscv.c:584 eelf64lriscv_lp64.c:584 eelf64lriscv_lp64f.c:584
+#: eelf32briscv.c:629 eelf32briscv_ilp32.c:629 eelf32briscv_ilp32f.c:629
+#: eelf32lriscv.c:629 eelf32lriscv_ilp32.c:629 eelf32lriscv_ilp32f.c:629
+#: eelf64briscv.c:629 eelf64briscv_lp64.c:629 eelf64briscv_lp64f.c:629
+#: eelf64lriscv.c:629 eelf64lriscv_lp64.c:629 eelf64lriscv_lp64f.c:629
#, c-format
msgid " --no-relax-gp Don't perform GP relaxation\n"
msgstr ""
-#: eelf32cr16.c:87
+#: eelf32briscv.c:630 eelf32briscv_ilp32.c:630 eelf32briscv_ilp32f.c:630
+#: eelf32lriscv.c:630 eelf32lriscv_ilp32.c:630 eelf32lriscv_ilp32f.c:630
+#: eelf64briscv.c:630 eelf64briscv_lp64.c:630 eelf64briscv_lp64f.c:630
+#: eelf64lriscv.c:630 eelf64lriscv_lp64.c:630 eelf64lriscv_lp64f.c:630
+#, c-format
+msgid ""
+" --check-uleb128 Check if SUB_ULEB128 has non-zero addend\n"
+msgstr ""
+
+#: eelf32briscv.c:631 eelf32briscv_ilp32.c:631 eelf32briscv_ilp32f.c:631
+#: eelf32lriscv.c:631 eelf32lriscv_ilp32.c:631 eelf32lriscv_ilp32f.c:631
+#: eelf64briscv.c:631 eelf64briscv_lp64.c:631 eelf64briscv_lp64f.c:631
+#: eelf64lriscv.c:631 eelf64lriscv_lp64.c:631 eelf64lriscv_lp64f.c:631
+#, c-format
+msgid ""
+" --no-check-uleb128 Don't check if SUB_ULEB128 has non-zero "
+"addend\n"
+msgstr ""
+
+#: eelf32cr16.c:88
msgid ""
"%F%P: %pB: all input objects must be COFF or ELF for --embedded-relocs\n"
msgstr ""
-#: eelf32cr16.c:111 em68kelf.c:115 em68kelfnbsd.c:115
+#: eelf32cr16.c:112 em68kelf.c:116 em68kelfnbsd.c:116
msgid "%F%P: %pB: can not create .emreloc section: %E\n"
msgstr ""
-#: eelf32cr16.c:130 em68kelf.c:136 em68kelfnbsd.c:136
+#: eelf32cr16.c:131 em68kelf.c:137 em68kelfnbsd.c:137
msgid "%X%P: %pB: section %s has relocs; can not use --embedded-relocs\n"
msgstr ""
-#: eelf32cr16.c:186 em68kelf.c:179 em68kelfnbsd.c:179
+#: eelf32cr16.c:187 em68kelf.c:180 em68kelfnbsd.c:180
msgid "%X%P: %pB: can not create runtime reloc information: %E\n"
msgstr ""
-#: eelf32cr16.c:189 em68kelf.c:183 em68kelfnbsd.c:183
+#: eelf32cr16.c:190 em68kelf.c:184 em68kelfnbsd.c:184
msgid "%X%P: %pB: can not create runtime reloc information: %s\n"
msgstr ""
-#: eelf32kvx.c:63 eelf64kvx.c:63
+#: eelf32kvx.c:64 eelf64kvx.c:64
msgid "%F:%P: -pie not supported\n"
msgstr ""
-#: eelf32lppc.c:98 eelf32lppclinux.c:98 eelf32lppcnto.c:98 eelf32lppcsim.c:98
-#: eelf32ppc.c:98 eelf32ppc_fbsd.c:98 eelf32ppchaiku.c:98 eelf32ppclinux.c:98
-#: eelf32ppcnto.c:98 eelf32ppcsim.c:98 eelf32ppcwindiss.c:98
+#: eelf32lppc.c:99 eelf32lppclinux.c:99 eelf32lppcnto.c:99 eelf32lppcsim.c:99
+#: eelf32ppc.c:99 eelf32ppc_fbsd.c:99 eelf32ppchaiku.c:99 eelf32ppclinux.c:99
+#: eelf32ppcnto.c:99 eelf32ppcsim.c:99 eelf32ppcwindiss.c:99
msgid "%X%P: select_plt_layout problem %E\n"
msgstr ""
-#: eelf32lppc.c:162 eelf32lppclinux.c:162 eelf32lppcnto.c:162
-#: eelf32lppcsim.c:162 eelf32ppc.c:162 eelf32ppc_fbsd.c:162
-#: eelf32ppchaiku.c:162 eelf32ppclinux.c:162 eelf32ppcnto.c:162
-#: eelf32ppcsim.c:162 eelf32ppcvxworks.c:107 eelf32ppcwindiss.c:162
-#: eelf64lppc.c:323 eelf64lppc_fbsd.c:323 eelf64ppc.c:323 eelf64ppc_fbsd.c:323
+#: eelf32lppc.c:163 eelf32lppclinux.c:163 eelf32lppcnto.c:163
+#: eelf32lppcsim.c:163 eelf32ppc.c:163 eelf32ppc_fbsd.c:163
+#: eelf32ppchaiku.c:163 eelf32ppclinux.c:163 eelf32ppcnto.c:163
+#: eelf32ppcsim.c:163 eelf32ppcvxworks.c:108 eelf32ppcwindiss.c:163
+#: eelf64lppc.c:324 eelf64lppc_fbsd.c:324 eelf64ppc.c:324 eelf64ppc_fbsd.c:324
msgid "%X%P: inline PLT: %E\n"
msgstr ""
-#: eelf32lppc.c:170 eelf32lppclinux.c:170 eelf32lppcnto.c:170
-#: eelf32lppcsim.c:170 eelf32ppc.c:170 eelf32ppc_fbsd.c:170
-#: eelf32ppchaiku.c:170 eelf32ppclinux.c:170 eelf32ppcnto.c:170
-#: eelf32ppcsim.c:170 eelf32ppcvxworks.c:115 eelf32ppcwindiss.c:170
-#: eelf64lppc.c:327 eelf64lppc.c:346 eelf64lppc_fbsd.c:327
-#: eelf64lppc_fbsd.c:346 eelf64ppc.c:327 eelf64ppc.c:346 eelf64ppc_fbsd.c:327
-#: eelf64ppc_fbsd.c:346
+#: eelf32lppc.c:171 eelf32lppclinux.c:171 eelf32lppcnto.c:171
+#: eelf32lppcsim.c:171 eelf32ppc.c:171 eelf32ppc_fbsd.c:171
+#: eelf32ppchaiku.c:171 eelf32ppclinux.c:171 eelf32ppcnto.c:171
+#: eelf32ppcsim.c:171 eelf32ppcvxworks.c:116 eelf32ppcwindiss.c:171
+#: eelf64lppc.c:328 eelf64lppc.c:347 eelf64lppc_fbsd.c:328
+#: eelf64lppc_fbsd.c:347 eelf64ppc.c:328 eelf64ppc.c:347 eelf64ppc_fbsd.c:328
+#: eelf64ppc_fbsd.c:347
msgid "%X%P: TLS problem %E\n"
msgstr ""
-#: eelf32lppc.c:257 eelf32lppclinux.c:257 eelf32lppcnto.c:257
-#: eelf32lppcsim.c:257 eelf32ppc.c:257 eelf32ppc_fbsd.c:257
-#: eelf32ppchaiku.c:257 eelf32ppclinux.c:257 eelf32ppcnto.c:257
-#: eelf32ppcsim.c:257 eelf32ppcvxworks.c:202 eelf32ppcwindiss.c:257
+#: eelf32lppc.c:258 eelf32lppclinux.c:258 eelf32lppcnto.c:258
+#: eelf32lppcsim.c:258 eelf32ppc.c:258 eelf32ppc_fbsd.c:258
+#: eelf32ppchaiku.c:258 eelf32ppclinux.c:258 eelf32ppcnto.c:258
+#: eelf32ppcsim.c:258 eelf32ppcvxworks.c:203 eelf32ppcwindiss.c:258
msgid "%X%P: ppc_finish_symbols problem %E\n"
msgstr ""
-#: eelf32lppc.c:790 eelf32lppclinux.c:790 eelf32lppcnto.c:790
-#: eelf32lppcsim.c:790 eelf32ppc.c:790 eelf32ppc_fbsd.c:790
-#: eelf32ppchaiku.c:790 eelf32ppclinux.c:790 eelf32ppcnto.c:790
-#: eelf32ppcsim.c:790 eelf32ppcvxworks.c:764 eelf32ppcwindiss.c:790
-#: eelf64lppc.c:1245 eelf64lppc_fbsd.c:1245 eelf64ppc.c:1245
-#: eelf64ppc_fbsd.c:1245
+#: eelf32lppc.c:809 eelf32lppclinux.c:809 eelf32lppcnto.c:809
+#: eelf32lppcsim.c:809 eelf32ppc.c:809 eelf32ppc_fbsd.c:809
+#: eelf32ppchaiku.c:809 eelf32ppclinux.c:809 eelf32ppcnto.c:809
+#: eelf32ppcsim.c:809 eelf32ppcvxworks.c:779 eelf32ppcwindiss.c:809
+#: eelf64lppc.c:1249 eelf64lppc_fbsd.c:1249 eelf64ppc.c:1249
+#: eelf64ppc_fbsd.c:1249
msgid "%F%P: invalid --plt-align `%s'\n"
msgstr ""
-#: eelf32lppc.c:823 eelf32lppclinux.c:823 eelf32lppcnto.c:823
-#: eelf32lppcsim.c:823 eelf32ppc.c:823 eelf32ppc_fbsd.c:823
-#: eelf32ppchaiku.c:823 eelf32ppclinux.c:823 eelf32ppcnto.c:823
-#: eelf32ppcsim.c:823 eelf32ppcvxworks.c:797 eelf32ppcwindiss.c:823
+#: eelf32lppc.c:842 eelf32lppclinux.c:842 eelf32lppcnto.c:842
+#: eelf32lppcsim.c:842 eelf32ppc.c:842 eelf32ppc_fbsd.c:842
+#: eelf32ppchaiku.c:842 eelf32ppclinux.c:842 eelf32ppcnto.c:842
+#: eelf32ppcsim.c:842 eelf32ppcvxworks.c:812 eelf32ppcwindiss.c:842
msgid "%F%P: invalid pagesize `%s'\n"
msgstr ""
-#: eelf32lppc.c:853 eelf32lppclinux.c:853 eelf32lppcnto.c:853
-#: eelf32lppcsim.c:853 eelf32ppc.c:853 eelf32ppc_fbsd.c:853
-#: eelf32ppchaiku.c:853 eelf32ppclinux.c:853 eelf32ppcnto.c:853
-#: eelf32ppcsim.c:853 eelf32ppcvxworks.c:831 eelf32ppcwindiss.c:853
-#: eelf64lppc.c:1430 eelf64lppc_fbsd.c:1430 eelf64ppc.c:1430
-#: eelf64ppc_fbsd.c:1430
+#: eelf32lppc.c:872 eelf32lppclinux.c:872 eelf32lppcnto.c:872
+#: eelf32lppcsim.c:872 eelf32ppc.c:872 eelf32ppc_fbsd.c:872
+#: eelf32ppchaiku.c:872 eelf32ppclinux.c:872 eelf32ppcnto.c:872
+#: eelf32ppcsim.c:872 eelf32ppcvxworks.c:846 eelf32ppcwindiss.c:872
+#: eelf64lppc.c:1434 eelf64lppc_fbsd.c:1434 eelf64ppc.c:1434
+#: eelf64ppc_fbsd.c:1434
#, c-format
msgid " --emit-stub-syms Label linker stubs with a symbol\n"
msgstr ""
-#: eelf32lppc.c:856 eelf32lppclinux.c:856 eelf32lppcnto.c:856
-#: eelf32lppcsim.c:856 eelf32ppc.c:856 eelf32ppc_fbsd.c:856
-#: eelf32ppchaiku.c:856 eelf32ppclinux.c:856 eelf32ppcnto.c:856
-#: eelf32ppcsim.c:856 eelf32ppcvxworks.c:834 eelf32ppcwindiss.c:856
-#: eelf64lppc.c:1433 eelf64lppc_fbsd.c:1433 eelf64ppc.c:1433
-#: eelf64ppc_fbsd.c:1433
+#: eelf32lppc.c:875 eelf32lppclinux.c:875 eelf32lppcnto.c:875
+#: eelf32lppcsim.c:875 eelf32ppc.c:875 eelf32ppc_fbsd.c:875
+#: eelf32ppchaiku.c:875 eelf32ppclinux.c:875 eelf32ppcnto.c:875
+#: eelf32ppcsim.c:875 eelf32ppcvxworks.c:849 eelf32ppcwindiss.c:875
+#: eelf64lppc.c:1437 eelf64lppc_fbsd.c:1437 eelf64ppc.c:1437
+#: eelf64ppc_fbsd.c:1437
#, c-format
msgid " --no-emit-stub-syms Don't label linker stubs with a symbol\n"
msgstr ""
-#: eelf32lppc.c:859 eelf32lppclinux.c:859 eelf32lppcnto.c:859
-#: eelf32lppcsim.c:859 eelf32ppc.c:859 eelf32ppc_fbsd.c:859
-#: eelf32ppchaiku.c:859 eelf32ppclinux.c:859 eelf32ppcnto.c:859
-#: eelf32ppcsim.c:859 eelf32ppcvxworks.c:837 eelf32ppcwindiss.c:859
-#: eelf64lppc.c:1453 eelf64lppc_fbsd.c:1453 eelf64ppc.c:1453
-#: eelf64ppc_fbsd.c:1453
+#: eelf32lppc.c:878 eelf32lppclinux.c:878 eelf32lppcnto.c:878
+#: eelf32lppcsim.c:878 eelf32ppc.c:878 eelf32ppc_fbsd.c:878
+#: eelf32ppchaiku.c:878 eelf32ppclinux.c:878 eelf32ppcnto.c:878
+#: eelf32ppcsim.c:878 eelf32ppcvxworks.c:852 eelf32ppcwindiss.c:878
+#: eelf64lppc.c:1457 eelf64lppc_fbsd.c:1457 eelf64ppc.c:1457
+#: eelf64ppc_fbsd.c:1457
#, c-format
msgid " --no-tls-optimize Don't try to optimize TLS accesses\n"
msgstr ""
-#: eelf32lppc.c:862 eelf32lppclinux.c:862 eelf32lppcnto.c:862
-#: eelf32lppcsim.c:862 eelf32ppc.c:862 eelf32ppc_fbsd.c:862
-#: eelf32ppchaiku.c:862 eelf32ppclinux.c:862 eelf32ppcnto.c:862
-#: eelf32ppcsim.c:862 eelf32ppcvxworks.c:840 eelf32ppcwindiss.c:862
-#: eelf64lppc.c:1459 eelf64lppc_fbsd.c:1459 eelf64ppc.c:1459
-#: eelf64ppc_fbsd.c:1459
+#: eelf32lppc.c:881 eelf32lppclinux.c:881 eelf32lppcnto.c:881
+#: eelf32lppcsim.c:881 eelf32ppc.c:881 eelf32ppc_fbsd.c:881
+#: eelf32ppchaiku.c:881 eelf32ppclinux.c:881 eelf32ppcnto.c:881
+#: eelf32ppcsim.c:881 eelf32ppcvxworks.c:855 eelf32ppcwindiss.c:881
+#: eelf64lppc.c:1463 eelf64lppc_fbsd.c:1463 eelf64ppc.c:1463
+#: eelf64ppc_fbsd.c:1463
#, c-format
msgid " --no-tls-get-addr-optimize Don't use a special __tls_get_addr call\n"
msgstr ""
-#: eelf32lppc.c:865 eelf32lppclinux.c:865 eelf32lppcnto.c:865
-#: eelf32lppcsim.c:865 eelf32ppc.c:865 eelf32ppc_fbsd.c:865
-#: eelf32ppchaiku.c:865 eelf32ppclinux.c:865 eelf32ppcnto.c:865
-#: eelf32ppcsim.c:865 eelf32ppcwindiss.c:865
+#: eelf32lppc.c:884 eelf32lppclinux.c:884 eelf32lppcnto.c:884
+#: eelf32lppcsim.c:884 eelf32ppc.c:884 eelf32ppc_fbsd.c:884
+#: eelf32ppchaiku.c:884 eelf32ppclinux.c:884 eelf32ppcnto.c:884
+#: eelf32ppcsim.c:884 eelf32ppcwindiss.c:884
#, c-format
msgid " --secure-plt Use new-style PLT if possible\n"
msgstr ""
-#: eelf32lppc.c:868 eelf32lppclinux.c:868 eelf32lppcnto.c:868
-#: eelf32lppcsim.c:868 eelf32ppc.c:868 eelf32ppc_fbsd.c:868
-#: eelf32ppchaiku.c:868 eelf32ppclinux.c:868 eelf32ppcnto.c:868
-#: eelf32ppcsim.c:868 eelf32ppcwindiss.c:868
+#: eelf32lppc.c:887 eelf32lppclinux.c:887 eelf32lppcnto.c:887
+#: eelf32lppcsim.c:887 eelf32ppc.c:887 eelf32ppc_fbsd.c:887
+#: eelf32ppchaiku.c:887 eelf32ppclinux.c:887 eelf32ppcnto.c:887
+#: eelf32ppcsim.c:887 eelf32ppcwindiss.c:887
#, c-format
msgid " --bss-plt Force old-style BSS PLT\n"
msgstr ""
-#: eelf32lppc.c:871 eelf32lppclinux.c:871 eelf32lppcnto.c:871
-#: eelf32lppcsim.c:871 eelf32ppc.c:871 eelf32ppc_fbsd.c:871
-#: eelf32ppchaiku.c:871 eelf32ppclinux.c:871 eelf32ppcnto.c:871
-#: eelf32ppcsim.c:871 eelf32ppcwindiss.c:871
+#: eelf32lppc.c:890 eelf32lppclinux.c:890 eelf32lppcnto.c:890
+#: eelf32lppcsim.c:890 eelf32ppc.c:890 eelf32ppc_fbsd.c:890
+#: eelf32ppchaiku.c:890 eelf32ppclinux.c:890 eelf32ppcnto.c:890
+#: eelf32ppcsim.c:890 eelf32ppcwindiss.c:890
#, c-format
msgid " --plt-align Align PLT call stubs to fit cache lines\n"
msgstr ""
-#: eelf32lppc.c:874 eelf32lppclinux.c:874 eelf32lppcnto.c:874
-#: eelf32lppcsim.c:874 eelf32ppc.c:874 eelf32ppc_fbsd.c:874
-#: eelf32ppchaiku.c:874 eelf32ppclinux.c:874 eelf32ppcnto.c:874
-#: eelf32ppcsim.c:874 eelf32ppcwindiss.c:874 eelf64lppc.c:1412
-#: eelf64lppc_fbsd.c:1412 eelf64ppc.c:1412 eelf64ppc_fbsd.c:1412
+#: eelf32lppc.c:893 eelf32lppclinux.c:893 eelf32lppcnto.c:893
+#: eelf32lppcsim.c:893 eelf32ppc.c:893 eelf32ppc_fbsd.c:893
+#: eelf32ppchaiku.c:893 eelf32ppclinux.c:893 eelf32ppcnto.c:893
+#: eelf32ppcsim.c:893 eelf32ppcwindiss.c:893 eelf64lppc.c:1416
+#: eelf64lppc_fbsd.c:1416 eelf64ppc.c:1416 eelf64ppc_fbsd.c:1416
#, c-format
msgid " --no-plt-align Dont't align individual PLT call stubs\n"
msgstr ""
-#: eelf32lppc.c:877 eelf32lppclinux.c:877 eelf32lppcnto.c:877
-#: eelf32lppcsim.c:877 eelf32ppc.c:877 eelf32ppc_fbsd.c:877
-#: eelf32ppchaiku.c:877 eelf32ppclinux.c:877 eelf32ppcnto.c:877
-#: eelf32ppcsim.c:877 eelf32ppcwindiss.c:877 eelf64lppc.c:1471
-#: eelf64lppc_fbsd.c:1471 eelf64ppc.c:1471 eelf64ppc_fbsd.c:1471
+#: eelf32lppc.c:896 eelf32lppclinux.c:896 eelf32lppcnto.c:896
+#: eelf32lppcsim.c:896 eelf32ppc.c:896 eelf32ppc_fbsd.c:896
+#: eelf32ppchaiku.c:896 eelf32ppclinux.c:896 eelf32ppcnto.c:896
+#: eelf32ppcsim.c:896 eelf32ppcwindiss.c:896 eelf64lppc.c:1475
+#: eelf64lppc_fbsd.c:1475 eelf64ppc.c:1475 eelf64ppc_fbsd.c:1475
#, c-format
msgid ""
" --no-inline-optimize Don't convert inline PLT to direct calls\n"
msgstr ""
-#: eelf32lppc.c:880 eelf32lppclinux.c:880 eelf32lppcnto.c:880
-#: eelf32lppcsim.c:880 eelf32ppc.c:880 eelf32ppc_fbsd.c:880
-#: eelf32ppchaiku.c:880 eelf32ppclinux.c:880 eelf32ppcnto.c:880
-#: eelf32ppcsim.c:880 eelf32ppcwindiss.c:880
+#: eelf32lppc.c:899 eelf32lppclinux.c:899 eelf32lppcnto.c:899
+#: eelf32lppcsim.c:899 eelf32ppc.c:899 eelf32ppc_fbsd.c:899
+#: eelf32ppchaiku.c:899 eelf32ppclinux.c:899 eelf32ppcnto.c:899
+#: eelf32ppcsim.c:899 eelf32ppcwindiss.c:899
#, c-format
msgid " --sdata-got Force GOT location just before .sdata\n"
msgstr ""
-#: eelf32lppc.c:883 eelf32lppclinux.c:883 eelf32lppcnto.c:883
-#: eelf32lppcsim.c:883 eelf32ppc.c:883 eelf32ppc_fbsd.c:883
-#: eelf32ppchaiku.c:883 eelf32ppclinux.c:883 eelf32ppcnto.c:883
-#: eelf32ppcsim.c:883 eelf32ppcvxworks.c:843 eelf32ppcwindiss.c:883
+#: eelf32lppc.c:902 eelf32lppclinux.c:902 eelf32lppcnto.c:902
+#: eelf32lppcsim.c:902 eelf32ppc.c:902 eelf32ppc_fbsd.c:902
+#: eelf32ppchaiku.c:902 eelf32ppclinux.c:902 eelf32ppcnto.c:902
+#: eelf32ppcsim.c:902 eelf32ppcvxworks.c:858 eelf32ppcwindiss.c:902
#, c-format
msgid ""
" --ppc476-workaround [=pagesize]\n"
" Avoid a cache bug on ppc476\n"
msgstr ""
-#: eelf32lppc.c:887 eelf32lppclinux.c:887 eelf32lppcnto.c:887
-#: eelf32lppcsim.c:887 eelf32ppc.c:887 eelf32ppc_fbsd.c:887
-#: eelf32ppchaiku.c:887 eelf32ppclinux.c:887 eelf32ppcnto.c:887
-#: eelf32ppcsim.c:887 eelf32ppcvxworks.c:847 eelf32ppcwindiss.c:887
+#: eelf32lppc.c:906 eelf32lppclinux.c:906 eelf32lppcnto.c:906
+#: eelf32lppcsim.c:906 eelf32ppc.c:906 eelf32ppc_fbsd.c:906
+#: eelf32ppchaiku.c:906 eelf32ppclinux.c:906 eelf32ppcnto.c:906
+#: eelf32ppcsim.c:906 eelf32ppcvxworks.c:862 eelf32ppcwindiss.c:906
#, c-format
msgid " --no-ppc476-workaround Disable workaround\n"
msgstr ""
-#: eelf32lppc.c:890 eelf32lppclinux.c:890 eelf32lppcnto.c:890
-#: eelf32lppcsim.c:890 eelf32ppc.c:890 eelf32ppc_fbsd.c:890
-#: eelf32ppchaiku.c:890 eelf32ppclinux.c:890 eelf32ppcnto.c:890
-#: eelf32ppcsim.c:890 eelf32ppcvxworks.c:850 eelf32ppcwindiss.c:890
+#: eelf32lppc.c:909 eelf32lppclinux.c:909 eelf32lppcnto.c:909
+#: eelf32lppcsim.c:909 eelf32ppc.c:909 eelf32ppc_fbsd.c:909
+#: eelf32ppchaiku.c:909 eelf32ppclinux.c:909 eelf32ppcnto.c:909
+#: eelf32ppcsim.c:909 eelf32ppcvxworks.c:865 eelf32ppcwindiss.c:909
#, c-format
msgid " --no-pic-fixup Don't edit non-pic to pic\n"
msgstr ""
-#: eelf32lppc.c:893 eelf32lppclinux.c:893 eelf32lppcnto.c:893
-#: eelf32lppcsim.c:893 eelf32ppc.c:893 eelf32ppc_fbsd.c:893
-#: eelf32ppchaiku.c:893 eelf32ppclinux.c:893 eelf32ppcnto.c:893
-#: eelf32ppcsim.c:893 eelf32ppcvxworks.c:853 eelf32ppcwindiss.c:893
+#: eelf32lppc.c:912 eelf32lppclinux.c:912 eelf32lppcnto.c:912
+#: eelf32lppcsim.c:912 eelf32ppc.c:912 eelf32ppc_fbsd.c:912
+#: eelf32ppchaiku.c:912 eelf32ppclinux.c:912 eelf32ppcnto.c:912
+#: eelf32ppcsim.c:912 eelf32ppcvxworks.c:868 eelf32ppcwindiss.c:912
#, c-format
msgid ""
" --vle-reloc-fixup Correct old object file 16A/16D relocation\n"
msgstr ""
-#: eelf32mcore.c:338
+#: eelf32mcore.c:346
#, c-format
msgid ""
" --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr ""
-#: eelf32metag.c:751 eelf64lppc.c:1387 eelf64lppc_fbsd.c:1387 eelf64ppc.c:1387
-#: eelf64ppc_fbsd.c:1387 ehppaelf.c:611 ehppalinux.c:793 ehppanbsd.c:793
-#: ehppaobsd.c:793
+#: eelf32metag.c:789 eelf64lppc.c:1391 eelf64lppc_fbsd.c:1391 eelf64ppc.c:1391
+#: eelf64ppc_fbsd.c:1391 ehppaelf.c:608 ehppalinux.c:830 ehppanbsd.c:830
+#: ehppaobsd.c:830
#, c-format
msgid ""
" --stub-group-size=N Maximum size of a group of input sections "
@@ -6384,125 +6412,125 @@ msgid ""
" choose suitable defaults.\n"
msgstr ""
-#: eelf32rx.c:370
+#: eelf32rx.c:375
#, c-format
msgid ""
" --no-flag-mismatch-warnings Don't warn about objects with incompatible\n"
" endian or dsp settings\n"
msgstr ""
-#: eelf32rx.c:372
+#: eelf32rx.c:377
#, c-format
msgid ""
" --flag-mismatch-warnings Warn about objects with incompatible\n"
" endian, dsp or ABI settings\n"
msgstr ""
-#: eelf32rx.c:374
+#: eelf32rx.c:379
#, c-format
msgid ""
" --ignore-lma Ignore segment LMAs [default]\n"
" (for Renesas Tools compatibility)\n"
msgstr ""
-#: eelf32rx.c:376
+#: eelf32rx.c:381
#, c-format
msgid " --no-ignore-lma Don't ignore segment LMAs\n"
msgstr ""
-#: eelf32xtensa.c:143
+#: eelf32xtensa.c:147
msgid "file already has property tables"
msgstr ""
-#: eelf32xtensa.c:153
+#: eelf32xtensa.c:157
msgid "failed to read section contents"
msgstr ""
-#: eelf32xtensa.c:165
+#: eelf32xtensa.c:169
msgid "could not create new section"
msgstr ""
-#: eelf32xtensa.c:181
+#: eelf32xtensa.c:185
msgid "could not allocate section contents"
msgstr ""
-#: eelf32xtensa.c:200
+#: eelf32xtensa.c:204
msgid "out of memory"
msgstr ""
-#: eelf32xtensa.c:298
+#: eelf32xtensa.c:302
msgid ""
"%P: warning: failed to convert %s table in %pB (%s); subsequent disassembly "
"may be incomplete\n"
msgstr ""
-#: eelf32xtensa.c:418
+#: eelf32xtensa.c:422
msgid "%F%P: %pB: cannot read contents of section %pA\n"
msgstr ""
-#: eelf32xtensa.c:429
+#: eelf32xtensa.c:433
msgid "%P: %pB: warning: incompatible Xtensa configuration (%s)\n"
msgstr ""
-#: eelf32xtensa.c:433
+#: eelf32xtensa.c:437
msgid "%P: %pB: warning: cannot parse .xtensa.info section\n"
msgstr ""
-#: eelf32xtensa.c:459
+#: eelf32xtensa.c:463
msgid "%F%P: little endian output does not match Xtensa configuration\n"
msgstr ""
-#: eelf32xtensa.c:465
+#: eelf32xtensa.c:469
msgid "%F%P: big endian output does not match Xtensa configuration\n"
msgstr ""
-#: eelf32xtensa.c:484
+#: eelf32xtensa.c:488
msgid "%F%P: cross-endian linking for %pB not supported\n"
msgstr ""
-#: eelf32xtensa.c:515
+#: eelf32xtensa.c:519
msgid "%F%P: failed to create .xtensa.info section\n"
msgstr ""
-#: eelf32xtensa.c:1254
+#: eelf32xtensa.c:1258
msgid "%F%P: Relaxation not supported with --enable-non-contiguous-regions.\n"
msgstr ""
-#: eelf32xtensa.c:2420
+#: eelf32xtensa.c:2454
#, c-format
msgid ""
" --size-opt When relaxing longcalls, prefer size\n"
" optimization over branch target alignment\n"
msgstr ""
-#: eelf32xtensa.c:2423
+#: eelf32xtensa.c:2457
#, c-format
msgid ""
" --abi-windowed Choose windowed ABI for the output object\n"
msgstr ""
-#: eelf32xtensa.c:2425
+#: eelf32xtensa.c:2459
#, c-format
msgid " --abi-call0 Choose call0 ABI for the output object\n"
msgstr ""
-#: eelf32z80.c:69 ez80.c:59
+#: eelf32z80.c:70 ez80.c:59
msgid "%F%P: %pB: Instruction sets of object files incompatible\n"
msgstr ""
-#: eelf64_ia64.c:524 eelf64_ia64_fbsd.c:524
+#: eelf64_ia64.c:562 eelf64_ia64_fbsd.c:562
#, c-format
msgid ""
" --itanium Generate code for Intel Itanium processor\n"
msgstr ""
-#: eelf64_s390.c:567
+#: eelf64_s390.c:635
#, c-format
msgid ""
" --s390-pgste Tell the kernel to allocate 4k page tables\n"
msgstr ""
-#: eelf64alpha.c:596 eelf64alpha_fbsd.c:596 eelf64alpha_nbsd.c:596
+#: eelf64alpha.c:632 eelf64alpha_fbsd.c:632 eelf64alpha_nbsd.c:632
#, c-format
msgid ""
" --taso Load executable in the lower 31-bit "
@@ -6510,100 +6538,100 @@ msgid ""
" virtual address range\n"
msgstr ""
-#: eelf64alpha.c:599 eelf64alpha_fbsd.c:599 eelf64alpha_nbsd.c:599
+#: eelf64alpha.c:635 eelf64alpha_fbsd.c:635 eelf64alpha_nbsd.c:635
#, c-format
msgid " --secureplt Force PLT in text segment\n"
msgstr ""
-#: eelf64alpha.c:601 eelf64alpha_fbsd.c:601 eelf64alpha_nbsd.c:601
+#: eelf64alpha.c:637 eelf64alpha_fbsd.c:637 eelf64alpha_nbsd.c:637
#, c-format
msgid " --no-secureplt Force PLT in data segment\n"
msgstr ""
-#: eelf64lppc.c:315 eelf64lppc.c:355 eelf64lppc_fbsd.c:315
-#: eelf64lppc_fbsd.c:355 eelf64ppc.c:315 eelf64ppc.c:355 eelf64ppc_fbsd.c:315
-#: eelf64ppc_fbsd.c:355
+#: eelf64lppc.c:316 eelf64lppc.c:356 eelf64lppc_fbsd.c:316
+#: eelf64lppc_fbsd.c:356 eelf64ppc.c:316 eelf64ppc.c:356 eelf64ppc_fbsd.c:316
+#: eelf64ppc_fbsd.c:356
msgid "%X%P: can not edit %s: %E\n"
msgstr ""
-#: eelf64lppc.c:518 eelf64lppc_fbsd.c:518 eelf64ppc.c:518 eelf64ppc_fbsd.c:518
+#: eelf64lppc.c:519 eelf64lppc_fbsd.c:519 eelf64ppc.c:519 eelf64ppc_fbsd.c:519
msgid "%X%P: linker script separates .got and .toc\n"
msgstr ""
-#: eelf64lppc.c:579 eelf64lppc_fbsd.c:579 eelf64ppc.c:579 eelf64ppc_fbsd.c:579
+#: eelf64lppc.c:580 eelf64lppc_fbsd.c:580 eelf64ppc.c:580 eelf64ppc_fbsd.c:580
msgid "%P: .init/.fini fragments use differing TOC pointers\n"
msgstr ""
-#: eelf64lppc.c:1274 eelf64lppc_fbsd.c:1274 eelf64ppc.c:1274
-#: eelf64ppc_fbsd.c:1274
+#: eelf64lppc.c:1278 eelf64lppc_fbsd.c:1278 eelf64ppc.c:1278
+#: eelf64ppc_fbsd.c:1278
msgid "%F%P: invalid --power10-stubs argument `%s'\n"
msgstr ""
-#: eelf64lppc.c:1397 eelf64ppc.c:1397
+#: eelf64lppc.c:1401 eelf64ppc.c:1401
#, c-format
msgid ""
" --plt-static-chain PLT call stubs should load r11 (default)\n"
msgstr ""
-#: eelf64lppc.c:1400 eelf64ppc.c:1400
+#: eelf64lppc.c:1404 eelf64ppc.c:1404
#, c-format
msgid " --no-plt-static-chain PLT call stubs should not load r11\n"
msgstr ""
-#: eelf64lppc.c:1403 eelf64lppc_fbsd.c:1403 eelf64ppc.c:1403
-#: eelf64ppc_fbsd.c:1403
+#: eelf64lppc.c:1407 eelf64lppc_fbsd.c:1407 eelf64ppc.c:1407
+#: eelf64ppc_fbsd.c:1407
#, c-format
msgid " --plt-thread-safe PLT call stubs with load-load barrier\n"
msgstr ""
-#: eelf64lppc.c:1406 eelf64lppc_fbsd.c:1406 eelf64ppc.c:1406
-#: eelf64ppc_fbsd.c:1406
+#: eelf64lppc.c:1410 eelf64lppc_fbsd.c:1410 eelf64ppc.c:1410
+#: eelf64ppc_fbsd.c:1410
#, c-format
msgid " --no-plt-thread-safe PLT call stubs without barrier\n"
msgstr ""
-#: eelf64lppc.c:1409 eelf64lppc_fbsd.c:1409 eelf64ppc.c:1409
-#: eelf64ppc_fbsd.c:1409
+#: eelf64lppc.c:1413 eelf64lppc_fbsd.c:1413 eelf64ppc.c:1413
+#: eelf64ppc_fbsd.c:1413
#, c-format
msgid " --plt-align [=<align>] Align PLT call stubs to fit cache lines\n"
msgstr ""
-#: eelf64lppc.c:1415 eelf64lppc_fbsd.c:1415 eelf64ppc.c:1415
-#: eelf64ppc_fbsd.c:1415
+#: eelf64lppc.c:1419 eelf64lppc_fbsd.c:1419 eelf64ppc.c:1419
+#: eelf64ppc_fbsd.c:1419
#, c-format
msgid ""
" --plt-localentry Optimize calls to ELFv2 localentry:0 "
"functions\n"
msgstr ""
-#: eelf64lppc.c:1418 eelf64lppc_fbsd.c:1418 eelf64ppc.c:1418
-#: eelf64ppc_fbsd.c:1418
+#: eelf64lppc.c:1422 eelf64lppc_fbsd.c:1422 eelf64ppc.c:1422
+#: eelf64ppc_fbsd.c:1422
#, c-format
msgid " --no-plt-localentry Don't optimize ELFv2 calls\n"
msgstr ""
-#: eelf64lppc.c:1421 eelf64lppc_fbsd.c:1421 eelf64ppc.c:1421
-#: eelf64ppc_fbsd.c:1421
+#: eelf64lppc.c:1425 eelf64lppc_fbsd.c:1425 eelf64ppc.c:1425
+#: eelf64ppc_fbsd.c:1425
#, c-format
msgid ""
" --power10-stubs [=auto] Use Power10 PLT call stubs (default auto)\n"
msgstr ""
-#: eelf64lppc.c:1424 eelf64lppc_fbsd.c:1424 eelf64ppc.c:1424
-#: eelf64ppc_fbsd.c:1424
+#: eelf64lppc.c:1428 eelf64lppc_fbsd.c:1428 eelf64ppc.c:1428
+#: eelf64ppc_fbsd.c:1428
#, c-format
msgid ""
" --no-pcrel-optimize Don't perform R_PPC64_PCREL_OPT optimization\n"
msgstr ""
-#: eelf64lppc.c:1427 eelf64lppc_fbsd.c:1427 eelf64ppc.c:1427
-#: eelf64ppc_fbsd.c:1427
+#: eelf64lppc.c:1431 eelf64lppc_fbsd.c:1431 eelf64ppc.c:1431
+#: eelf64ppc_fbsd.c:1431
#, c-format
msgid " --no-power10-stubs Don't use Power10 PLT call stubs\n"
msgstr ""
-#: eelf64lppc.c:1436 eelf64lppc_fbsd.c:1436 eelf64ppc.c:1436
-#: eelf64ppc_fbsd.c:1436
+#: eelf64lppc.c:1440 eelf64lppc_fbsd.c:1440 eelf64ppc.c:1440
+#: eelf64ppc_fbsd.c:1440
#, c-format
msgid ""
" --dotsyms For every version pattern \"foo\" in a "
@@ -6613,15 +6641,15 @@ msgid ""
" descriptor symbols. Defaults to on.\n"
msgstr ""
-#: eelf64lppc.c:1442 eelf64lppc_fbsd.c:1442 eelf64ppc.c:1442
-#: eelf64ppc_fbsd.c:1442
+#: eelf64lppc.c:1446 eelf64lppc_fbsd.c:1446 eelf64ppc.c:1446
+#: eelf64ppc_fbsd.c:1446
#, c-format
msgid ""
" --no-dotsyms Don't do anything special in version scripts\n"
msgstr ""
-#: eelf64lppc.c:1445 eelf64lppc_fbsd.c:1445 eelf64ppc.c:1445
-#: eelf64ppc_fbsd.c:1445
+#: eelf64lppc.c:1449 eelf64lppc_fbsd.c:1449 eelf64ppc.c:1449
+#: eelf64ppc_fbsd.c:1449
#, c-format
msgid ""
" --save-restore-funcs Provide register save and restore routines "
@@ -6630,180 +6658,180 @@ msgid ""
" final link, off for ld -r.\n"
msgstr ""
-#: eelf64lppc.c:1450 eelf64lppc_fbsd.c:1450 eelf64ppc.c:1450
-#: eelf64ppc_fbsd.c:1450
+#: eelf64lppc.c:1454 eelf64lppc_fbsd.c:1454 eelf64ppc.c:1454
+#: eelf64ppc_fbsd.c:1454
#, c-format
msgid " --no-save-restore-funcs Don't provide these routines\n"
msgstr ""
-#: eelf64lppc.c:1456 eelf64lppc_fbsd.c:1456 eelf64ppc.c:1456
-#: eelf64ppc_fbsd.c:1456
+#: eelf64lppc.c:1460 eelf64lppc_fbsd.c:1460 eelf64ppc.c:1460
+#: eelf64ppc_fbsd.c:1460
#, c-format
msgid ""
" --tls-get-addr-optimize Force use of special __tls_get_addr call\n"
msgstr ""
-#: eelf64lppc.c:1462 eelf64lppc_fbsd.c:1462 eelf64ppc.c:1462
-#: eelf64ppc_fbsd.c:1462
+#: eelf64lppc.c:1466 eelf64lppc_fbsd.c:1466 eelf64ppc.c:1466
+#: eelf64ppc_fbsd.c:1466
#, c-format
msgid " --tls-get-addr-regsave Force register save __tls_get_addr stub\n"
msgstr ""
-#: eelf64lppc.c:1465 eelf64lppc_fbsd.c:1465 eelf64ppc.c:1465
-#: eelf64ppc_fbsd.c:1465
+#: eelf64lppc.c:1469 eelf64lppc_fbsd.c:1469 eelf64ppc.c:1469
+#: eelf64ppc_fbsd.c:1469
#, c-format
msgid ""
" --no-tls-get-addr-regsave Don't use register save __tls_get_addr stub\n"
msgstr ""
-#: eelf64lppc.c:1468 eelf64lppc_fbsd.c:1468 eelf64ppc.c:1468
-#: eelf64ppc_fbsd.c:1468
+#: eelf64lppc.c:1472 eelf64lppc_fbsd.c:1472 eelf64ppc.c:1472
+#: eelf64ppc_fbsd.c:1472
#, c-format
msgid " --no-opd-optimize Don't optimize the OPD section\n"
msgstr ""
-#: eelf64lppc.c:1474 eelf64lppc_fbsd.c:1474 eelf64ppc.c:1474
-#: eelf64ppc_fbsd.c:1474
+#: eelf64lppc.c:1478 eelf64lppc_fbsd.c:1478 eelf64ppc.c:1478
+#: eelf64ppc_fbsd.c:1478
#, c-format
msgid " --no-toc-optimize Don't optimize the TOC section\n"
msgstr ""
-#: eelf64lppc.c:1477 eelf64lppc_fbsd.c:1477 eelf64ppc.c:1477
-#: eelf64ppc_fbsd.c:1477
+#: eelf64lppc.c:1481 eelf64lppc_fbsd.c:1481 eelf64ppc.c:1481
+#: eelf64ppc_fbsd.c:1481
#, c-format
msgid ""
" --no-multi-toc Disallow automatic multiple toc sections\n"
msgstr ""
-#: eelf64lppc.c:1480 eelf64lppc_fbsd.c:1480 eelf64ppc.c:1480
-#: eelf64ppc_fbsd.c:1480
+#: eelf64lppc.c:1484 eelf64lppc_fbsd.c:1484 eelf64ppc.c:1484
+#: eelf64ppc_fbsd.c:1484
#, c-format
msgid " --no-toc-sort Don't sort TOC and GOT sections\n"
msgstr ""
-#: eelf64lppc.c:1483 eelf64lppc_fbsd.c:1483 eelf64ppc.c:1483
-#: eelf64ppc_fbsd.c:1483
+#: eelf64lppc.c:1487 eelf64lppc_fbsd.c:1487 eelf64ppc.c:1487
+#: eelf64ppc_fbsd.c:1487
#, c-format
msgid ""
" --non-overlapping-opd Canonicalize .opd, so that there are no\n"
" overlapping .opd entries\n"
msgstr ""
-#: eelf64lppc_fbsd.c:1397 eelf64ppc_fbsd.c:1397
+#: eelf64lppc_fbsd.c:1401 eelf64ppc_fbsd.c:1401
#, c-format
msgid " --plt-static-chain PLT call stubs should load r111\n"
msgstr ""
-#: eelf64lppc_fbsd.c:1400 eelf64ppc_fbsd.c:1400
+#: eelf64lppc_fbsd.c:1404 eelf64ppc_fbsd.c:1404
#, c-format
msgid ""
" --no-plt-static-chain PLT call stubs should not load r11 (default)\n"
msgstr ""
-#: eelf64mmix.c:83 emmo.c:84
+#: eelf64mmix.c:84 emmo.c:84
msgid "%X%P: internal problems setting up section %s"
msgstr ""
-#: eelf64mmix.c:127 emmo.c:128
+#: eelf64mmix.c:128 emmo.c:128
msgid "%X%P: too many global registers: %u, max 223\n"
msgstr ""
#. This is a fatal error; make einfo call not return.
-#: eelf64mmix.c:145 emmo.c:146
+#: eelf64mmix.c:146 emmo.c:146
msgid "%F%P: can't finalize linker-allocated global registers\n"
msgstr ""
-#: eelf_x86_64.c:5712 eelf_x86_64_cloudabi.c:611 eelf_x86_64_fbsd.c:611
-#: eelf_x86_64_haiku.c:611 eelf_x86_64_sol2.c:743
+#: eelf_x86_64.c:7948 eelf_x86_64_cloudabi.c:672 eelf_x86_64_fbsd.c:672
+#: eelf_x86_64_haiku.c:672 eelf_x86_64_sol2.c:804
msgid "%F%P: invalid option for -z lam-u48-report=: %s\n"
msgstr ""
-#: eelf_x86_64.c:5726 eelf_x86_64_cloudabi.c:625 eelf_x86_64_fbsd.c:625
-#: eelf_x86_64_haiku.c:625 eelf_x86_64_sol2.c:757
+#: eelf_x86_64.c:7962 eelf_x86_64_cloudabi.c:686 eelf_x86_64_fbsd.c:686
+#: eelf_x86_64_haiku.c:686 eelf_x86_64_sol2.c:818
msgid "%F%P: invalid option for -z lam-u57-report=: %s\n"
msgstr ""
-#: eelf_x86_64.c:5747 eelf_x86_64_cloudabi.c:646 eelf_x86_64_fbsd.c:646
-#: eelf_x86_64_haiku.c:646 eelf_x86_64_sol2.c:778
+#: eelf_x86_64.c:7983 eelf_x86_64_cloudabi.c:707 eelf_x86_64_fbsd.c:707
+#: eelf_x86_64_haiku.c:707 eelf_x86_64_sol2.c:839
msgid "%F%P: invalid option for -z lam-report=: %s\n"
msgstr ""
-#: eelf_x86_64.c:5827 eelf_x86_64_cloudabi.c:726 eelf_x86_64_fbsd.c:726
-#: eelf_x86_64_haiku.c:726 eelf_x86_64_sol2.c:858
+#: eelf_x86_64.c:8067 eelf_x86_64_cloudabi.c:791 eelf_x86_64_fbsd.c:791
+#: eelf_x86_64_haiku.c:791 eelf_x86_64_sol2.c:923
#, c-format
msgid ""
" -z lam-u48 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48\n"
msgstr ""
-#: eelf_x86_64.c:5829 eelf_x86_64_cloudabi.c:728 eelf_x86_64_fbsd.c:728
-#: eelf_x86_64_haiku.c:728 eelf_x86_64_sol2.c:860
+#: eelf_x86_64.c:8069 eelf_x86_64_cloudabi.c:793 eelf_x86_64_fbsd.c:793
+#: eelf_x86_64_haiku.c:793 eelf_x86_64_sol2.c:925
#, c-format
msgid ""
" -z lam-u48-report=[none|warning|error] (default: none)\n"
" Report missing LAM_U48 property\n"
msgstr ""
-#: eelf_x86_64.c:5832 eelf_x86_64_cloudabi.c:731 eelf_x86_64_fbsd.c:731
-#: eelf_x86_64_haiku.c:731 eelf_x86_64_sol2.c:863
+#: eelf_x86_64.c:8072 eelf_x86_64_cloudabi.c:796 eelf_x86_64_fbsd.c:796
+#: eelf_x86_64_haiku.c:796 eelf_x86_64_sol2.c:928
#, c-format
msgid ""
" -z lam-u57 Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57\n"
msgstr ""
-#: eelf_x86_64.c:5834 eelf_x86_64_cloudabi.c:733 eelf_x86_64_fbsd.c:733
-#: eelf_x86_64_haiku.c:733 eelf_x86_64_sol2.c:865
+#: eelf_x86_64.c:8074 eelf_x86_64_cloudabi.c:798 eelf_x86_64_fbsd.c:798
+#: eelf_x86_64_haiku.c:798 eelf_x86_64_sol2.c:930
#, c-format
msgid ""
" -z lam-u57-report=[none|warning|error] (default: none)\n"
" Report missing LAM_U57 property\n"
msgstr ""
-#: eelf_x86_64.c:5837 eelf_x86_64_cloudabi.c:736 eelf_x86_64_fbsd.c:736
-#: eelf_x86_64_haiku.c:736 eelf_x86_64_sol2.c:868
+#: eelf_x86_64.c:8077 eelf_x86_64_cloudabi.c:801 eelf_x86_64_fbsd.c:801
+#: eelf_x86_64_haiku.c:801 eelf_x86_64_sol2.c:933
#, c-format
msgid ""
" -z lam-report=[none|warning|error] (default: none)\n"
" Report missing LAM_U48 and LAM_U57 properties\n"
msgstr ""
-#: ehppaelf.c:326 ehppalinux.c:326 ehppanbsd.c:326 ehppaobsd.c:326
+#: ehppaelf.c:327 ehppalinux.c:327 ehppanbsd.c:327 ehppaobsd.c:327
msgid "%X%P: can not set gp\n"
msgstr ""
-#: ehppaelf.c:607 ehppalinux.c:789 ehppanbsd.c:789 ehppaobsd.c:789
+#: ehppaelf.c:604 ehppalinux.c:826 ehppanbsd.c:826 ehppaobsd.c:826
#, c-format
msgid ""
" --multi-subspace Generate import and export stubs to support\n"
" multiple sub-space shared libraries\n"
msgstr ""
-#: ei386beos.c:376
+#: ei386beos.c:360
msgid "%F%P: PE operations on non PE file\n"
msgstr ""
-#: ei386beos.c:426 ei386beos.c:431
+#: ei386beos.c:410 ei386beos.c:415
msgid "%F%P: %pB: can't read contents of section .idata: %E\n"
msgstr ""
-#: ei386beos.c:663
+#: ei386beos.c:647
msgid "%F%P: section %s has '$' as first character\n"
msgstr ""
-#: ei386beos.c:693
+#: ei386beos.c:677
msgid "%F%P: *(%s$) missing from linker script\n"
msgstr ""
-#: em68hc11elf.c:143 em68hc11elfb.c:143 em68hc12elf.c:143 em68hc12elfb.c:143
+#: em68hc11elf.c:144 em68hc11elfb.c:144 em68hc12elf.c:144 em68hc12elfb.c:144
msgid ""
"%P: warning: the size of the 'window' memory region is not a power of 2; its "
"size %d is truncated to %d\n"
msgstr ""
-#: em68hc11elf.c:158 em68hc11elfb.c:158 em68hc12elf.c:158 em68hc12elfb.c:158
+#: em68hc11elf.c:159 em68hc11elfb.c:159 em68hc12elf.c:159 em68hc12elfb.c:159
msgid "%X%P: changing output format whilst linking is not supported\n"
msgstr ""
-#: em68hc11elf.c:604 em68hc11elfb.c:604 em68hc12elf.c:604 em68hc12elfb.c:604
+#: em68hc11elf.c:601 em68hc11elfb.c:601 em68hc12elf.c:601 em68hc12elfb.c:601
#, c-format
msgid ""
" --no-trampoline Do not generate the far trampolines used to "
@@ -6811,7 +6839,7 @@ msgid ""
" a far function using jsr or bsr\n"
msgstr ""
-#: em68hc11elf.c:607 em68hc11elfb.c:607 em68hc12elf.c:607 em68hc12elfb.c:607
+#: em68hc11elf.c:604 em68hc11elfb.c:604 em68hc12elf.c:604 em68hc12elfb.c:604
#, c-format
msgid ""
" --bank-window NAME Specify the name of the memory region "
@@ -6819,15 +6847,15 @@ msgid ""
" the layout of the memory bank window\n"
msgstr ""
-#: em68kelf.c:91 em68kelfnbsd.c:91
+#: em68kelf.c:92 em68kelfnbsd.c:92
msgid "%F%P: %pB: all input objects must be ELF for --embedded-relocs\n"
msgstr ""
-#: em68kelf.c:650 em68kelfnbsd.c:650
+#: em68kelf.c:688 em68kelfnbsd.c:688
msgid "%P: unrecognized --got argument '%s'\n"
msgstr ""
-#: em68kelf.c:663 em68kelfnbsd.c:663
+#: em68kelf.c:701 em68kelfnbsd.c:701
#, c-format
msgid " --got=<type> Specify GOT handling scheme\n"
msgstr ""
@@ -6836,19 +6864,19 @@ msgstr ""
msgid "%X%P: internal problems scanning %pB after opening it"
msgstr ""
-#: emsp430X.c:159 emsp430elf.c:159
+#: emsp430X.c:160 emsp430elf.c:160
msgid "%P: error: unhandled data_statement size\n"
msgstr ""
-#: emsp430X.c:299 emsp430elf.c:299
+#: emsp430X.c:300 emsp430elf.c:300
msgid "%P: error: no section named %s or %s in linker script\n"
msgstr ""
-#: emsp430X.c:308 emsp430elf.c:308
+#: emsp430X.c:309 emsp430elf.c:309
msgid "%P: error: no section named %s in linker script\n"
msgstr ""
-#: emsp430X.c:459 emsp430elf.c:459
+#: emsp430X.c:456 emsp430elf.c:456
#, c-format
msgid ""
" --code-region={either,lower,upper,none}\n"
@@ -6856,7 +6884,7 @@ msgid ""
"sections\n"
msgstr ""
-#: emsp430X.c:460 emsp430elf.c:460
+#: emsp430X.c:457 emsp430elf.c:457
#, c-format
msgid ""
" --data-region={either,lower,upper,none}\n"
@@ -6864,7 +6892,7 @@ msgid ""
" {either,lower,upper,none}.{bss,data,rodata}* sections\n"
msgstr ""
-#: emsp430X.c:461 emsp430elf.c:461
+#: emsp430X.c:458 emsp430elf.c:458
#, c-format
msgid ""
" --disable-sec-transformation\n"
@@ -6872,72 +6900,72 @@ msgid ""
" add the {either,lower,upper,none} prefixes\n"
msgstr ""
-#: emsp430X.c:480 emsp430elf.c:480
+#: emsp430X.c:477 emsp430elf.c:477
msgid "%P: --code-region requires an argument: {upper,lower,either,none}\n"
msgstr ""
-#: emsp430X.c:486 emsp430elf.c:486
+#: emsp430X.c:483 emsp430elf.c:483
msgid "%P: error: unrecognized argument to --code-region= option: \"%s\"\n"
msgstr ""
-#: emsp430X.c:503 emsp430elf.c:503
+#: emsp430X.c:500 emsp430elf.c:500
msgid "%P: --data-region requires an argument: {upper,lower,either,none}\n"
msgstr ""
-#: emsp430X.c:509 emsp430elf.c:509
+#: emsp430X.c:506 emsp430elf.c:506
msgid "%P: error: unrecognized argument to --data-region= option: \"%s\"\n"
msgstr ""
#. Incompatible objects.
-#: ends32belf.c:128 ends32belf16m.c:128 ends32belf_linux.c:128 ends32elf.c:128
-#: ends32elf16m.c:128 ends32elf_linux.c:128
+#: ends32belf.c:129 ends32belf16m.c:129 ends32belf_linux.c:129 ends32elf.c:129
+#: ends32elf16m.c:129 ends32elf_linux.c:129
msgid "%F%P: %pB: ABI version of object files mismatched\n"
msgstr ""
-#: ends32belf.c:438 ends32belf16m.c:438 ends32belf_linux.c:571 ends32elf.c:438
-#: ends32elf16m.c:438 ends32elf_linux.c:571
+#: ends32belf.c:427 ends32belf16m.c:427 ends32belf_linux.c:570 ends32elf.c:427
+#: ends32elf16m.c:427 ends32elf_linux.c:570
msgid "%P: --mbaseline is not used anymore\n"
msgstr ""
-#: ends32belf.c:449 ends32belf16m.c:449 ends32belf_linux.c:582 ends32elf.c:449
-#: ends32elf16m.c:449 ends32elf_linux.c:582
+#: ends32belf.c:438 ends32belf16m.c:438 ends32belf_linux.c:581 ends32elf.c:438
+#: ends32elf16m.c:438 ends32elf_linux.c:581
msgid "%P: --relax-[no-]reduce-fp-updat is not used anymore\n"
msgstr ""
-#: ends32belf.c:453 ends32belf16m.c:453 ends32belf_linux.c:586 ends32elf.c:453
-#: ends32elf16m.c:453 ends32elf_linux.c:586
+#: ends32belf.c:442 ends32belf16m.c:442 ends32belf_linux.c:585 ends32elf.c:442
+#: ends32elf16m.c:442 ends32elf_linux.c:585
msgid "%P: missing file for --mexport-symbols\n"
msgstr ""
-#: ends32belf.c:466 ends32belf.c:475 ends32belf16m.c:466 ends32belf16m.c:475
-#: ends32belf_linux.c:599 ends32belf_linux.c:608 ends32elf.c:466
-#: ends32elf.c:475 ends32elf16m.c:466 ends32elf16m.c:475 ends32elf_linux.c:599
-#: ends32elf_linux.c:608
+#: ends32belf.c:455 ends32belf.c:464 ends32belf16m.c:455 ends32belf16m.c:464
+#: ends32belf_linux.c:598 ends32belf_linux.c:607 ends32elf.c:455
+#: ends32elf.c:464 ends32elf16m.c:455 ends32elf16m.c:464 ends32elf_linux.c:598
+#: ends32elf_linux.c:607
msgid "%P: valid arguments to --mhyper-relax=(low|medium|high)\n"
msgstr ""
-#: ends32belf.c:495 ends32belf16m.c:495 ends32belf_linux.c:628 ends32elf.c:495
-#: ends32elf16m.c:495 ends32elf_linux.c:628
+#: ends32belf.c:484 ends32belf16m.c:484 ends32belf_linux.c:627 ends32elf.c:484
+#: ends32elf16m.c:484 ends32elf_linux.c:627
#, c-format
msgid " --m[no-]fp-as-gp Disable/enable fp-as-gp relaxation\n"
msgstr ""
-#: ends32belf.c:497 ends32belf16m.c:497 ends32belf_linux.c:630 ends32elf.c:497
-#: ends32elf16m.c:497 ends32elf_linux.c:630
+#: ends32belf.c:486 ends32belf16m.c:486 ends32belf_linux.c:629 ends32elf.c:486
+#: ends32elf16m.c:486 ends32elf_linux.c:629
#, c-format
msgid " --mexport-symbols=FILE Exporting symbols in linker script\n"
msgstr ""
-#: ends32belf.c:499 ends32belf16m.c:499 ends32belf_linux.c:632 ends32elf.c:499
-#: ends32elf16m.c:499 ends32elf_linux.c:632
+#: ends32belf.c:488 ends32belf16m.c:488 ends32belf_linux.c:631 ends32elf.c:488
+#: ends32elf16m.c:488 ends32elf_linux.c:631
#, c-format
msgid ""
" --mhyper-relax=level Adjust relax level (low|medium|high). default: "
"medium\n"
msgstr ""
-#: ends32belf.c:501 ends32belf16m.c:501 ends32belf_linux.c:634 ends32elf.c:501
-#: ends32elf16m.c:501 ends32elf_linux.c:634
+#: ends32belf.c:490 ends32belf16m.c:490 ends32belf_linux.c:633 ends32elf.c:490
+#: ends32elf16m.c:490 ends32elf_linux.c:633
#, c-format
msgid " --m[no-]tlsdesc-trampoline Disable/enable TLS DESC trampoline\n"
msgstr ""
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index 8374920..9ffcc58 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -519,9 +519,9 @@ if { [check_compiler_available] } {
cyglto_plugin-0.dll
}
foreach plug $plugin_names {
- set plug_so [run_host_cmd $CC_FOR_TARGET "--print-prog-name $plug"]
+ set plug_so [string trim [run_host_cmd $CC_FOR_TARGET "--print-prog-name $plug"]]
if { $plug_so eq $plug } then {
- set plug_so [run_host_cmd $CC_FOR_TARGET "--print-file-name $plug"]
+ set plug_so [string trim [run_host_cmd $CC_FOR_TARGET "--print-file-name $plug"]]
}
if { $plug_so ne $plug } then {
set plug_opt "--plugin $plug_so"
diff --git a/ld/testsuite/ld-elf/dwarf.exp b/ld/testsuite/ld-elf/dwarf.exp
index 1ca1ec5..670551f 100644
--- a/ld/testsuite/ld-elf/dwarf.exp
+++ b/ld/testsuite/ld-elf/dwarf.exp
@@ -52,9 +52,6 @@ set build_tests {
{"DWARF parse during linker error"
"" "-g -fno-toplevel-reorder"
{dwarf2a.c dwarf2b.c} {{error_output "dwarf2.err"}} "dwarf2.x"}
-}
-
-set build_tests_dwarf3 {
{"Handle no DWARF information"
"" "-g0"
{dwarf3.c} {{error_output "dwarf3.err"}} "dwarf3.x"}
@@ -75,8 +72,6 @@ set run_tests {
set old_CFLAGS "$CFLAGS_FOR_TARGET"
append CFLAGS_FOR_TARGET " $NOSANITIZE_CFLAGS"
run_cc_link_tests $build_tests
-setup_xfail loongarch*-*-*
-run_cc_link_tests $build_tests_dwarf3
run_ld_link_exec_tests $run_tests
set CFLAGS_FOR_TARGET "$old_CFLAGS"
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
index 97ca778..281c3f5 100644
--- a/ld/testsuite/ld-elf/shared.exp
+++ b/ld/testsuite/ld-elf/shared.exp
@@ -1687,7 +1687,7 @@ proc mix_pic_and_non_pic {xfails cflags ldflags exe} {
}
set exec_output [run_host_cmd "tmpdir/$exe" ""]
- if {![string match "PASS" $exec_output]} {
+ if {![string match "PASS\n" $exec_output]} {
fail "Run $exe fun undefined"
} else {
pass "Run $exe fun undefined"
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index f96c514..5c9153f 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -553,9 +553,9 @@ proc undefined_weak {cflags ldflags} {
if { [string match "*-fPIE*" $cflags]
&& ![string match "*-z nodynamic-undefined-weak*" $ldflags] } {
- set weak_symbol "Weak defined"
+ set weak_symbol "Weak defined\n"
} else {
- set weak_symbol "Weak undefined"
+ set weak_symbol "Weak undefined\n"
}
run_cc_link_tests [list \
diff --git a/ld/testsuite/ld-loongarch-elf/abssym.s b/ld/testsuite/ld-loongarch-elf/abssym.s
new file mode 100644
index 0000000..3eacc76
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/abssym.s
@@ -0,0 +1,3 @@
+.section .data,"aw"
+.quad _size8
+.word _size4
diff --git a/ld/testsuite/ld-loongarch-elf/abssym_pie.d b/ld/testsuite/ld-loongarch-elf/abssym_pie.d
new file mode 100644
index 0000000..dfc3e35
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/abssym_pie.d
@@ -0,0 +1,6 @@
+#source: abssym.s
+#ld: -pie -e 0 --defsym _size8=0 --defsym _size4=0
+#readelf: -r
+#...
+There are no relocations in this file.
+#...
diff --git a/ld/testsuite/ld-loongarch-elf/abssym_shared.d b/ld/testsuite/ld-loongarch-elf/abssym_shared.d
new file mode 100644
index 0000000..2db7e89
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/abssym_shared.d
@@ -0,0 +1,6 @@
+#source: abssym.s
+#ld: -shared --defsym _size8=0 --defsym _size4=0
+#readelf: -r
+#...
+There are no relocations in this file.
+#...
diff --git a/ld/testsuite/ld-loongarch-elf/ifunc-reloc.d b/ld/testsuite/ld-loongarch-elf/ifunc-reloc.d
new file mode 100644
index 0000000..968e756
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/ifunc-reloc.d
@@ -0,0 +1,19 @@
+#ld: -shared
+#readelf: -Wr
+
+#...
+.*'\.rela\.dyn'.*
+#...
+.* R_LARCH_RELATIVE .*
+.* R_LARCH_IRELATIVE .*
+.* R_LARCH_IRELATIVE .*
+.* R_LARCH_IRELATIVE .*
+.* R_LARCH_IRELATIVE .*
+#...
+.*'\.rela\.plt'.*
+#...
+.* R_LARCH_JUMP_SLOT .*
+.* R_LARCH_JUMP_SLOT .*
+.* R_LARCH_JUMP_SLOT .*
+.* R_LARCH_JUMP_SLOT .*
+.* R_LARCH_JUMP_SLOT .*
diff --git a/ld/testsuite/ld-loongarch-elf/ifunc-reloc.s b/ld/testsuite/ld-loongarch-elf/ifunc-reloc.s
new file mode 100644
index 0000000..e59f2b2
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/ifunc-reloc.s
@@ -0,0 +1,55 @@
+.globl foo
+.globl foo_hidden1
+.globl foo_hidden2
+.globl foo_protected
+
+.type foo, %gnu_indirect_function
+.type foo_hidden1, %gnu_indirect_function
+.type foo_hidden2, %gnu_indirect_function
+.type foo_protected, %gnu_indirect_function
+.type foo_internal, %gnu_indirect_function
+
+.hidden foo_hidden1
+.hidden foo_hidden2
+
+.protected foo_protected
+
+.globl ext_ifunc1
+.globl ext_ifunc2
+.type ext_ifunc1, %gnu_indirect_function
+.type ext_ifunc2, %gnu_indirect_function
+
+.text
+.align 2
+foo:
+ ret
+
+foo_hidden1:
+ ret
+
+foo_hidden2:
+ ret
+
+foo_protected:
+ ret
+
+foo_internal:
+ ret
+
+test:
+ la.got $a0, num
+ # The order is deliberately shuffled.
+ bl ext_ifunc1
+ bl foo
+ bl foo_hidden1
+ bl ext_func1
+ bl foo_protected
+ bl foo_internal
+ bl foo_hidden2
+ bl ext_func2
+ bl ext_ifunc2
+
+.data
+.align 3
+num:
+ .quad 114514
diff --git a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
index 2d67c4f..fb34eeb 100644
--- a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
+++ b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
@@ -132,10 +132,25 @@ if [istarget "loongarch64-*-*"] {
run_dump_test "reloc_le_with_shared"
run_dump_test "reloc_ler_with_shared"
run_dump_test "reloc_abs_with_shared"
+ run_dump_test "r_larch_32_elf64"
+ run_dump_test "ifunc-reloc"
+ run_dump_test "protected-func"
+ run_dump_test "relr-addend"
+ run_dump_test "relr-align"
+ run_dump_test "relr-data-shared"
+ run_dump_test "relr-discard-shared"
+ run_dump_test "relr-got-shared"
+ run_dump_test "relr-text-shared"
+ run_dump_test "abssym_shared"
}
if [check_pie_support] {
run_dump_test "pie_discard"
+ run_dump_test "relr-data-pie"
+ run_dump_test "relr-discard-pie"
+ run_dump_test "relr-got-pie"
+ run_dump_test "relr-text-pie"
+ run_dump_test "abssym_pie"
}
run_dump_test "max_imm_b16"
diff --git a/ld/testsuite/ld-loongarch-elf/protected-func.d b/ld/testsuite/ld-loongarch-elf/protected-func.d
new file mode 100644
index 0000000..501c7cb
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/protected-func.d
@@ -0,0 +1,6 @@
+#ld: -shared
+#readelf: -Wr
+
+#...
+.* R_LARCH_RELATIVE .*
+.* R_LARCH_RELATIVE .*
diff --git a/ld/testsuite/ld-loongarch-elf/protected-func.s b/ld/testsuite/ld-loongarch-elf/protected-func.s
new file mode 100644
index 0000000..8f28f92
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/protected-func.s
@@ -0,0 +1,17 @@
+# protected function should be non-preemptible and relocated with
+# R_LARCH_RELATIVE in shared library, for both GOT and pointer data
+
+.globl x
+.protected x
+.type x, @function
+x:
+ ret
+
+.globl _start
+_start:
+ la.got $a0, x
+ ret
+
+.data
+p:
+ .quad x
diff --git a/ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.d b/ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.d
new file mode 100644
index 0000000..3431329
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.d
@@ -0,0 +1,4 @@
+#name: R_LARCH_32 in ELFCLASS64
+#source: r_larch_32_elf64.s
+#ld: -shared -melf64loongarch
+#error: R_LARCH_32 .* cannot be used in ELFCLASS64
diff --git a/ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.s b/ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.s
new file mode 100644
index 0000000..6649f2b
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/r_larch_32_elf64.s
@@ -0,0 +1,3 @@
+.data
+x:
+ .4byte x
diff --git a/ld/testsuite/ld-loongarch-elf/relr-addend.d b/ld/testsuite/ld-loongarch-elf/relr-addend.d
new file mode 100644
index 0000000..da13c2c
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-addend.d
@@ -0,0 +1,11 @@
+#ld: -shared -z pack-relative-relocs -T relr-relocs.ld
+#objdump: -s -j.got -j.data
+
+.*: file format elf64-loongarch
+
+Contents of section \.got:
+ 20000 [0-9a-f]+ [0-9a-f]+ 00003412 00000000 .*
+ 20010 08003412 00000000 .*
+Contents of section \.data:
+ 12340000 14451100 00000000 10989101 00000000 .*
+ 12340010 00003412 00000000 08003412 00000000 .*
diff --git a/ld/testsuite/ld-loongarch-elf/relr-addend.s b/ld/testsuite/ld-loongarch-elf/relr-addend.s
new file mode 100644
index 0000000..3d08f6c
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-addend.s
@@ -0,0 +1,17 @@
+.data
+.align 8
+x:
+ .quad 0x114514
+y:
+ .quad 0x1919810
+px:
+ .quad x
+py:
+ .quad y
+
+.text
+.align 2
+_start:
+ la.got $a0, x
+ la.got $a1, y
+ ret
diff --git a/ld/testsuite/ld-loongarch-elf/relr-align.d b/ld/testsuite/ld-loongarch-elf/relr-align.d
new file mode 100644
index 0000000..d534243
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-align.d
@@ -0,0 +1,22 @@
+#source: relr-align.s
+#ld: -shared -z pack-relative-relocs -T relr-relocs.ld
+#readelf: -rW
+
+Relocation section '\.rela.dyn' at offset 0x[0-9a-f]+ contains 3 entries:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0000000012340011 0000000000000003 R_LARCH_RELATIVE 10000
+0000000012340019 0000000000000003 R_LARCH_RELATIVE 10000
+0000000012340041 0000000000000003 R_LARCH_RELATIVE 10000
+
+Relocation section '\.relr.dyn' at offset 0x[0-9a-f]+ contains 9 entries which relocate 10 locations:
+Index: Entry Address Symbolic Address
+0000: 0000000012340000 0000000012340000 double_0
+0001: 0000000000000003 0000000012340008 double_0 \+ 0x8
+0002: 0000000012340022 0000000012340022 double_2
+0003: 0000000000000003 000000001234002a double_2 \+ 0x8
+0004: 0000000012340038 0000000012340038 single_0
+0005: 000000001234004a 000000001234004a single_2
+0006: 0000000012340058 0000000012340058 big
+0007: 8000000100000001 0000000012340158 big \+ 0x100
+ 0000000012340250 big \+ 0x1f8
+0008: 0000000000000003 0000000012340258 big \+ 0x200
diff --git a/ld/testsuite/ld-loongarch-elf/relr-align.s b/ld/testsuite/ld-loongarch-elf/relr-align.s
new file mode 100644
index 0000000..ddd055a
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-align.s
@@ -0,0 +1,106 @@
+# Test DT_RELR with differently aligned relative relocs.
+
+.text
+.global _start
+_start:
+foo:
+
+.data
+.p2align 3
+double_0:
+.quad foo
+.quad foo
+.byte 0
+double_1:
+.quad foo
+.quad foo
+.byte 0
+double_2:
+.quad foo
+.quad foo
+.byte 0
+.byte 0
+.byte 0
+.byte 0
+.byte 0
+.byte 0
+single_0:
+.quad foo
+.byte 0
+single_1:
+.quad foo
+.byte 0
+single_2:
+.quad foo
+.byte 0
+.byte 0
+.byte 0
+.byte 0
+.byte 0
+.byte 0
+big:
+.quad foo
+.quad 1
+.quad 2
+.quad 3
+.quad 4
+.quad 5
+.quad 6
+.quad 7
+.quad 8
+.quad 9
+.quad 10
+.quad 11
+.quad 12
+.quad 13
+.quad 14
+.quad 15
+.quad 16
+.quad 17
+.quad 18
+.quad 19
+.quad 20
+.quad 21
+.quad 22
+.quad 23
+.quad 24
+.quad 25
+.quad 26
+.quad 27
+.quad 28
+.quad 29
+.quad 30
+.quad 31
+.quad foo + 32
+.quad 33
+.quad 34
+.quad 35
+.quad 36
+.quad 37
+.quad 38
+.quad 39
+.quad 40
+.quad 41
+.quad 42
+.quad 43
+.quad 44
+.quad 45
+.quad 46
+.quad 47
+.quad 48
+.quad 49
+.quad 50
+.quad 51
+.quad 52
+.quad 53
+.quad 54
+.quad 55
+.quad 56
+.quad 57
+.quad 58
+.quad 59
+.quad 60
+.quad 61
+.quad 62
+.quad foo + 63
+.quad foo + 64
diff --git a/ld/testsuite/ld-loongarch-elf/relr-data-pie.d b/ld/testsuite/ld-loongarch-elf/relr-data-pie.d
new file mode 100644
index 0000000..20ef9ac
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-data-pie.d
@@ -0,0 +1,18 @@
+#source: relr-data.s
+#ld: -pie -z pack-relative-relocs -T relr-relocs.ld
+#readelf: -rW
+
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 5 entries:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0000000012340000 0000000000000003 R_LARCH_RELATIVE 10004
+0000000012340008 0000000000000003 R_LARCH_RELATIVE 10008
+0000000012340010 0000000000000003 R_LARCH_RELATIVE 1000c
+0000000012340018 0000000000000003 R_LARCH_RELATIVE 12340050
+0000000012340040 0000000c00000002 R_LARCH_64 0000000000000000 sym_weak_undef \+ 0
+
+Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate 4 locations:
+Index: Entry Address Symbolic Address
+0000: 0000000012340020 0000000012340020 aligned_local
+0001: 0000000000000027 0000000012340028 aligned_hidden
+ 0000000012340030 aligned_global
+ 0000000012340048 aligned_DYNAMIC
diff --git a/ld/testsuite/ld-loongarch-elf/relr-data-shared.d b/ld/testsuite/ld-loongarch-elf/relr-data-shared.d
new file mode 100644
index 0000000..37e4c0d
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-data-shared.d
@@ -0,0 +1,18 @@
+#source: relr-data.s
+#ld: -shared -z pack-relative-relocs -T relr-relocs.ld
+#readelf: -rW
+
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 6 entries:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0000000012340000 0000000000000003 R_LARCH_RELATIVE 10004
+0000000012340008 0000000000000003 R_LARCH_RELATIVE 10008
+0000000012340018 0000000000000003 R_LARCH_RELATIVE 12340050
+0000000012340010 0000000d00000002 R_LARCH_64 000000000001000c sym_global \+ 0
+0000000012340030 0000000d00000002 R_LARCH_64 000000000001000c sym_global \+ 0
+0000000012340040 0000000c00000002 R_LARCH_64 0000000000000000 sym_weak_undef \+ 0
+
+Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate 3 locations:
+Index: Entry Address Symbolic Address
+0000: 0000000012340020 0000000012340020 aligned_local
+0001: 0000000000000023 0000000012340028 aligned_hidden
+ 0000000012340048 aligned_DYNAMIC
diff --git a/ld/testsuite/ld-loongarch-elf/relr-data.s b/ld/testsuite/ld-loongarch-elf/relr-data.s
new file mode 100644
index 0000000..03673e0
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-data.s
@@ -0,0 +1,71 @@
+# Test symbol references in .data when used with DT_RELR.
+# Relocations for unaligned sections are currently not packed.
+
+.text
+.global _start
+_start:
+ nop
+
+sym_local:
+ nop
+
+.global sym_hidden
+.hidden sym_hidden
+sym_hidden:
+ nop
+
+.global sym_global
+sym_global:
+ nop
+
+.global sym_global_abs
+.set sym_global_abs, 42
+
+.global sym_weak_undef
+.weak sym_weak_undef
+
+.section .data.unaligned_local
+unaligned_local:
+.quad sym_local
+
+.section .data.unaligned_hidden
+unaligned_hidden:
+.quad sym_hidden
+
+.section .data.unaligned_global
+unaligned_global:
+.quad sym_global
+
+.section .data.unaligned_DYNAMIC
+unaligned_DYNAMIC:
+.quad _DYNAMIC
+
+.section .data.aligned_local
+.p2align 1
+aligned_local:
+.quad sym_local
+
+.section .data.aligned_hidden
+.p2align 1
+aligned_hidden:
+.quad sym_hidden
+
+.section .data.aligned_global
+.p2align 1
+aligned_global:
+.quad sym_global
+
+.section .data.aligned_global_abs
+.p2align 1
+aligned_global_abs:
+.quad sym_global_abs
+
+.section .data.aligned_weak_undef
+.p2align 1
+aligned_weak_undef:
+.quad sym_weak_undef
+
+.section .data.aligned_DYNAMIC
+.p2align 1
+aligned_DYNAMIC:
+.quad _DYNAMIC
diff --git a/ld/testsuite/ld-loongarch-elf/relr-discard-pie.d b/ld/testsuite/ld-loongarch-elf/relr-discard-pie.d
new file mode 100644
index 0000000..4ea8ae5
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-discard-pie.d
@@ -0,0 +1,8 @@
+#source: relr-discard.s
+#ld: -pie -z pack-relative-relocs -T relr-discard.ld
+#readelf: -rW
+
+Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate 2 locations:
+Index: Entry Address Symbolic Address
+0000: 0000000000020008 0000000000020008 _GLOBAL_OFFSET_TABLE_ \+ 0x8
+0001: 0000000000000003 0000000000020010 _GLOBAL_OFFSET_TABLE_ \+ 0x10
diff --git a/ld/testsuite/ld-loongarch-elf/relr-discard-shared.d b/ld/testsuite/ld-loongarch-elf/relr-discard-shared.d
new file mode 100644
index 0000000..8bfd8ba
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-discard-shared.d
@@ -0,0 +1,11 @@
+#source: relr-discard.s
+#ld: -shared -z pack-relative-relocs -T relr-discard.ld
+#readelf: -rW
+
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 1 entry:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0000000000020010 0000000300000002 R_LARCH_64 000000000001000c sym_global \+ 0
+
+Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 1 entry which relocates 1 location:
+Index: Entry Address Symbolic Address
+0000: 0000000000020008 0000000000020008 _GLOBAL_OFFSET_TABLE_ \+ 0x8
diff --git a/ld/testsuite/ld-loongarch-elf/relr-discard.ld b/ld/testsuite/ld-loongarch-elf/relr-discard.ld
new file mode 100644
index 0000000..165f1ed
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-discard.ld
@@ -0,0 +1,13 @@
+OUTPUT_ARCH(loongarch64)
+ENTRY(_start)
+SECTIONS
+{
+ /DISCARD/ : { *(.discard.*) }
+
+ . = 0x10000;
+ .text : { *(.text) }
+ . = 0x20000;
+ .got : { *(.got) *(.got.plt)}
+ . = 0x30000;
+ .data : { *(.data) *(.data.*) }
+}
diff --git a/ld/testsuite/ld-loongarch-elf/relr-discard.s b/ld/testsuite/ld-loongarch-elf/relr-discard.s
new file mode 100644
index 0000000..b52374a
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-discard.s
@@ -0,0 +1,61 @@
+# Test DT_RELR with references in discarded sections.
+
+.text
+.p2align 3
+.global _start
+_start:
+ nop
+
+sym_local:
+ nop
+
+.global sym_hidden
+.hidden sym_hidden
+sym_hidden:
+ nop
+
+.global sym_global
+sym_global:
+ nop
+
+.global sym_global_abs
+.set sym_global_abs, 42
+
+.global sym_weak_undef
+.weak sym_weak_undef
+
+.section .discard.got_local,"ax"
+ la.got $a0, sym_local
+
+.section .discard.got_global,"ax"
+ la.got $a0, sym_global
+
+.section .discard.local,"a"
+.p2align 1
+discard_local:
+.quad sym_local
+
+.section .discard.hidden,"a"
+.p2align 1
+discard_hidden:
+.quad sym_hidden
+
+.section .discard.global,"a"
+.p2align 1
+discard_global:
+.quad sym_global
+
+.section .discard.global_abs,"a"
+.p2align 1
+discard_global_abs:
+.quad sym_global_abs
+
+.section .discard.weak_undef,"a"
+.p2align 1
+discard_weak_undef:
+.quad sym_weak_undef
+
+.section .discard._DYNAMIC,"a"
+.p2align 1
+discard_DYNAMIC:
+.quad _DYNAMIC
diff --git a/ld/testsuite/ld-loongarch-elf/relr-got-pie.d b/ld/testsuite/ld-loongarch-elf/relr-got-pie.d
new file mode 100644
index 0000000..e994f2b
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-got-pie.d
@@ -0,0 +1,15 @@
+#source: relr-got.s
+#ld: -pie -z pack-relative-relocs -T relr-relocs.ld
+#readelf: -rW
+
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 2 entries:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0000000000000000 0000000000000000 R_LARCH_NONE 0
+0000000000020030 0000000200000002 R_LARCH_64 0000000000000000 sym_weak_undef \+ 0
+
+Relocation section '.relr.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate 4 locations:
+Index: Entry Address Symbolic Address
+0000: 0000000000020008 0000000000020008 _GLOBAL_OFFSET_TABLE_ \+ 0x8
+0001: 000000000000000f 0000000000020010 _GLOBAL_OFFSET_TABLE_ \+ 0x10
+ 0000000000020018 _GLOBAL_OFFSET_TABLE_ \+ 0x18
+ 0000000000020020 _GLOBAL_OFFSET_TABLE_ \+ 0x20
diff --git a/ld/testsuite/ld-loongarch-elf/relr-got-shared.d b/ld/testsuite/ld-loongarch-elf/relr-got-shared.d
new file mode 100644
index 0000000..169e0e5
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-got-shared.d
@@ -0,0 +1,15 @@
+#source: relr-got.s
+#ld: -shared -z pack-relative-relocs -T relr-relocs.ld
+#readelf: -rW
+
+Relocation section '\.rela\.dyn' at offset 0x[0-9a-f]+ contains 3 entries:
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
+0000000000020020 0000000300000002 R_LARCH_64 0000000000010034 sym_global \+ 0
+0000000000020028 0000000500000002 R_LARCH_64 000000000000002a sym_global_abs \+ 0
+0000000000020030 0000000200000002 R_LARCH_64 0000000000000000 sym_weak_undef \+ 0
+
+Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate 3 locations:
+Index: Entry Address Symbolic Address
+0000: 0000000000020008 0000000000020008 _GLOBAL_OFFSET_TABLE_ \+ 0x8
+0001: 0000000000000007 0000000000020010 _GLOBAL_OFFSET_TABLE_ \+ 0x10
+ 0000000000020018 _GLOBAL_OFFSET_TABLE_ \+ 0x18
diff --git a/ld/testsuite/ld-loongarch-elf/relr-got.s b/ld/testsuite/ld-loongarch-elf/relr-got.s
new file mode 100644
index 0000000..162528b
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-got.s
@@ -0,0 +1,27 @@
+.text
+.global _start
+_start:
+ la.got $a0, sym_local
+ la.got $a1, sym_hidden
+ la.got $a2, sym_global
+ la.got $a3, sym_global_abs
+ la.got $a4, sym_weak_undef
+ la.got $a5, _DYNAMIC
+
+sym_local:
+ nop
+
+.global sym_hidden
+.hidden sym_hidden
+sym_hidden:
+ nop
+
+.global sym_global
+sym_global:
+ nop
+
+.global sym_global_abs
+.set sym_global_abs, 42
+
+.global sym_weak_undef
+.weak sym_weak_undef
diff --git a/ld/testsuite/ld-loongarch-elf/relr-relocs.ld b/ld/testsuite/ld-loongarch-elf/relr-relocs.ld
new file mode 100644
index 0000000..ed83275
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-relocs.ld
@@ -0,0 +1,24 @@
+/* Script for DT_RELR tests */
+OUTPUT_ARCH(loongarch64)
+ENTRY(_start)
+SECTIONS
+{
+ PROVIDE (__executable_start = 0x8000); . = 0x10000;
+ .text :
+ {
+ *(.before)
+ *(.text)
+ *(.after)
+ } =0
+ . = 0x20000;
+ .got :
+ {
+ *(.got)
+ *(.got.plt)
+ }
+ . = 0x12340000;
+ .data :
+ {
+ *(.data)
+ }
+}
diff --git a/ld/testsuite/ld-loongarch-elf/relr-text-pie.d b/ld/testsuite/ld-loongarch-elf/relr-text-pie.d
new file mode 100644
index 0000000..5121313
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-text-pie.d
@@ -0,0 +1,14 @@
+#source: relr-text.s
+#ld: -pie -z pack-relative-relocs -T relr-relocs.ld
+#readelf: -drW
+
+#...
+ 0x0000000000000016 \(TEXTREL\) 0x0
+#...
+ 0x0000000000000024 \(RELR\) .*
+ 0x0000000000000023 \(RELRSZ\) 8 \(bytes\)
+ 0x0000000000000025 \(RELRENT\) 8 \(bytes\)
+#...
+Relocation section '\.relr\.dyn' .* contains 1 entry which relocates 1 location:
+Index: Entry Address Symbolic Address
+0000: 0000000000010000 0000000000010000 _start
diff --git a/ld/testsuite/ld-loongarch-elf/relr-text-shared.d b/ld/testsuite/ld-loongarch-elf/relr-text-shared.d
new file mode 100644
index 0000000..8e34500
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-text-shared.d
@@ -0,0 +1,14 @@
+#source: relr-text.s
+#ld: -shared -z pack-relative-relocs -T relr-relocs.ld
+#readelf: -drW
+
+#...
+ 0x0000000000000016 \(TEXTREL\) 0x0
+#...
+ 0x0000000000000024 \(RELR\) .*
+ 0x0000000000000023 \(RELRSZ\) 8 \(bytes\)
+ 0x0000000000000025 \(RELRENT\) 8 \(bytes\)
+#...
+Relocation section '\.relr\.dyn' .* contains 1 entry which relocates 1 location:
+Index: Entry Address Symbolic Address
+0000: 0000000000010000 0000000000010000 _start
diff --git a/ld/testsuite/ld-loongarch-elf/relr-text.s b/ld/testsuite/ld-loongarch-elf/relr-text.s
new file mode 100644
index 0000000..47465f2
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/relr-text.s
@@ -0,0 +1,10 @@
+# Test DT_RELR with DT_TEXTREL and R_LARCH_ALIGN.
+
+.text
+.p2align 5
+.global _start
+_start:
+.global foo
+.hidden foo
+foo:
+.quad foo
diff --git a/ld/testsuite/ld-mips-elf/unaligned-data.s b/ld/testsuite/ld-mips-elf/unaligned-data.s
index e865a13..f645c15 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-data.s
+++ b/ld/testsuite/ld-mips-elf/unaligned-data.s
@@ -5,7 +5,7 @@
bar\@ :
.byte 0
.size bar\@, . - bar\@
- sym \n - 1
+ sym (\n - 1)
.endif
.endm
diff --git a/ld/testsuite/ld-mips-elf/unaligned-insn.s b/ld/testsuite/ld-mips-elf/unaligned-insn.s
index 10649de..5313372 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-insn.s
+++ b/ld/testsuite/ld-mips-elf/unaligned-insn.s
@@ -6,7 +6,7 @@ bar\@ :
.insn
.hword 0
.size bar\@, . - bar\@
- sym \n - 1
+ sym (\n - 1)
.endif
.endm
diff --git a/ld/testsuite/ld-mips-elf/unaligned-text.s b/ld/testsuite/ld-mips-elf/unaligned-text.s
index 4b3aa38..2495c4b 100644
--- a/ld/testsuite/ld-mips-elf/unaligned-text.s
+++ b/ld/testsuite/ld-mips-elf/unaligned-text.s
@@ -5,7 +5,7 @@
bar\@ :
.byte 0
.size bar\@, . - bar\@
- sym \n - 1
+ sym (\n - 1)
.endif
.endm
diff --git a/ld/testsuite/ld-pe/pdb-strings.d b/ld/testsuite/ld-pe/pdb-strings.d
index 8be853e..2c9cd2e 100644
--- a/ld/testsuite/ld-pe/pdb-strings.d
+++ b/ld/testsuite/ld-pe/pdb-strings.d
@@ -7,4 +7,4 @@ Contents of section .data:
0020 7578000c 00000001 0000000a 00000000 ux..............
0030 00000000 00000000 00000012 00000000 ................
0040 00000000 00000002 00000006 00000000 ................
- 0050 0000000e 00000006 000000 ........... \ No newline at end of file
+ 0050 0000000e 00000006 000000 ...........
diff --git a/ld/testsuite/ld-pe/pdb-syms1-globals.d b/ld/testsuite/ld-pe/pdb-syms1-globals.d
index 356c5de..59f067b 100644
--- a/ld/testsuite/ld-pe/pdb-syms1-globals.d
+++ b/ld/testsuite/ld-pe/pdb-syms1-globals.d
@@ -2,20 +2,20 @@
*: file format binary
Contents of section .data:
- 0000 ffffffff 1a092ff1 d0000000 64020000 ....../.....d...
- 0010 fd000000 01000000 35010000 01000000 ........5.......
- 0020 15000000 01000000 19010000 01000000 ................
- 0030 c1000000 01000000 b9010000 01000000 ................
- 0040 d5000000 01000000 61010000 01000000 ........a.......
- 0050 e9000000 01000000 11020000 01000000 ................
- 0060 e9010000 01000000 d5010000 01000000 ................
- 0070 49010000 01000000 a5010000 01000000 I...............
- 0080 99010000 01000000 85000000 01000000 ................
- 0090 01000000 01000000 99000000 01000000 ................
- 00a0 7d010000 01000000 ad000000 01000000 }...............
- 00b0 5d000000 01000000 49000000 01000000 ].......I.......
- 00c0 21000000 02000000 35000000 01000000 !.......5.......
- 00d0 fd010000 01000000 71000000 01000000 ........q.......
+ 0000 ffffffff 1a092ff1 d0000000 60020000 ....../.....`...
+ 0010 15000000 01000000 b9010000 01000000 ................
+ 0020 a5010000 01000000 fd000000 01000000 ................
+ 0030 11020000 01000000 71000000 01000000 ........q.......
+ 0040 fd010000 01000000 5d000000 01000000 ........].......
+ 0050 d5010000 01000000 e9010000 01000000 ................
+ 0060 21000000 02000000 35000000 01000000 !.......5.......
+ 0070 49000000 01000000 7d010000 01000000 I.......}.......
+ 0080 99010000 01000000 19010000 01000000 ................
+ 0090 35010000 01000000 d5000000 01000000 5...............
+ 00a0 c1000000 01000000 e9000000 01000000 ................
+ 00b0 85000000 01000000 ad000000 01000000 ................
+ 00c0 49010000 01000000 01000000 01000000 I...............
+ 00d0 99000000 01000000 61010000 01000000 ........a.......
00e0 00000000 00000000 00000000 00000000 ................
00f0 00000000 00000000 00000000 00000000 ................
0100 00000000 00000000 00000000 00000000 ................
@@ -23,35 +23,34 @@ Contents of section .data:
0120 00000000 00000000 00000000 00000000 ................
0130 00000000 00000000 00000000 00000000 ................
0140 00000000 00000000 00000000 00000000 ................
- 0150 00000002 00000000 00000000 00000000 ................
+ 0150 00000000 00000000 00000000 00000000 ................
0160 00000000 00000000 00000000 00000000 ................
- 0170 00000000 00020000 00000000 00000000 ................
- 0180 00000000 00000000 00000000 00000000 ................
- 0190 00000000 00000001 00000000 00000000 ................
- 01a0 00000000 00000000 00000000 00000000 ................
+ 0170 00000000 00000000 00000000 00000000 ................
+ 0180 00000001 00100040 00000000 00000000 .......@........
+ 0190 00000000 00000000 00000000 00000000 ................
+ 01a0 00000004 00000000 00000000 00000000 ................
01b0 00000000 00000000 00000000 00000000 ................
01c0 00000000 00000000 00000000 00000000 ................
01d0 00000000 00000000 00000000 00000000 ................
- 01e0 08001000 00000000 00000000 00000040 ...............@
- 01f0 04002000 00000000 00000000 00000000 .. .............
- 0200 00000000 00000001 00000000 00000000 ................
+ 01e0 00000000 0000b499 00000000 00000000 ................
+ 01f0 00000000 00000000 00000000 00000000 ................
+ 0200 00000000 00000000 00000000 00000000 ................
0210 00000000 00000000 00000000 00000000 ................
0220 00000000 00000000 00000000 00000000 ................
- 0230 00000000 00000000 00080000 00004000 ..............@.
- 0240 00000000 00000000 00100010 00000000 ................
- 0250 40000000 00000000 00000000 00000000 @...............
- 0260 00000000 00000800 00000000 00000000 ................
- 0270 00000008 00000000 00000000 00000000 ................
- 0280 00000000 02004000 00000000 00000000 ......@.........
- 0290 00000000 00008000 00000000 00000000 ................
- 02a0 00000000 00000000 10000000 00000000 ................
- 02b0 00000000 00000000 00000000 00800000 ................
- 02c0 00000000 00000000 00002000 00010000 .......... .....
- 02d0 00000000 00000000 00000000 00000040 ...............@
+ 0230 00000001 00000000 00000000 00000000 ................
+ 0240 01000000 00000000 00000000 00000000 ................
+ 0250 00000000 00000000 00000000 00000000 ................
+ 0260 00000000 00000000 00000000 00000000 ................
+ 0270 00000001 00000000 00000000 10db0000 ................
+ 0280 00000000 00000000 00000000 00000000 ................
+ 0290 00000001 00000000 00000000 00000000 ................
+ 02a0 00000000 00000000 00000000 00000000 ................
+ 02b0 00000000 00000000 00000000 00000000 ................
+ 02c0 00000000 00000000 00000000 00000000 ................
+ 02d0 00000000 00000000 00000000 00000000 ................
02e0 00000000 00000000 0c000000 18000000 ................
02f0 24000000 30000000 3c000000 48000000 $...0...<...H...
0300 54000000 60000000 6c000000 78000000 T...`...l...x...
- 0310 84000000 90000000 9c000000 a8000000 ................
- 0320 b4000000 c0000000 d8000000 e4000000 ................
- 0330 f0000000 fc000000 08010000 20010000 ............ ...
- 0340 2c010000 ,... \ No newline at end of file
+ 0310 90000000 9c000000 a8000000 b4000000 ................
+ 0320 c0000000 cc000000 d8000000 e4000000 ................
+ 0330 f0000000 fc000000 14010000 2c010000 ............,...
diff --git a/ld/testsuite/ld-pe/pdb-syms1-records.d b/ld/testsuite/ld-pe/pdb-syms1-records.d
index bbf6d7f..a0852ec 100644
--- a/ld/testsuite/ld-pe/pdb-syms1-records.d
+++ b/ld/testsuite/ld-pe/pdb-syms1-records.d
@@ -27,7 +27,7 @@ Contents of section .data:
0160 1a002711 00000000 98020000 0200666f ..'...........fo
0170 6f3a3a6d 6574686f 64330000 1a002711 o::method3....'.
0180 00000000 d0020000 0200666f 6f3a3a6d ..........foo::m
- 0190 6574686f 64340000 0a000811 0a100000 ethod4..........
+ 0190 6574686f 64340000 0a000811 09100000 ethod4..........
01a0 666f6f00 12000711 75000000 2a00616e foo.....u...*.an
01b0 73776572 00f3f2f1 1a000711 23000000 swer........#...
01c0 0a80efcd ab896745 2301616e 73776572 ......gE#.answer
@@ -58,4 +58,4 @@ Contents of section .data:
0350 1c000000 02006776 61723300 12000e11 ......gvar3.....
0360 00000000 08000000 03006776 61723400 ..........gvar4.
0370 12000e11 02000000 00000000 01006d61 ..............ma
- 0380 696e0000 in.. \ No newline at end of file
+ 0380 696e0000 in..
diff --git a/ld/testsuite/ld-pe/pdb-syms1-symbols1.d b/ld/testsuite/ld-pe/pdb-syms1-symbols1.d
index 4de22ac..4c56508 100644
--- a/ld/testsuite/ld-pe/pdb-syms1-symbols1.d
+++ b/ld/testsuite/ld-pe/pdb-syms1-symbols1.d
@@ -5,4 +5,4 @@ Contents of section .data:
0000 04000000 2e001011 00000000 34000000 ............4...
0010 00000000 01000000 00000000 00000000 ................
0020 02100000 06000000 01000070 726f6332 ...........proc2
- 0030 00f3f2f1 02000600 00000000 ............ \ No newline at end of file
+ 0030 00f3f2f1 02000600 00000000 ............
diff --git a/ld/testsuite/ld-pe/pdb-syms1-symbols2.d b/ld/testsuite/ld-pe/pdb-syms1-symbols2.d
index f134637..22c2f30 100644
--- a/ld/testsuite/ld-pe/pdb-syms1-symbols2.d
+++ b/ld/testsuite/ld-pe/pdb-syms1-symbols2.d
@@ -9,48 +9,48 @@ Contents of section .data:
0040 12000c11 00100000 00000000 03006c76 ..............lv
0050 61723200 2e001011 00000000 84000000 ar2.............
0060 00000000 01000000 00000000 00000000 ................
- 0070 05100000 0c000000 03000070 726f6331 ...........proc1
+ 0070 02100000 0c000000 03000070 726f6331 ...........proc1
0080 00f3f2f1 02000600 2e001011 00000000 ................
0090 ec000000 00000000 01000000 00000000 ................
- 00a0 00000000 05100000 06000000 01000070 ...............p
+ 00a0 00000000 02100000 06000000 01000070 ...............p
00b0 726f6332 00f3f2f1 0a000811 04100000 roc2............
00c0 62617200 12000c11 00100000 10000000 bar.............
00d0 02006c76 61723300 12001211 00100000 ..lvar3.........
00e0 14000000 02006c76 61723400 02000600 ......lvar4.....
00f0 2e000f11 00000000 20010000 00000000 ........ .......
- 0100 01000000 00000000 00000000 05100000 ................
+ 0100 01000000 00000000 00000000 02100000 ................
0110 0d000000 03000070 726f6333 00f3f2f1 .......proc3....
0120 02000600 2e000f11 00000000 54010000 ............T...
0130 00000000 01000000 00000000 00000000 ................
- 0140 05100000 07000000 01000070 726f6334 ...........proc4
+ 0140 02100000 07000000 01000070 726f6334 ...........proc4
0150 00f3f2f1 02000600 2e001011 00000000 ................
0160 88010000 00000000 01000000 00000000 ................
- 0170 00000000 05100000 0e000000 03000070 ...............p
+ 0170 00000000 02100000 0e000000 03000070 ...............p
0180 726f6335 00f3f2f1 02000600 2e001011 roc5............
0190 00000000 bc010000 00000000 01000000 ................
- 01a0 00000000 00000000 05100000 08000000 ................
+ 01a0 00000000 00000000 02100000 08000000 ................
01b0 01000070 726f6336 00f3f2f1 02000600 ...proc6........
01c0 32001011 00000000 f4010000 00000000 2...............
- 01d0 01000000 00000000 00000000 05100000 ................
+ 01d0 01000000 00000000 00000000 02100000 ................
01e0 0f000000 03000066 6f6f3a3a 6d657468 .......foo::meth
01f0 6f6400f1 02000600 32001011 00000000 od......2.......
0200 2c020000 00000000 01000000 00000000 ,...............
- 0210 00000000 05100000 09000000 01000066 ...............f
+ 0210 00000000 02100000 09000000 01000066 ...............f
0220 6f6f3a3a 6d657468 6f643200 02000600 oo::method2.....
0230 2e000f11 00000000 60020000 00000000 ........`.......
- 0240 01000000 00000000 00000000 05100000 ................
+ 0240 01000000 00000000 00000000 02100000 ................
0250 10000000 03000070 726f6339 00f3f2f1 .......proc9....
0260 02000600 2e001011 00000000 94020000 ................
0270 00000000 01000000 00000000 00000000 ................
- 0280 05100000 0a000000 01000070 726f6331 ...........proc1
+ 0280 02100000 0a000000 01000070 726f6331 ...........proc1
0290 3000f2f1 02000600 32000f11 00000000 0.......2.......
02a0 cc020000 00000000 01000000 00000000 ................
- 02b0 00000000 05100000 11000000 03000066 ...............f
+ 02b0 00000000 02100000 11000000 03000066 ...............f
02c0 6f6f3a3a 6d657468 6f643300 02000600 oo::method3.....
02d0 32000f11 00000000 04030000 00000000 2...............
- 02e0 01000000 00000000 00000000 05100000 ................
+ 02e0 01000000 00000000 00000000 02100000 ................
02f0 0b000000 01000066 6f6f3a3a 6d657468 .......foo::meth
0300 6f643400 02000600 12001211 00100000 od4.............
0310 20000000 02006c76 61723500 12001211 .....lvar5.....
0320 00100000 12000000 03006c76 61723600 ..........lvar6.
- 0330 00000000 .... \ No newline at end of file
+ 0330 00000000 ....
diff --git a/ld/testsuite/ld-pe/pdb-syms1a.s b/ld/testsuite/ld-pe/pdb-syms1a.s
index d076bbc..c947676 100644
--- a/ld/testsuite/ld-pe/pdb-syms1a.s
+++ b/ld/testsuite/ld-pe/pdb-syms1a.s
@@ -1,6 +1,7 @@
.equ CV_SIGNATURE_C13, 4
.equ DEBUG_S_SYMBOLS, 0xf1
+.equ T_VOID, 0x0003
.equ T_UINT4, 0x0075
.equ LF_MODIFIER, 0x1001
diff --git a/ld/testsuite/ld-pe/pdb-syms2-symbols1.d b/ld/testsuite/ld-pe/pdb-syms2-symbols1.d
index 34132d1..028545b 100644
--- a/ld/testsuite/ld-pe/pdb-syms2-symbols1.d
+++ b/ld/testsuite/ld-pe/pdb-syms2-symbols1.d
@@ -35,4 +35,4 @@ Contents of section .data:
01e0 02000600 1e000211 48000000 04020000 ........H.......
01f0 00000000 06000000 01000100 00746875 .............thu
0200 6e6b00f1 02000600 0e005e11 04000000 nk........^.....
- 0210 01000100 02100000 02000600 00000000 ................ \ No newline at end of file
+ 0210 01000100 02100000 02000600 00000000 ................
diff --git a/ld/testsuite/ld-pe/pdb-types1-hashlist.d b/ld/testsuite/ld-pe/pdb-types1-hashlist.d
index 7d314ed..f9d8a74 100644
--- a/ld/testsuite/ld-pe/pdb-types1-hashlist.d
+++ b/ld/testsuite/ld-pe/pdb-types1-hashlist.d
@@ -12,4 +12,4 @@ Contents of section .data:
0070 4d5e0200 8a940200 4b710300 6aa90300 *
0080 0a2c0300 67e10300 4a3d0300 fa460300 *
0090 db020200 ec4e0100 131e0300 fb120300 *
- 00a0 aece0200 1db70100 99a30000 a8010100 * \ No newline at end of file
+ 00a0 aece0200 1db70100 99a30000 a8010100 *
diff --git a/ld/testsuite/ld-pe/pdb-types1-skiplist.d b/ld/testsuite/ld-pe/pdb-types1-skiplist.d
index 52c10fa..f13b1d8 100644
--- a/ld/testsuite/ld-pe/pdb-types1-skiplist.d
+++ b/ld/testsuite/ld-pe/pdb-types1-skiplist.d
@@ -2,4 +2,4 @@
*: file format binary
Contents of section .data:
- 0000 00100000 00000000 * \ No newline at end of file
+ 0000 00100000 00000000 *
diff --git a/ld/testsuite/ld-pe/pdb-types1-typelist.d b/ld/testsuite/ld-pe/pdb-types1-typelist.d
index 248dda5..db08b52 100644
--- a/ld/testsuite/ld-pe/pdb-types1-typelist.d
+++ b/ld/testsuite/ld-pe/pdb-types1-typelist.d
@@ -77,4 +77,4 @@ Contents of section .data:
0480 3a001d15 2a100000 00000000 00000000 :...*...........
0490 27000000 49556e6b 6e6f776e 00517565 '...IUnknown.Que
04a0 7279496e 74657266 61636500 41646452 ryInterface.AddR
- 04b0 65660052 656c6561 736500f1 ef.Release.. \ No newline at end of file
+ 04b0 65660052 656c6561 736500f1 ef.Release..
diff --git a/ld/testsuite/ld-pe/pdb-types2-hashlist.d b/ld/testsuite/ld-pe/pdb-types2-hashlist.d
index 71d9045..d09fb3e 100644
--- a/ld/testsuite/ld-pe/pdb-types2-hashlist.d
+++ b/ld/testsuite/ld-pe/pdb-types2-hashlist.d
@@ -5,4 +5,4 @@ Contents of section .data:
0000 75cf0100 8d660300 f2a20300 aea00000 *
0010 ef990300 223d0000 d6b60000 24070100 *
0020 7f220100 f6d10200 16100200 010a0300 *
- 0030 0b4f0300 12690300 a56d0300 * \ No newline at end of file
+ 0030 0b4f0300 12690300 a56d0300 *
diff --git a/ld/testsuite/ld-pe/pdb-types2-skiplist.d b/ld/testsuite/ld-pe/pdb-types2-skiplist.d
index 52c10fa..f13b1d8 100644
--- a/ld/testsuite/ld-pe/pdb-types2-skiplist.d
+++ b/ld/testsuite/ld-pe/pdb-types2-skiplist.d
@@ -2,4 +2,4 @@
*: file format binary
Contents of section .data:
- 0000 00100000 00000000 * \ No newline at end of file
+ 0000 00100000 00000000 *
diff --git a/ld/testsuite/ld-pe/pdb-types2-typelist.d b/ld/testsuite/ld-pe/pdb-types2-typelist.d
index d0fd26e..d8a36cc 100644
--- a/ld/testsuite/ld-pe/pdb-types2-typelist.d
+++ b/ld/testsuite/ld-pe/pdb-types2-typelist.d
@@ -17,4 +17,4 @@ Contents of section .data:
00c0 6500f2f1 12000116 00000000 01100000 e...............
00d0 66756e63 3100f2f1 12000116 0b100000 func1...........
00e0 01100000 66756e63 3200f2f1 12000216 ....func2.......
- 00f0 02100000 04100000 6d657468 6f6400f1 ........method.. \ No newline at end of file
+ 00f0 02100000 04100000 6d657468 6f6400f1 ........method..
diff --git a/ld/testsuite/ld-pe/pdb-types3-hashlist.d b/ld/testsuite/ld-pe/pdb-types3-hashlist.d
index 4a3775b..eda23d7 100644
--- a/ld/testsuite/ld-pe/pdb-types3-hashlist.d
+++ b/ld/testsuite/ld-pe/pdb-types3-hashlist.d
@@ -2,4 +2,4 @@
*: file format binary
Contents of section .data:
- 0000 d4d90000 0c1c0000 * \ No newline at end of file
+ 0000 d4d90000 0c1c0000 *
diff --git a/ld/testsuite/ld-pe/pdb-types3-skiplist.d b/ld/testsuite/ld-pe/pdb-types3-skiplist.d
index 52c10fa..f13b1d8 100644
--- a/ld/testsuite/ld-pe/pdb-types3-skiplist.d
+++ b/ld/testsuite/ld-pe/pdb-types3-skiplist.d
@@ -2,4 +2,4 @@
*: file format binary
Contents of section .data:
- 0000 00100000 00000000 * \ No newline at end of file
+ 0000 00100000 00000000 *
diff --git a/ld/testsuite/ld-pe/pdb-types3-typelist.d b/ld/testsuite/ld-pe/pdb-types3-typelist.d
index d6ffaad..48d7dbd 100644
--- a/ld/testsuite/ld-pe/pdb-types3-typelist.d
+++ b/ld/testsuite/ld-pe/pdb-types3-typelist.d
@@ -4,4 +4,4 @@
Contents of section .data:
0000 0e000516 00000000 666f6f2e 6800f2f1 ........foo.h...
0010 10000716 01100000 01000000 2a000000 ............*...
- 0020 0100 .. \ No newline at end of file
+ 0020 0100 ..
diff --git a/ld/testsuite/ld-pe/pdb1-publics.d b/ld/testsuite/ld-pe/pdb1-publics.d
index f7df2d9..0882f1b 100644
--- a/ld/testsuite/ld-pe/pdb1-publics.d
+++ b/ld/testsuite/ld-pe/pdb1-publics.d
@@ -38,4 +38,4 @@ Contents of section .data:
0210 00000000 00000000 00000000 00000000 ................
0220 00000000 00000000 00000000 00000000 ................
0230 00000000 00000000 00000000 00000000 ................
- 0240 00000000 0c000000 00000000 14000000 ................ \ No newline at end of file
+ 0240 00000000 0c000000 00000000 14000000 ................
diff --git a/ld/testsuite/ld-pe/pdb1-sym-record.d b/ld/testsuite/ld-pe/pdb1-sym-record.d
index 2078a5e..88cc21e 100644
--- a/ld/testsuite/ld-pe/pdb1-sym-record.d
+++ b/ld/testsuite/ld-pe/pdb1-sym-record.d
@@ -4,4 +4,4 @@
Contents of section .data:
0000 12000e11 02000000 08000000 0100666f ..............fo
0010 6f000000 12000e11 00000000 04000000 o...............
- 0020 02006261 72000000 ..bar... \ No newline at end of file
+ 0020 02006261 72000000 ..bar...
diff --git a/ld/testsuite/ld-pe/pdb2-section-contrib.d b/ld/testsuite/ld-pe/pdb2-section-contrib.d
index 65ed76d..5b1df9f 100644
--- a/ld/testsuite/ld-pe/pdb2-section-contrib.d
+++ b/ld/testsuite/ld-pe/pdb2-section-contrib.d
@@ -9,4 +9,4 @@ Contents of section .data:
0040 00000000 3d000000 40000040 00000000 ....=...@..@....
0050 00000000 00000000 04000000 00000000 ................
0060 0c000000 40000042 02000000 00000000 ....@..B........
- 0070 00000000 .... \ No newline at end of file
+ 0070 00000000 ....
diff --git a/ld/testsuite/ld-pe/pdb3-c13-info1.d b/ld/testsuite/ld-pe/pdb3-c13-info1.d
index 5a4f948..8c2f320 100644
--- a/ld/testsuite/ld-pe/pdb3-c13-info1.d
+++ b/ld/testsuite/ld-pe/pdb3-c13-info1.d
@@ -11,4 +11,4 @@ Contents of section .data:
0060 04000000 02000080 18000000 02000000 ................
0070 1c000000 08000000 03000080 0c000000 ................
0080 04000080 00000000 01000000 14000000 ................
- 0090 10000000 05000080 ........ \ No newline at end of file
+ 0090 10000000 05000080 ........
diff --git a/ld/testsuite/ld-pe/pdb3-c13-info2.d b/ld/testsuite/ld-pe/pdb3-c13-info2.d
index 1c33ce1..f74af2f 100644
--- a/ld/testsuite/ld-pe/pdb3-c13-info2.d
+++ b/ld/testsuite/ld-pe/pdb3-c13-info2.d
@@ -5,4 +5,4 @@ Contents of section .data:
0000 f4000000 30000000 06000000 100198ba ....0...........
0010 dcfe1023 45676745 2301efcd ab890000 ...#EggE#.......
0020 0a000000 10013b2a 19087f6e 5d4c4c5d ......;*...n]LL]
- 0030 6e7f0819 2a3b0000 n...*;.. \ No newline at end of file
+ 0030 6e7f0819 2a3b0000 n...*;..
diff --git a/ld/testsuite/ld-pe/pdb3-source-info.d b/ld/testsuite/ld-pe/pdb3-source-info.d
index 5b7d58c..4239c1c 100644
--- a/ld/testsuite/ld-pe/pdb3-source-info.d
+++ b/ld/testsuite/ld-pe/pdb3-source-info.d
@@ -4,4 +4,4 @@
Contents of section .data:
0000 03000300 00000100 02000200 02000000 ................
0010 00000000 04000000 04000000 08000000 ................
- 0020 666f6f00 62617200 62617a00 foo.bar.baz. \ No newline at end of file
+ 0020 666f6f00 62617200 62617a00 foo.bar.baz.
diff --git a/ld/testsuite/ld-plugin/libdep.exp b/ld/testsuite/ld-plugin/libdep.exp
index 6e56b6b..83b0872 100644
--- a/ld/testsuite/ld-plugin/libdep.exp
+++ b/ld/testsuite/ld-plugin/libdep.exp
@@ -104,7 +104,7 @@ proc run_test { } {
set exec_output [run_host_cmd "$ld" "-plugin $libdep_plugin -o libdep.exe libdep-main.o -L libdep-a -la -e 0"]
set exec_output [prune_warnings $exec_output]
- set expected_output "got deps for library libdep-a/liba.a: -Llibdep-b -lc"
+ set expected_output "got deps for library libdep-a/liba.a: -Llibdep-b -lc\n"
if ![string match $expected_output $exec_output] then {
fail "$testname: did not get expected output from the linker"
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 7b4b349..ad59e2a 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -531,6 +531,22 @@ set lto_link_elf_tests [list \
"pr29086" \
] \
[list \
+ "PR ld/31956 (a)" \
+ "-Wl,--wrap=parse_line" \
+ "-O2 -flto" \
+ {pr31956a.c pr31956b.c} \
+ {} \
+ "pr31956a" \
+ ] \
+ [list \
+ "PR ld/31956 (b)" \
+ "-Wl,--wrap=parse_line" \
+ "-O2 -flto" \
+ {pr31956b.c pr31956a.c} \
+ {} \
+ "pr31956b" \
+ ] \
+ [list \
"Build pr30281.so" \
"-shared -Wl,--version-script,pr30281.t \
-O2 -fPIC -flto-partition=max -flto=2" \
@@ -879,7 +895,7 @@ set exec_output [prune_warnings $exec_output]
if [string match "" $exec_output] then {
if { [isnative] } {
set exec_output [run_host_cmd "tmpdir/pr28138" ""]
- if [string match "PASS" $exec_output] then {
+ if [string match "PASS\n" $exec_output] then {
pass "PR ld/28138 (build & run)"
} else {
fail "PR ld/28138 (built ok, run failed)"
diff --git a/ld/testsuite/ld-plugin/pr31956a.c b/ld/testsuite/ld-plugin/pr31956a.c
new file mode 100644
index 0000000..48df8c5
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr31956a.c
@@ -0,0 +1,3 @@
+extern void parse_line(void);
+void _cmocka_run_group_tests(void *) {}
+void argv_parse_cmd(void) { parse_line(); }
diff --git a/ld/testsuite/ld-plugin/pr31956b.c b/ld/testsuite/ld-plugin/pr31956b.c
new file mode 100644
index 0000000..1b06931
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr31956b.c
@@ -0,0 +1,23 @@
+struct CMUnitTest {
+ void *test_func;
+};
+
+extern void _cmocka_run_group_tests(void *);
+
+extern void argv_parse_cmd(void);
+void __wrap_parse_line(void) {};
+
+void foo (void) {
+ argv_parse_cmd();
+}
+
+struct CMUnitTest main_tests = {
+ foo
+};
+
+int
+main (void)
+{
+ _cmocka_run_group_tests (&main_tests);
+ return 0;
+}
diff --git a/ld/testsuite/ld-s390/s390.exp b/ld/testsuite/ld-s390/s390.exp
index eb9ea35..ac62d7a 100644
--- a/ld/testsuite/ld-s390/s390.exp
+++ b/ld/testsuite/ld-s390/s390.exp
@@ -95,9 +95,12 @@ set s390xtests {
"-m64" {pltoffset-1.s}
{{objdump "-dzrj.text --stop-address=16" pltoffset-1.dd}}
"pltoffset-1"}
- {"WEAKUNDEF1: overflow test"
+ {"WEAKUNDEF1: overflow test (PC32DBL)"
"-m elf64_s390 -dT 8GB.ld --no-error-rwx-segments" "" "-m64" {weakundef-1.s}
{{objdump "-dzrj.text" weakundef-1.dd}} "weakundef-1"}
+ {"WEAKUNDEF2: overflow test (PLT32DBL)"
+ "-m elf64_s390 -dT 8GB.ld --no-error-rwx-segments -no-pie" "" "-m64" {weakundef-2.s}
+ {{objdump "-dzrj.text" weakundef-2.dd}} "weakundef-2"}
}
if [istarget "s390-*-*"] {
diff --git a/ld/testsuite/ld-s390/weakundef-1.dd b/ld/testsuite/ld-s390/weakundef-1.dd
index e514524..04d53c9 100644
--- a/ld/testsuite/ld-s390/weakundef-1.dd
+++ b/ld/testsuite/ld-s390/weakundef-1.dd
@@ -3,13 +3,13 @@ tmpdir/weakundef-1: file format elf64-s390
Disassembly of section .text:
.* <foo>:
-.*: c0 10 00 00 00 1e [ ]*larl %r1,20000003c <d>
-.*: c0 10 00 00 00 1f [ ]*larl %r1,200000044 <wd>
+.*: c0 10 00 00 00 1c [ ]*larl %r1,200000038 <d>
+.*: c0 10 00 00 00 1d [ ]*larl %r1,200000040 <wd>
.*: e3 10 00 00 00 71 [ ]*lay %r1,0
.*: c0 f4 00 00 00 01 [ ]*jg .*
.*: c0 f4 00 00 00 01 [ ]*jg .*
.*: c0 f4 00 00 00 01 [ ]*jg .*
.*: c0 f4 00 00 00 01 [ ]*jg .*
.*: c0 f4 00 00 00 01 [ ]*jg .*
-.*: c0 f4 00 00 00 01 [ ]*jg .*
.*: c0 04 00 00 00 00 [ ]*jgnop .*
+.*: 07 07 [ ]*nopr %r7
diff --git a/ld/testsuite/ld-s390/weakundef-1.s b/ld/testsuite/ld-s390/weakundef-1.s
index aeaef8d..db90932 100644
--- a/ld/testsuite/ld-s390/weakundef-1.s
+++ b/ld/testsuite/ld-s390/weakundef-1.s
@@ -9,7 +9,6 @@ foo:
lrl %r1,wu
strl %r1,wu
exrl %r1,wu
- brcth %r1,wu
pfdrl %r1,wu
.weak wd
.weak wu
diff --git a/ld/testsuite/ld-s390/weakundef-2.dd b/ld/testsuite/ld-s390/weakundef-2.dd
new file mode 100644
index 0000000..e7f0e22
--- /dev/null
+++ b/ld/testsuite/ld-s390/weakundef-2.dd
@@ -0,0 +1,17 @@
+tmpdir/weakundef-2: file format elf64-s390
+
+Disassembly of section .text:
+
+0+200000000 <foo>:
+.*: c0 10 00 00 00 12 [ ]*larl %r1,200000024 <d>
+.*: c0 10 00 00 00 10 [ ]*larl %r1,200000026 <wd>
+.*: e3 10 00 00 00 71 [ ]*lay %r1,0
+.*: c0 e5 00 00 00 09 [ ]*brasl %r14,200000024 <d>
+.*: c0 e5 00 00 00 07 [ ]*brasl %r14,200000026 <wd>
+.*: c0 f4 00 00 00 01 [ ]*jg .*
+
+0+200000024 <d>:
+.*: 07 fe [ ]*br %r14
+
+0+200000026 <wd>:
+.*: 07 fe [ ]*br %r14
diff --git a/ld/testsuite/ld-s390/weakundef-2.s b/ld/testsuite/ld-s390/weakundef-2.s
new file mode 100644
index 0000000..d147b53
--- /dev/null
+++ b/ld/testsuite/ld-s390/weakundef-2.s
@@ -0,0 +1,17 @@
+.text
+ .globl foo
+foo:
+ larl %r1,d@PLT
+ larl %r1,wd@PLT
+ larl %r1,wu@PLT
+ brasl %r14,d@PLT
+ brasl %r14,wd@PLT
+ brasl %r14,wu@PLT
+ .weak wu
+ .type d,@function
+d:
+ br %r14
+ .weak wd
+ .type wd,@function
+wd:
+ br %r14
diff --git a/ld/testsuite/ld-sframe/discard.s b/ld/testsuite/ld-sframe/discard.s
index a438b42..5591a50 100644
--- a/ld/testsuite/ld-sframe/discard.s
+++ b/ld/testsuite/ld-sframe/discard.s
@@ -5,7 +5,6 @@
foo:
.cfi_startproc
.cfi_def_cfa_offset 16
- .cfi_def_cfa 7, 8
.cfi_endproc
.globl _start
diff --git a/ld/testsuite/ld-x86-64/sframe-plt-1.d b/ld/testsuite/ld-x86-64/sframe-plt-1.d
index ca82cf2..52bca18 100644
--- a/ld/testsuite/ld-x86-64/sframe-plt-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-plt-1.d
@@ -12,18 +12,19 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: SFRAME_F_FDE_SORTED
+ CFA fixed RA offset: \-8
#...
Function Index :
func idx \[0\]: pc = 0x1000, size = 16 bytes
STARTPC +CFA +FP +RA +
- 0+1000 +sp\+16 +u +u +
- 0+1006 +sp\+24 +u +u +
+ 0+1000 +sp\+16 +u +f +
+ 0+1006 +sp\+24 +u +f +
func idx \[1\]: pc = 0x1010, size = 16 bytes
STARTPC\[m\] +CFA +FP +RA +
- 0+0000 +sp\+8 +u +u +
- 0+000b +sp\+16 +u +u +
+ 0+0000 +sp\+8 +u +f +
+ 0+000b +sp\+16 +u +f +
#...
diff --git a/ld/testsuite/ld-x86-64/sframe-simple-1.d b/ld/testsuite/ld-x86-64/sframe-simple-1.d
index adc4b74..7d88419 100644
--- a/ld/testsuite/ld-x86-64/sframe-simple-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-simple-1.d
@@ -12,6 +12,7 @@ Contents of the SFrame section .sframe:
Version: SFRAME_VERSION_2
Flags: SFRAME_F_FDE_SORTED
+ CFA fixed RA offset: \-8
#...
Function Index :
@@ -22,14 +23,14 @@ Contents of the SFrame section .sframe:
func idx \[2\]: pc = 0x1020, size = 53 bytes
STARTPC +CFA +FP +RA +
- 0+1020 +sp\+8 +u +u +
- 0+1021 +sp\+16 +c-16 +u +
- 0+1024 +fp\+16 +c-16 +u +
- 0+1054 +sp\+8 +c-16 +u +
+ 0+1020 +sp\+8 +u +f +
+ 0+1021 +sp\+16 +c-16 +f +
+ 0+1024 +fp\+16 +c-16 +f +
+ 0+1054 +sp\+8 +c-16 +f +
func idx \[3\]: pc = 0x1055, size = 37 bytes
STARTPC +CFA +FP +RA +
- 0+1055 +sp\+8 +u +u +
- 0+1056 +sp\+16 +c-16 +u +
- 0+1059 +fp\+16 +c-16 +u +
- 0+1079 +sp\+8 +c-16 +u +
+ 0+1055 +sp\+8 +u +f +
+ 0+1056 +sp\+16 +c-16 +f +
+ 0+1059 +fp\+16 +c-16 +f +
+ 0+1079 +sp\+8 +c-16 +f +
diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.dd b/ld/testsuite/ld-x86-64/tlsbindesc.dd
index 7aa1b92..601dfc2 100644
--- a/ld/testsuite/ld-x86-64/tlsbindesc.dd
+++ b/ld/testsuite/ld-x86-64/tlsbindesc.dd
@@ -175,6 +175,9 @@ Disassembly of section .text:
+[0-9a-f]+: 62 f4 fc 10 03 ([0-9a-f]{2} ){2}[ ]+add 0x[0-9a-f]+\(%rip\),%rax,%r16 +# [0-9a-f]+ <sG2>
# -> R_X86_64_TPOFF64 sG2
+[0-9a-f]+: ([0-9a-f]{2} ){3} *
+ +[0-9a-f]+: 62 e4 fc 0c 03 ([0-9a-f]{2} ){2}[ ]+\{nf\} add 0x[0-9a-f]+\(%rip\),%r16 +# [0-9a-f]+ <sG2>
+# -> R_X86_64_TPOFF64 sG2
+ +[0-9a-f]+: ([0-9a-f]{2} ){3} *
+[0-9a-f]+: 62 f4 fc 14 01 ([0-9a-f]{2} ){2}[ ]+\{nf\} add %rax,0x[0-9a-f]+\(%rip\),%r16 +# [0-9a-f]+ <sG2>
# -> R_X86_64_TPOFF64 sG2
+[0-9a-f]+: ([0-9a-f]{2} ){3} *
@@ -191,6 +194,9 @@ Disassembly of section .text:
+[0-9a-f]+: 62 d4 f4 10 81 ([0-9a-f]{2} ){2}[ ]+add \$0x[0-9a-f]+,%r8,%r17
# sg1
+[0-9a-f]+: ff ff ff *
+ +[0-9a-f]+: 62 fc fc 0c 81 ([0-9a-f]{2} ){2}[ ]+\{nf\} add \$0x[0-9a-f]+,%r17
+# sg1
+ +[0-9a-f]+: ff ff ff *
+[0-9a-f]+: 62 d4 f4 14 81 ([0-9a-f]{2} ){2}[ ]+\{nf\} add \$0x[0-9a-f]+,%r8,%r17
# sg1
+[0-9a-f]+: ff ff ff *
@@ -207,6 +213,9 @@ Disassembly of section .text:
+[0-9a-f]+: 62 d4 fc 18 81 ([0-9a-f]{2} ){2}[ ]+add \$0x[0-9a-f]+,%r8,%rax
# sl1
+[0-9a-f]+: ff ff ff *
+ +[0-9a-f]+: 62 fc fc 0c 81 ([0-9a-f]{2} ){2}[ ]+\{nf\} add \$0x[0-9a-f]+,%r18
+# sl1
+ +[0-9a-f]+: ff ff ff *
+[0-9a-f]+: 62 d4 fc 1c 81 ([0-9a-f]{2} ){2}[ ]+\{nf\} add \$0x[0-9a-f]+,%r8,%rax
# sl1
+[0-9a-f]+: ff ff ff *
@@ -223,6 +232,9 @@ Disassembly of section .text:
+[0-9a-f]+: 62 fc bc 18 81 ([0-9a-f]{2} ){2}[ ]+add \$0x[0-9a-f]+,%r19,%r8
# sh1
+[0-9a-f]+: ff ff ff *
+ +[0-9a-f]+: 62 fc fc 0c 81 ([0-9a-f]{2} ){2}[ ]+\{nf\} add \$0x[0-9a-f]+,%r19
+# sh1
+ +[0-9a-f]+: ff ff ff *
+[0-9a-f]+: 62 fc bc 1c 81 ([0-9a-f]{2} ){2}[ ]+\{nf\} add \$0x[0-9a-f]+,%r19,%r8
# sh1
+[0-9a-f]+: ff ff ff *
diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.rd b/ld/testsuite/ld-x86-64/tlsbindesc.rd
index 1e0348e..2fc965a 100644
--- a/ld/testsuite/ld-x86-64/tlsbindesc.rd
+++ b/ld/testsuite/ld-x86-64/tlsbindesc.rd
@@ -15,12 +15,12 @@ Section Headers:
+\[[ 0-9]+\] .dynsym +.*
+\[[ 0-9]+\] .dynstr +.*
+\[[ 0-9]+\] .rela.dyn +.*
- +\[[ 0-9]+\] .text +PROGBITS +0+401000 0+1000 0+2fd 00 +AX +0 +0 +4096
- +\[[ 0-9]+\] .tdata +PROGBITS +0+6012fd 0+12fd 0+60 00 WAT +0 +0 +1
- +\[[ 0-9]+\] .tbss +NOBITS +0+60135d 0+135d 0+40 00 WAT +0 +0 +1
- +\[[ 0-9]+\] .dynamic +DYNAMIC +0+601360 0+1360 0+100 10 +WA +4 +0 +8
- +\[[ 0-9]+\] .got +PROGBITS +0+601460 0+1460 0+20 08 +WA +0 +0 +8
- +\[[ 0-9]+\] .got.plt +PROGBITS +0+601480 0+1480 0+18 08 +WA +0 +0 +8
+ +\[[ 0-9]+\] .text +PROGBITS +0+401000 0+1000 0+325 00 +AX +0 +0 +4096
+ +\[[ 0-9]+\] .tdata +PROGBITS +0+601325 0+1325 0+60 00 WAT +0 +0 +1
+ +\[[ 0-9]+\] .tbss +NOBITS +0+601385 0+1385 0+40 00 WAT +0 +0 +1
+ +\[[ 0-9]+\] .dynamic +DYNAMIC +0+601388 0+1388 0+100 10 +WA +4 +0 +8
+ +\[[ 0-9]+\] .got +PROGBITS +0+601488 0+1488 0+20 08 +WA +0 +0 +8
+ +\[[ 0-9]+\] .got.plt +PROGBITS +0+6014a8 0+14a8 0+18 08 +WA +0 +0 +8
+\[[ 0-9]+\] .symtab +.*
+\[[ 0-9]+\] .strtab +.*
+\[[ 0-9]+\] .shstrtab +.*
@@ -28,7 +28,7 @@ Key to Flags:
#...
Elf file type is EXEC \(Executable file\)
-Entry point 0x401205
+Entry point 0x40122d
There are [0-9]+ program headers, starting at offset [0-9]+
Program Headers:
@@ -36,10 +36,10 @@ Program Headers:
+PHDR.*
+INTERP.*
.*Requesting program interpreter.*
- +LOAD +0x0+ 0x0+400000 0x0+400000 0x0+12fd 0x0+12fd R E 0x200000
- +LOAD +0x0+12fd 0x0+6012fd 0x0+6012fd 0x0+19b 0x0+19b RW +0x200000
- +DYNAMIC +0x0+1360 0x0+601360 0x0+601360 0x0+100 0x0+100 RW +0x8
- +TLS +0x0+12fd 0x0+6012fd 0x0+6012fd 0x0+60 0x0+a0 R +0x1
+ +LOAD +0x0+ 0x0+400000 0x0+400000 0x0+1325 0x0+1325 R E 0x200000
+ +LOAD +0x0+1325 0x0+601325 0x0+601325 0x0+19b 0x0+19b RW +0x200000
+ +DYNAMIC +0x0+1388 0x0+601388 0x0+601388 0x0+100 0x0+100 RW +0x8
+ +TLS +0x0+1325 0x0+601325 0x0+601325 0x0+60 0x0+a0 R +0x1
Section to Segment mapping:
+Segment Sections...
@@ -52,10 +52,10 @@ Program Headers:
Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 4 entries:
+Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend
-0+601460 +0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
-0+601468 +0+200000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
-0+601470 +0+300000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
-0+601478 +0+400000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
+0+601488 +0+100000012 R_X86_64_TPOFF64 +0+ sG5 \+ 0
+0+601490 +0+200000012 R_X86_64_TPOFF64 +0+ sG2 \+ 0
+0+601498 +0+300000012 R_X86_64_TPOFF64 +0+ sG6 \+ 0
+0+6014a0 +0+400000012 R_X86_64_TPOFF64 +0+ sG1 \+ 0
Symbol table '\.dynsym' contains [0-9]+ entries:
+Num: +Value +Size +Type +Bind +Vis +Ndx +Name
@@ -88,8 +88,8 @@ Symbol table '\.symtab' contains [0-9]+ entries:
+[0-9]+: 0+9c +0 +TLS +LOCAL +DEFAULT +8 bl8
.* FILE +LOCAL +DEFAULT +ABS
+[0-9]+: 0+a0 +0 +TLS +LOCAL +DEFAULT +7 _TLS_MODULE_BASE_
- +[0-9]+: 0+601360 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
- +[0-9]+: 0+601480 +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
+ +[0-9]+: 0+601388 +0 +OBJECT +LOCAL +DEFAULT +9 _DYNAMIC
+ +[0-9]+: 0+6014a8 +0 +OBJECT +LOCAL +DEFAULT +11 _GLOBAL_OFFSET_TABLE_
+[0-9]+: 0+1c +0 +TLS +GLOBAL +DEFAULT +7 sg8
+[0-9]+: 0+7c +0 +TLS +GLOBAL +DEFAULT +8 bg8
+[0-9]+: 0+74 +0 +TLS +GLOBAL +DEFAULT +8 bg6
@@ -104,7 +104,7 @@ Symbol table '\.symtab' contains [0-9]+ entries:
+[0-9]+: 0+58 +0 +TLS +GLOBAL +HIDDEN +7 sh7
+[0-9]+: 0+5c +0 +TLS +GLOBAL +HIDDEN +7 sh8
+[0-9]+: 0+ +0 +TLS +GLOBAL +DEFAULT +7 sg1
- +[0-9]+: 0+401205 +0 +FUNC +GLOBAL +DEFAULT +6 _start
+ +[0-9]+: 0+40122d +0 +FUNC +GLOBAL +DEFAULT +6 _start
+[0-9]+: 0+4c +0 +TLS +GLOBAL +HIDDEN +7 sh4
+[0-9]+: 0+78 +0 +TLS +GLOBAL +DEFAULT +8 bg7
+[0-9]+: 0+50 +0 +TLS +GLOBAL +HIDDEN +7 sh5
diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.s b/ld/testsuite/ld-x86-64/tlsbindesc.s
index 8aad102..39ba3bb 100644
--- a/ld/testsuite/ld-x86-64/tlsbindesc.s
+++ b/ld/testsuite/ld-x86-64/tlsbindesc.s
@@ -131,6 +131,7 @@ fn2:
addq sG2@gottpoff(%rip), %r16
addq %rax, sG2@gottpoff(%rip), %r16
addq sG2@gottpoff(%rip), %rax, %r16
+ {nf} addq sG2@gottpoff(%rip), %r16
{nf} addq %rax, sG2@gottpoff(%rip), %r16
{nf} addq sG2@gottpoff(%rip), %rax, %r16
@@ -138,6 +139,7 @@ fn2:
addq sg1@gottpoff(%rip), %r17
addq %r8, sg1@gottpoff(%rip), %r17
addq sg1@gottpoff(%rip), %r8, %r17
+ {nf} addq sg1@gottpoff(%rip), %r17
{nf} addq %r8, sg1@gottpoff(%rip), %r17
{nf} addq sg1@gottpoff(%rip), %r8, %r17
@@ -145,6 +147,7 @@ fn2:
addq sl1@gottpoff(%rip), %r18
addq %r8, sl1@gottpoff(%rip), %rax
addq sl1@gottpoff(%rip), %r8, %rax
+ {nf} addq sl1@gottpoff(%rip), %r18
{nf} addq %r8, sl1@gottpoff(%rip), %rax
{nf} addq sl1@gottpoff(%rip), %r8, %rax
@@ -152,6 +155,7 @@ fn2:
addq sh1@gottpoff(%rip), %r19
addq %r19, sh1@gottpoff(%rip), %r8
addq sh1@gottpoff(%rip), %r19, %r8
+ {nf} addq sh1@gottpoff(%rip), %r19
{nf} addq %r19, sh1@gottpoff(%rip), %r8
{nf} addq sh1@gottpoff(%rip), %r19, %r8
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index dddac43..ea1a91a 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -774,9 +774,9 @@ proc undefined_weak {cflags ldflags} {
if { [string match "*-fPIE*" $cflags]
&& ![string match "*nodynamic-undefined-weak*" $ldflags] } {
- set weak_symbol "Weak defined"
+ set weak_symbol "Weak defined\n"
} else {
- set weak_symbol "Weak undefined"
+ set weak_symbol "Weak undefined\n"
}
run_cc_link_tests [list \
@@ -2274,6 +2274,13 @@ run_dump_test "ibt-plt-3a-x32"
run_dump_test "ibt-plt-3b-x32"
run_dump_test "ibt-plt-3c-x32"
run_dump_test "ibt-plt-3d-x32"
+
+# Skip -z mark-plt tests on MUSL.
+if { [istarget "x86_64-*-musl*"]} {
+ set ASFLAGS "$saved_ASFLAGS"
+ return
+}
+
run_dump_test "mark-plt-1a"
run_dump_test "mark-plt-1b"
run_dump_test "mark-plt-1c"
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index e6e643c..aeef82a 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -109,12 +109,12 @@ proc run_host_cmd { prog command } {
set gccflags "$gcc_B_opt $gccflags $ld_L_opt"
if {![info exists gcc_ld_B_opt_tested]} {
set gcc_ld_B_opt_tested 1
- set ld_version_message [run_host_cmd "$ld" "--version"]
+ set ld_version_message [string trim [run_host_cmd "$ld" "--version"]]
set ver "-Wl,--version"
if [check_lto_available] {
set ver "-fno-lto $ver"
}
- set gcc_ld_version_message [run_host_cmd "$prog" "$gccflags $ver"]
+ set gcc_ld_version_message [string trim [run_host_cmd "$prog" "$gccflags $ver"]]
if {[string first $ld_version_message $gcc_ld_version_message] < 0} {
perror "************************************************************************"
perror "Your compiler apparently ignores -B when choosing ld."
@@ -123,7 +123,7 @@ proc run_host_cmd { prog command } {
perror "Hint: don't configure gcc using --with-ld (or --with-as)"
}
perror "You will not be testing the new ld in many of the following tests."
- set gcc_ld_version [run_host_cmd "$prog" "$gccflags --print-prog-name=ld"]
+ set gcc_ld_version [string trim [run_host_cmd "$prog" "$gccflags --print-prog-name=ld"]]
if {![string match "" $gcc_ld_version] && ![string match "ld" $gcc_ld_version]} {
perror "It seems you will be testing $gcc_ld_version instead."
}
@@ -136,9 +136,8 @@ proc run_host_cmd { prog command } {
set status [remote_exec host [concat sh -c [list "$prog $gccflags $command 2>&1"]] "" "/dev/null" "ld.tmp"]
remote_upload host "ld.tmp"
set link_output [file_contents "ld.tmp"]
- regsub "\n$" $link_output "" link_output
if { [lindex $status 0] != 0 && [string match "" $link_output] } then {
- append link_output "child process exited abnormally"
+ set link_output "child process exited abnormally"
}
remote_file build delete ld.tmp
remote_file host delete ld.tmp
diff --git a/libctf/ChangeLog b/libctf/ChangeLog
index 8e40d01..5c53be7 100644
--- a/libctf/ChangeLog
+++ b/libctf/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-01-15 Nick Clifton <nickc@redhat.com>
* 2.42 branch point.
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 884c8b7..cdcd4b3 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,48 @@
+2024-04-02 Tom Tromey <tom@tromey.com>
+
+ * cplus-dem.c (cplus_demangle): Try the D demangler with
+ "auto" format.
+ * testsuite/d-demangle-expected: Add --format=auto test.
+
+2024-04-02 Jakub Jelinek <jakub@redhat.com>
+
+ * regex.c (byte_re_match_2_internal): Fix duplicated words in comment;
+ next next -> next.
+ * dyn-string.c (dyn_string_init): Fix duplicated words in comment;
+ of of -> of.
+
+2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR other/113957
+ * pex-unix.c (pex_unix_exec_child): Set pid = -1 in the error
+ paths, since that is used to signal an erroneous outcome for
+ the routine.
+
+2024-02-15 Richard Biener <rguenther@suse.de>
+
+ * hashtab.c (iterative_hash): Remove TBAA violating handling
+ of aligned little-endian case in favor of just keeping the
+ aligned case special-cased. Use | for composing a larger word.
+
+2024-02-12 Jakub Jelinek <jakub@redhat.com>
+
+ * vprintf-support.c (libiberty_vprintf_buffer_size): Handle
+ properly l, ll, z, t or on _WIN32 I64 modifiers for diouxX
+ and L modifier for fFgGeE.
+
+2024-01-13 Jakub Jelinek <jakub@redhat.com>
+
+ * cp-demangle.c (FNQUAL_COMPONENT_CASE): Add case for
+ DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
+ (d_dump): Handle DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
+ (d_nested_name): Parse H after N in nested name.
+ (d_count_templates_scopes): Handle
+ DEMANGLE_COMPONENT_XOBJ_MEMBER_FUNCTION.
+ (d_print_mod): Likewise.
+ (d_print_function_type): Likewise.
+ * testsuite/demangle-expected: Add tests for explicit object
+ member functions.
+
2023-12-05 Jakub Jelinek <jakub@redhat.com>
* configure.ac (HAVE_X86_SHA1_HW_SUPPORT): Verify __get_cpuid and
diff --git a/libiberty/dyn-string.c b/libiberty/dyn-string.c
index ecd8c06..5805c0b4 100644
--- a/libiberty/dyn-string.c
+++ b/libiberty/dyn-string.c
@@ -47,7 +47,7 @@ Boston, MA 02110-1301, USA. */
/* Performs in-place initialization of a dyn_string struct. This
function can be used with a dyn_string struct on the stack or
- embedded in another object. The contents of of the string itself
+ embedded in another object. The contents of the string itself
are still dynamically allocated. The string initially is capable
of holding at least SPACE characeters, including the terminating
NUL. If SPACE is 0, it will silently be increated to 1.
diff --git a/libiberty/hashtab.c b/libiberty/hashtab.c
index 48f2807..e3a0725 100644
--- a/libiberty/hashtab.c
+++ b/libiberty/hashtab.c
@@ -940,26 +940,23 @@ iterative_hash (const void *k_in /* the key */,
c = initval; /* the previous hash value */
/*---------------------------------------- handle most of the key */
-#ifndef WORDS_BIGENDIAN
- /* On a little-endian machine, if the data is 4-byte aligned we can hash
- by word for better speed. This gives nondeterministic results on
- big-endian machines. */
- if (sizeof (hashval_t) == 4 && (((size_t)k)&3) == 0)
- while (len >= 12) /* aligned */
+ /* Provide specialization for the aligned case for targets that cannot
+ efficiently perform misaligned loads of a merged access. */
+ if ((((size_t)k)&3) == 0)
+ while (len >= 12)
{
- a += *(hashval_t *)(k+0);
- b += *(hashval_t *)(k+4);
- c += *(hashval_t *)(k+8);
+ a += (k[0] | ((hashval_t)k[1]<<8) | ((hashval_t)k[2]<<16) | ((hashval_t)k[3]<<24));
+ b += (k[4] | ((hashval_t)k[5]<<8) | ((hashval_t)k[6]<<16) | ((hashval_t)k[7]<<24));
+ c += (k[8] | ((hashval_t)k[9]<<8) | ((hashval_t)k[10]<<16)| ((hashval_t)k[11]<<24));
mix(a,b,c);
k += 12; len -= 12;
}
else /* unaligned */
-#endif
while (len >= 12)
{
- a += (k[0] +((hashval_t)k[1]<<8) +((hashval_t)k[2]<<16) +((hashval_t)k[3]<<24));
- b += (k[4] +((hashval_t)k[5]<<8) +((hashval_t)k[6]<<16) +((hashval_t)k[7]<<24));
- c += (k[8] +((hashval_t)k[9]<<8) +((hashval_t)k[10]<<16)+((hashval_t)k[11]<<24));
+ a += (k[0] | ((hashval_t)k[1]<<8) | ((hashval_t)k[2]<<16) | ((hashval_t)k[3]<<24));
+ b += (k[4] | ((hashval_t)k[5]<<8) | ((hashval_t)k[6]<<16) | ((hashval_t)k[7]<<24));
+ c += (k[8] | ((hashval_t)k[9]<<8) | ((hashval_t)k[10]<<16)| ((hashval_t)k[11]<<24));
mix(a,b,c);
k += 12; len -= 12;
}
diff --git a/libiberty/pex-unix.c b/libiberty/pex-unix.c
index af98062..f3a1cc9 100644
--- a/libiberty/pex-unix.c
+++ b/libiberty/pex-unix.c
@@ -695,6 +695,7 @@ pex_unix_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED,
{
*err = ret;
*errmsg = "posix_spawnp";
+ pid = -1; /* The value of pid is unspecified on failure. */
goto exit;
}
}
@@ -705,6 +706,7 @@ pex_unix_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED,
{
*err = ret;
*errmsg = "posix_spawn";
+ pid = -1;
goto exit;
}
}
diff --git a/libiberty/regex.c b/libiberty/regex.c
index 4841c5a..67747e6 100644
--- a/libiberty/regex.c
+++ b/libiberty/regex.c
@@ -5597,7 +5597,7 @@ byte_re_match_2_internal (struct re_pattern_buffer *bufp,
to resume scanning the pattern; the second one is where to resume
scanning the strings. If the latter is zero, the failure point is
a ``dummy''; if a failure happens and the failure point is a dummy,
- it gets discarded and the next next one is tried. */
+ it gets discarded and the next one is tried. */
#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */
PREFIX(fail_stack_type) fail_stack;
#endif
diff --git a/libiberty/vprintf-support.c b/libiberty/vprintf-support.c
index b590e5a..0543ec0 100644
--- a/libiberty/vprintf-support.c
+++ b/libiberty/vprintf-support.c
@@ -56,6 +56,7 @@ libiberty_vprintf_buffer_size (const char *format, va_list args)
{
if (*p++ == '%')
{
+ int prec = 0;
while (strchr ("-+ #0", *p))
++p;
if (*p == '*')
@@ -76,8 +77,43 @@ libiberty_vprintf_buffer_size (const char *format, va_list args)
else
total_width += strtoul (p, (char **) &p, 10);
}
- while (strchr ("hlL", *p))
- ++p;
+ do
+ {
+ switch (*p)
+ {
+ case 'h':
+ ++p;
+ continue;
+ case 'l':
+ case 'L':
+ ++prec;
+ ++p;
+ continue;
+ case 'z':
+ prec = 3;
+ ++p;
+ continue;
+ case 't':
+ prec = 4;
+ ++p;
+ continue;
+#ifdef _WIN32
+ case 'I':
+ if (p[1] == '6' && p[2] == '4')
+ {
+ prec = 2;
+ p += 3;
+ continue;
+ }
+ break;
+#endif
+ default:
+ break;
+ }
+ break;
+ }
+ while (1);
+
/* Should be big enough for any format specifier except %s and floats. */
total_width += 30;
switch (*p)
@@ -88,6 +124,15 @@ libiberty_vprintf_buffer_size (const char *format, va_list args)
case 'u':
case 'x':
case 'X':
+ switch (prec)
+ {
+ case 0: (void) va_arg (ap, int); break;
+ case 1: (void) va_arg (ap, long int); break;
+ case 2: (void) va_arg (ap, long long int); break;
+ case 3: (void) va_arg (ap, size_t); break;
+ case 4: (void) va_arg (ap, ptrdiff_t); break;
+ }
+ break;
case 'c':
(void) va_arg (ap, int);
break;
@@ -96,10 +141,18 @@ libiberty_vprintf_buffer_size (const char *format, va_list args)
case 'E':
case 'g':
case 'G':
- (void) va_arg (ap, double);
- /* Since an ieee double can have an exponent of 307, we'll
- make the buffer wide enough to cover the gross case. */
- total_width += 307;
+ if (!prec)
+ {
+ (void) va_arg (ap, double);
+ /* Since an ieee double can have an exponent of 308, we'll
+ make the buffer wide enough to cover the gross case. */
+ total_width += 308;
+ }
+ else
+ {
+ (void) va_arg (ap, long double);
+ total_width += 4932;
+ }
break;
case 's':
total_width += strlen (va_arg (ap, char *));
diff --git a/libsframe/Makefile.in b/libsframe/Makefile.in
index 111d6a3..8915321 100644
--- a/libsframe/Makefile.in
+++ b/libsframe/Makefile.in
@@ -107,6 +107,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
@BUILD_INFO_TRUE@am__append_1 = doc/sframe-spec.texi
@BUILD_INFO_TRUE@am__append_2 = texput.log
@BUILD_INFO_TRUE@am__append_3 = doc/sframe-spec.info
@@ -489,8 +490,12 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
target_noncanonical = @target_noncanonical@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -1148,6 +1153,8 @@ site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG)
@echo 'set build_triplet $(build_triplet)' >>site.tmp
@echo 'set host_alias "$(host_alias)"' >>site.tmp
@echo 'set host_triplet $(host_triplet)' >>site.tmp
+ @echo 'set target_alias "$(target_alias)"' >>site.tmp
+ @echo 'set target_triplet $(target_triplet)' >>site.tmp
@list='$(EXTRA_DEJAGNU_SITE_CONFIG)'; for f in $$list; do \
echo "## Begin content included from file $$f. Do not modify. ##" \
&& cat `test -f "$$f" || echo '$(srcdir)/'`$$f \
diff --git a/libsframe/configure b/libsframe/configure
index 8a9018c..4727eff 100755
--- a/libsframe/configure
+++ b/libsframe/configure
@@ -666,14 +666,6 @@ DUMPBIN
LD
FGREP
SED
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
LIBTOOL
ac_ct_AR
AR
@@ -725,6 +717,18 @@ CPPFLAGS
LDFLAGS
CFLAGS
CC
+target_os
+target_vendor
+target_cpu
+target
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
target_alias
host_alias
build_alias
@@ -1392,6 +1396,7 @@ Program names:
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
_ACEOF
fi
@@ -2271,6 +2276,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
@@ -2300,6 +2306,117 @@ ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
+
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
@@ -5368,77 +5485,6 @@ macro_revision='1.3134'
ltmain="$ac_aux_dir/ltmain.sh"
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
- as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "x$host_alias" = x; then
- ac_cv_host=$ac_cv_build
-else
- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
- as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
# Backslashify metacharacters that are still active within
# double-quoted strings.
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
@@ -11517,7 +11563,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11520 "configure"
+#line 11566 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11623,7 +11669,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11626 "configure"
+#line 11672 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/libsframe/configure.ac b/libsframe/configure.ac
index 8cbd3cd..e44d160 100644
--- a/libsframe/configure.ac
+++ b/libsframe/configure.ac
@@ -20,6 +20,9 @@ dnl
AC_INIT([libsframe], [BFD_VERSION])
AC_CONFIG_SRCDIR(sframe.c)
+
+AC_CANONICAL_TARGET
+
AC_USE_SYSTEM_EXTENSIONS
AM_INIT_AUTOMAKE
AM_SILENT_RULES([yes])
diff --git a/libsframe/doc/sframe-spec.texi b/libsframe/doc/sframe-spec.texi
index bb2b35a..c1730ad 100644
--- a/libsframe/doc/sframe-spec.texi
+++ b/libsframe/doc/sframe-spec.texi
@@ -52,6 +52,11 @@ low-overhead mechanism to generate stack traces.
@menu
* Introduction::
* SFrame Section::
+* ABI/arch-specific Definition::
+
+Appendices
+* Generating Stack Traces using SFrame::
+
* Index::
@end menu
@@ -399,7 +404,7 @@ in the format.
@end multitable
The presence of an explicit identification of ABI/arch in SFrame may allow
-stack trace generators to make certain ABI-specific decisions.
+stack trace generators to make certain ABI/arch-specific decisions.
@node SFrame Function Descriptor Entries
@section SFrame FDE
@@ -612,41 +617,42 @@ identifier to reflect the chosen SFrame FRE type is stored in the
@cindex SFrame FRE
The SFrame frame row entry sub-section contains the core of the stack trace
-information.
+information. An SFrame frame row entry (FRE) is a self-sufficient record
+containing SFrame stack trace information for a range of contiguous
+(instruction) addresses, starting at the specified offset from the start of the
+function.
-An SFrame frame row entry is a self-sufficient record containing SFrame stack
-trace information for a range of contiguous addresses, starting at the
-specified offset from the start of the function. Each SFrame frame row entry
-is followed by S*N bytes, where:
+Each SFrame FRE encodes the stack offsets to recover the CFA, FP and RA (where
+applicable) for the respective instruction addresses. To encode this
+information, each SFrame FRE is followed by S*N bytes, where:
@itemize @minus
@item
-@code{S} is the size of the stack frame offset for the FRE, and
+@code{S} is the size of a stack offset for the FRE, and
@item
-@code{N} is the number of stack frame offsets in the FRE
+@code{N} is the number of stack offsets in the FRE
@end itemize
-The stack offsets, following the FRE, are interpreted in order as follows:
+The entities @code{S}, @code{N} are encoded in the SFrame FRE info word, via
+the @code{fre_offset_size} and the @code{fre_offset_count} respectively. More
+information about the precise encoding and range of values for @code{S} and
+@code{N} is provided later in the @xref{The SFrame FRE Info Word}.
-@itemize @minus
-@item
-The first offset is always used to locate the CFA, by interpreting it as:
-CFA = @code{BASE_REG} + offset1.
-@item
-If RA is being tracked, the second offset is always used to locate the RA, by
-interpreting it as: RA = CFA + offset2. If RA is @emph{not} being tracked
-@emph{and} FP is being tracked, the second offset will be used to locate the
-FP, by interpreting it as: FP = CFA + offset2.
-@item
-If both RA and FP are being tracked, the third offset will be used to locate
-the FP, by interpreting it as FP = CFA + offset3.
-@end itemize
+@cindex Provisions for future ABIs
+It is important to underline here that although the canonical interpretation
+of these bytes is as stack offsets (to recover CFA, FP and RA), these bytes
+@emph{may} be used by future ABIs/architectures to convey other information on
+a per SFrame FRE basis.
-The entities @code{S}, @code{N} and @code{BASE_REG} are identified using the
-SFrame FRE info word, a.k.a. the @code{sframe_fre_info}
-@xref{The SFrame FRE Info Word}.
+In summary, SFrame file format, by design, supports a variable number of stack
+offsets at the tail end of each SFrame FRE. To keep the SFrame file
+format specification flexible yet extensible, the interpretation of the stack
+offsets is ABI/arch-specific. The precise interpretation of the FRE stack
+offsets in the currently supported ABIs/architectures is covered in the
+ABI/arch-specific definition of the SFrame file format,
+@xref{ABI/arch-specific Definition}.
-Following are the definitions of the allowed SFrame FRE:
+Next, the definitions of the three SFrame FRE types are as follows:
@example
typedef struct sframe_frame_row_entry_addr1
@@ -683,7 +689,7 @@ SFrame FRE applies. The value encoded in the @code{sfre_start_address} field
is the offset in bytes of the start address of the SFrame FRE, from the start
address of the function.
-Further FRE types may be added in future.
+Further SFrame FRE types may be added in future.
@menu
* The SFrame FRE Info Word::
@@ -710,7 +716,8 @@ SFRAME_FRE_OFFSET_4B.
@item 1-4
@tab @code{fre_offset_count}
-@tab A value of upto 3 is allowed to track all three of CFA, FP and RA.
+@tab A max value of 15 is allowed. Typically, a value of upto 3 is sufficient
+for most ABIs to track all three of CFA, FP and RA.
@item 0
@tab @code{fre_cfa_base_reg_id}
@@ -741,6 +748,165 @@ long.
@end multitable
+@node ABI/arch-specific Definition
+@chapter ABI/arch-specific Definition
+@cindex ABI/arch-specific Definition
+
+This section covers the ABI/arch-specific definition of the SFrame file format.
+
+Currently, the only part of the SFrame file format definition that is
+ABI/arch-specific is the interpretation of the variable number of bytes at the
+tail end of each SFrame FRE. Currently, these bytes are only used for
+representing stack offsets (for all the currently supported ABIs). It is
+recommended to peruse this section along with @xref{SFrame Frame Row Entries}
+for clarity of context.
+
+Future ABIs must specify the algorithm for identifying the appropriate SFrame
+FRE stack offsets in this chapter. This should inevitably include the
+blueprint for interpreting the variable number of bytes at the tail end of the
+SFrame FRE for the specific ABI/arch. Any further provisions, e.g., using the
+auxiliary SFrame header, etc., if used, must also be outlined here.
+
+@menu
+* AMD64::
+* AArch64::
+@end menu
+
+@node AMD64
+@section AMD64
+
+Irrespective of the ABI, the first stack offset is always used to locate the
+CFA, by interpreting it as: CFA = @code{BASE_REG} + offset1. The
+identification of the @code{BASE_REG} is done by using the
+@code{fre_cfa_base_reg_id} field in the SFrame FRE info word.
+
+In AMD64, the return address (RA) is always saved on stack when a function
+call is executed. Further, AMD64 ABI mandates that the RA be saved at a
+@code{fixed offset} from the CFA when entering a new function. This means
+that the RA does not need to be tracked per SFrame FRE. The fixed offset is
+encoded in the SFrame file format in the field @code{sfh_cfa_fixed_ra_offset}
+in the SFrame header. @xref{SFrame Header}.
+
+Hence, the second stack offset (in the SFrame FRE), when present, will be used
+to locate the FP, by interpreting it as: FP = CFA + offset2.
+
+Hence, in summary:
+
+@multitable {Offset ID} {Interpretation in AMD64 in AMD64}
+@headitem Offset ID @tab Interpretation in AMD64
+@item 1 @tab CFA = @code{BASE_REG} + offset1
+@item 2 @tab FP = CFA + offset2
+@end multitable
+
+@node AArch64
+@section AArch64
+
+Irrespective of the ABI, the first stack offset is always used to locate the
+CFA, by interpreting it as: CFA = @code{BASE_REG} + offset1. The
+identification of the @code{BASE_REG} is done by using the
+@code{fre_cfa_base_reg_id} field in the SFrame FRE info word.
+
+In AARCH64, the AAPCS64 standard specifies that the Frame Record saves both FP
+and LR (a.k.a the RA). However, the standard does not mandate the precise
+location in the function where the frame record is created, if at all. Hence
+the need to track RA in the SFrame stack trace format. As RA is being tracked
+in this ABI, the second stack offset is always used to locate the RA, by
+interpreting it as: RA = CFA + offset2. The third stack offset will be used to
+locate the FP, by interpreting it as: FP = CFA + offset3.
+
+Given the nature of things, the number of stack offsets seen on AARCH64 per
+SFrame FRE is either 1 or 3.
+
+Hence, in summary:
+
+@multitable {Offset ID} {Interpretation in AArch64 in X}
+@headitem Offset ID @tab Interpretation in AArch64
+@item 1 @tab CFA = @code{BASE_REG} + offset1
+@item 2 @tab RA = CFA + offset2
+@item 3 @tab FP = CFA + offset3
+@end multitable
+
+@node Generating Stack Traces using SFrame
+@appendix Generating Stack Traces using SFrame
+
+Using some C-like pseudocode, this section highlights how SFrame provides a
+simple, fast and low-overhead mechanism to generate stack traces. Needless to
+say that for generating accurate and useful stack traces, several other aspects
+will need attention: finding and decoding bits of SFrame section(s) in the
+program binary, symbolization of addresses, to name a few.
+
+In the current context, a @code{frame} is the abstract construct that
+encapsulates the following information:
+@itemize @minus
+@item
+program counter (PC),
+@item
+stack pointer (SP), and
+@item
+frame pointer (FP)
+@end itemize
+
+With that said, establishing the first @code{frame} should be trivial:
+
+@example
+ // frame 0
+ frame->pc = current_IP;
+ frame->sp = get_reg_value (REG_SP);
+ frame->fp = get_reg_value (REG_FP);
+@end example
+
+where @code{REG_SP} and @code{REG_FP} are are ABI-designated stack pointer and
+frame pointer registers respectively.
+
+Next, given frame N, generating stack trace needs us to get frame N+1. This
+can be done as follows:
+
+@example
+ // Get the PC, SP, and FP for frame N.
+ pc = frame->pc;
+ sp = frame->sp;
+ fp = frame->fp;
+ // Populate frame N+1.
+ int err = get_next_frame (&next_frame, pc, sp, fp);
+@end example
+
+where given the values of the program counter, stack pointer and frame pointer
+from frame N, @code{get_next_frame} populates the provided @code{next_frame}
+object and returns the error code, if any. In the following pseudocode for
+@code{get_next_frame}, the @code{sframe_*} functions fetch information from the
+SFrame section.
+
+@example
+ fre = sframe_find_fre (pc);
+ if (fre)
+ // Whether the base register for CFA tracking is REG_FP.
+ base_reg_val = sframe_fre_base_reg_fp_p (fre) ? fp : sp;
+ // Get the CFA stack offset from the FRE.
+ cfa_offset = sframe_fre_get_cfa_offset (fre);
+ // Get the fixed RA offset or FRE stack offset as applicable.
+ ra_offset = sframe_fre_get_ra_offset (fre);
+ // Get the fixed FP offset or FRE stack offset as applicable.
+ fp_offset = sframe_fre_get_fp_offset (fre);
+
+ cfa = base_reg_val + cfa_offset;
+ next_frame->sp = cfa;
+
+ ra_stack_loc = cfa + ra_offset;
+ // Get the address stored in the stack location.
+ next_frame->pc = read_value (ra_stack_loc);
+
+ if (fp_offset is VALID)
+ fp_stack_loc = cfa + fp_offset;
+ // Get the value stored in the stack location.
+ next_frame->fp = read_value (fp_stack_loc);
+ else
+ // Continue to use the value of fp as it has not
+ // been clobbered by the current frame yet.
+ next_frame->fp = fp;
+ else
+ ret = ERR_NO_SFRAME_FRE;
+@end example
+
@node Index
@unnumbered Index
diff --git a/libsframe/sframe-dump.c b/libsframe/sframe-dump.c
index 42a086a..69633d5 100644
--- a/libsframe/sframe-dump.c
+++ b/libsframe/sframe-dump.c
@@ -47,6 +47,8 @@ dump_sframe_header (sframe_decoder_ctx *sfd_ctx)
uint8_t flags;
char *flags_str;
const char *ver_str = NULL;
+ int8_t cfa_fixed_fp_offset;
+ int8_t cfa_fixed_ra_offset;
const sframe_header *header = &(sfd_ctx->sfd_header);
/* Prepare SFrame section version string. */
@@ -82,12 +84,20 @@ dump_sframe_header (sframe_decoder_ctx *sfd_ctx)
else
strcpy (flags_str, "NONE");
+ /* CFA fixed FP and RA offsets. */
+ cfa_fixed_fp_offset = header->sfh_cfa_fixed_fp_offset;
+ cfa_fixed_ra_offset = header->sfh_cfa_fixed_ra_offset;
+
const char* subsec_name = "Header";
printf ("\n");
printf (" %s :\n", subsec_name);
printf ("\n");
printf (" Version: %s\n", ver_str);
printf (" Flags: %s\n", flags_str);
+ if (cfa_fixed_fp_offset != SFRAME_CFA_FIXED_FP_INVALID)
+ printf (" CFA fixed FP offset: %d\n", cfa_fixed_fp_offset);
+ if (cfa_fixed_ra_offset != SFRAME_CFA_FIXED_RA_INVALID)
+ printf (" CFA fixed RA offset: %d\n", cfa_fixed_ra_offset);
printf (" Num FDEs: %d\n", sframe_decoder_get_num_fidx (sfd_ctx));
printf (" Num FREs: %d\n", header->sfh_num_fres);
@@ -171,13 +181,15 @@ dump_sframe_func_with_fres (sframe_decoder_ctx *sfd_ctx,
printf ("%-10s", temp);
/* Dump RA info.
- If an ABI does not track RA offset, e.g., AMD64, display a 'u',
+ If an ABI does not track RA offset, e.g., AMD64, display 'f',
else display the offset d as 'c+-d'. */
- if (sframe_decoder_get_fixed_ra_offset(sfd_ctx)
+ if (sframe_decoder_get_fixed_ra_offset (sfd_ctx)
!= SFRAME_CFA_FIXED_RA_INVALID)
- strcpy (temp, "u");
+ strcpy (temp, "f");
else if (err[2] == 0)
sprintf (temp, "c%+d", ra_offset);
+ else
+ strcpy (temp, "u");
/* Mark SFrame FRE's RA information with "[s]" if the RA is mangled
with signature bits. */
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index bce3bfb..4e7bc6d 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,7 @@
+2024-07-20 Nick Clifton <nickc@redhat.com>
+
+ * 2.43 branch point.
+
2024-02-15 Will Hawkins <hawkinsw@obs.cr>
* bpf-opc.c: Move callx into the v1 BPF CPU variant.
diff --git a/opcodes/aarch64-asm-2.c b/opcodes/aarch64-asm-2.c
index 00d10f1..a774468 100644
--- a/opcodes/aarch64-asm-2.c
+++ b/opcodes/aarch64-asm-2.c
@@ -672,27 +672,29 @@ aarch64_insert_operand (const aarch64_operand *self,
case 214:
case 215:
case 216:
- case 225:
case 226:
case 227:
case 228:
case 229:
- case 240:
- case 244:
- case 249:
- case 257:
+ case 230:
+ case 241:
+ case 245:
+ case 250:
case 258:
case 259:
- case 266:
+ case 260:
case 267:
case 268:
case 269:
+ case 270:
+ case 304:
+ case 308:
return aarch64_ins_regno (self, info, code, inst, errors);
case 6:
case 119:
case 120:
- case 305:
- case 308:
+ case 314:
+ case 317:
return aarch64_ins_none (self, info, code, inst, errors);
case 17:
return aarch64_ins_reg_extended (self, info, code, inst, errors);
@@ -707,17 +709,16 @@ aarch64_insert_operand (const aarch64_operand *self,
case 37:
case 38:
case 39:
- case 310:
+ case 319:
return aarch64_ins_reglane (self, info, code, inst, errors);
case 40:
case 41:
case 42:
- case 230:
case 231:
- case 234:
- case 270:
+ case 232:
+ case 235:
case 271:
- case 286:
+ case 272:
case 287:
case 288:
case 289:
@@ -734,6 +735,13 @@ aarch64_insert_operand (const aarch64_operand *self,
case 300:
case 301:
case 302:
+ case 303:
+ case 305:
+ case 306:
+ case 307:
+ case 309:
+ case 310:
+ case 311:
return aarch64_ins_simple_index (self, info, code, inst, errors);
case 43:
return aarch64_ins_reglist (self, info, code, inst, errors);
@@ -783,14 +791,14 @@ aarch64_insert_operand (const aarch64_operand *self,
case 210:
case 211:
case 212:
- case 272:
- case 303:
- case 304:
- case 306:
- case 307:
- case 309:
- case 314:
+ case 273:
+ case 312:
+ case 313:
case 315:
+ case 316:
+ case 318:
+ case 323:
+ case 324:
return aarch64_ins_imm (self, info, code, inst, errors);
case 52:
case 53:
@@ -939,7 +947,7 @@ aarch64_insert_operand (const aarch64_operand *self,
case 201:
case 202:
case 203:
- case 285:
+ case 286:
return aarch64_ins_sve_shrimm (self, info, code, inst, errors);
case 217:
case 218:
@@ -951,67 +959,69 @@ aarch64_insert_operand (const aarch64_operand *self,
case 223:
case 224:
return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors);
- case 232:
+ case 225:
+ return aarch64_ins_sme_za_tile_to_vec (self, info, code, inst, errors);
case 233:
- case 235:
+ case 234:
case 236:
case 237:
case 238:
case 239:
+ case 240:
return aarch64_ins_sve_quad_index (self, info, code, inst, errors);
- case 241:
case 242:
- return aarch64_ins_sve_index (self, info, code, inst, errors);
case 243:
- case 245:
- case 265:
- return aarch64_ins_sve_reglist (self, info, code, inst, errors);
+ return aarch64_ins_sve_index (self, info, code, inst, errors);
+ case 244:
case 246:
+ case 266:
+ return aarch64_ins_sve_reglist (self, info, code, inst, errors);
case 247:
- case 250:
+ case 248:
case 251:
case 252:
case 253:
case 254:
- case 264:
- return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors);
- case 248:
case 255:
+ case 265:
+ return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors);
+ case 249:
case 256:
+ case 257:
return aarch64_ins_sve_strided_reglist (self, info, code, inst, errors);
- case 260:
- case 262:
- case 273:
- return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors);
case 261:
case 263:
- return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors);
case 274:
+ return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors);
+ case 262:
+ case 264:
+ return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors);
case 275:
case 276:
case 277:
case 278:
case 279:
case 280:
- return aarch64_ins_sme_za_array (self, info, code, inst, errors);
case 281:
- return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors);
+ return aarch64_ins_sme_za_array (self, info, code, inst, errors);
case 282:
- return aarch64_ins_sme_sm_za (self, info, code, inst, errors);
+ return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors);
case 283:
- return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors);
+ return aarch64_ins_sme_sm_za (self, info, code, inst, errors);
case 284:
+ return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors);
+ case 285:
return aarch64_ins_plain_shrimm (self, info, code, inst, errors);
- case 311:
- case 312:
- case 313:
+ case 320:
+ case 321:
+ case 322:
return aarch64_ins_x0_to_x30 (self, info, code, inst, errors);
- case 316:
- case 317:
- case 318:
- case 319:
+ case 325:
+ case 326:
+ case 327:
+ case 328:
return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors);
- case 320:
+ case 329:
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 0867c08..cd79ec1 100644
--- a/opcodes/aarch64-asm.c
+++ b/opcodes/aarch64-asm.c
@@ -1521,6 +1521,49 @@ aarch64_ins_sme_za_vrs2 (const aarch64_operand *self,
return true;
}
+/* Encode in SME instruction such as MOVZA ZA tile slice to vector. */
+bool
+aarch64_ins_sme_za_tile_to_vec (const aarch64_operand *self,
+ const aarch64_opnd_info *info,
+ aarch64_insn *code,
+ const aarch64_inst *inst ATTRIBUTE_UNUSED,
+ aarch64_operand_error *errors ATTRIBUTE_UNUSED)
+{
+ int fld_v = info->indexed_za.v;
+ int fld_rv = info->indexed_za.index.regno - 12;
+ int fld_zan_imm = info->indexed_za.index.imm;
+ int regno = info->indexed_za.regno;
+
+ switch (info->qualifier)
+ {
+ case AARCH64_OPND_QLF_S_B:
+ insert_field (FLD_imm4_5, code, fld_zan_imm, 0);
+ break;
+ case AARCH64_OPND_QLF_S_H:
+ insert_field (FLD_ZA8_1, code, regno, 0);
+ insert_field (FLD_imm3_5, code, fld_zan_imm, 0);
+ break;
+ case AARCH64_OPND_QLF_S_S:
+ insert_field (FLD_ZA7_2, code, regno, 0);
+ insert_field (FLD_off2, code, fld_zan_imm, 0);
+ break;
+ case AARCH64_OPND_QLF_S_D:
+ insert_field (FLD_ZA6_3, code, regno, 0);
+ insert_field (FLD_ol, code, fld_zan_imm, 0);
+ break;
+ case AARCH64_OPND_QLF_S_Q:
+ insert_field (FLD_ZA5_4, code, regno, 0);
+ break;
+ default:
+ return false;
+ }
+
+ insert_field (self->fields[0], code, fld_v, 0);
+ insert_field (self->fields[1], code, fld_rv, 0);
+
+ return true;
+}
+
/* Encode in SME instruction such as MOVA ZA tile vector register number,
vector indicator, vector selector and immediate. */
bool
@@ -2139,6 +2182,10 @@ aarch64_encode_variant_using_iclass (struct aarch64_inst *inst)
/* The variant is encoded as part of the immediate. */
break;
+ case sme_size_12_bh:
+ insert_field (FLD_S, &inst->value, aarch64_get_variant (inst), 0);
+ break;
+
case sme_size_12_bhs:
case sme_size_12_b:
insert_field (FLD_SME_size_12, &inst->value,
diff --git a/opcodes/aarch64-asm.h b/opcodes/aarch64-asm.h
index 88143ee..dca0690 100644
--- a/opcodes/aarch64-asm.h
+++ b/opcodes/aarch64-asm.h
@@ -104,6 +104,7 @@ AARCH64_DECL_OPD_INSERTER (ins_sve_shlimm);
AARCH64_DECL_OPD_INSERTER (ins_sve_shrimm);
AARCH64_DECL_OPD_INSERTER (ins_sme_za_vrs1);
AARCH64_DECL_OPD_INSERTER (ins_sme_za_vrs2);
+AARCH64_DECL_OPD_INSERTER (ins_sme_za_tile_to_vec);
AARCH64_DECL_OPD_INSERTER (ins_sme_za_hv_tiles);
AARCH64_DECL_OPD_INSERTER (ins_sme_za_hv_tiles_range);
AARCH64_DECL_OPD_INSERTER (ins_sme_za_list);
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index 49ca823..4138ec8 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -196,11 +196,66 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000000xx0x001xxxxxxxxxxxxxxxxx
- mov. */
- return 2436;
+ if (((word >> 9) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx0x001xxxxxxx0xxxxxxxxx
+ mov. */
+ return 2436;
+ }
+ else
+ {
+ if (((word >> 16) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000x0010xxxxxx1xxxxxxxxx
+ movaz. */
+ return 3312;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000100x0010xxxxxx1xxxxxxxxx
+ movaz. */
+ return 3314;
+ }
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000010x0010xxxxxx1xxxxxxxxx
+ movaz. */
+ return 3313;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000110x0010xxxxxx1xxxxxxxxx
+ movaz. */
+ return 3315;
+ }
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx0x0011xxxxxx1xxxxxxxxx
+ movaz. */
+ return 3316;
+ }
+ }
}
else
{
@@ -216,7 +271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x000101x00xxxxxxxxxxxxxx
luti4. */
- return 3394;
+ return 3428;
}
else
{
@@ -247,11 +302,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000000xx01101xxxxxxxxxxxxxxxxx
- luti4. */
- return 3395;
+ if (((word >> 14) & 0x1) == 0)
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx01101x00xxxxxxxxxxxxxx
+ luti4. */
+ return 3429;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx01101x10xxxxxxxxxxxxxx
+ luti4. */
+ return 3309;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx01101xx1xxxxxxxxxxxxxx
+ luti4. */
+ return 3308;
+ }
}
}
}
@@ -327,64 +404,174 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 20) & 0x1) == 0)
{
- if (((word >> 14) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000000x00x11xxx0xx00xxxxxxxxxx
- luti2. */
- return 2668;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ if (((word >> 16) & 0x1) == 0)
+ {
+ if (((word >> 17) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011000xxx00xxxxxxxxxx
+ zero. */
+ return 3317;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011100xxx00xxxxxxxxxx
+ zero. */
+ return 3318;
+ }
+ }
+ else
+ {
+ if (((word >> 17) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011010xxx00xxxxxxxxxx
+ zero. */
+ return 3320;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011110xxx00xxxxxxxxxx
+ zero. */
+ return 3323;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 16) & 0x1) == 0)
+ {
+ if (((word >> 17) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011001xxx00xxxxxxxxxx
+ zero. */
+ return 3319;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011101xxx00xxxxxxxxxx
+ zero. */
+ return 3322;
+ }
+ }
+ else
+ {
+ if (((word >> 17) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011011xxx00xxxxxxxxxx
+ zero. */
+ return 3321;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000000011111xxx00xxxxxxxxxx
+ zero. */
+ return 3324;
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 14) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000100011xxx0xx00xxxxxxxxxx
+ luti2. */
+ return 2668;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000100011xxx1xx00xxxxxxxxxx
+ luti2. */
+ return 2667;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000000x00x11xxx1xx00xxxxxxxxxx
- luti2. */
- return 2667;
- }
- }
- else
- {
- if (((word >> 23) & 0x1) == 0)
- {
- if (((word >> 16) & 0x1) == 0)
+ if (((word >> 23) & 0x1) == 0)
{
- if (((word >> 17) & 0x1) == 0)
+ if (((word >> 16) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000000010x1100xxxx00xxxxxxxxxx
- movt. */
- return 2689;
+ if (((word >> 17) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x100000001001100xxxx00xxxxxxxxxx
+ movt. */
+ return 2689;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x100000001001110xxxx00xxxxxxxxxx
+ movt. */
+ return 2688;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000000010x1110xxxx00xxxxxxxxxx
+ x1000000010011x1xxxx00xxxxxxxxxx
movt. */
- return 2688;
+ return 3430;
}
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000000010x11x1xxxx00xxxxxxxxxx
- movt. */
- return 3396;
+ x1000000110011xxxxxx00xxxxxxxxxx
+ luti2. */
+ return 2666;
}
}
+ }
+ else
+ {
+ if (((word >> 14) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx0111xxx0xx00xxxxxxxxxx
+ luti2. */
+ return 3307;
+ }
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000000110x11xxxxxx00xxxxxxxxxx
+ x1000000xx0111xxx1xx00xxxxxxxxxx
luti2. */
- return 2666;
+ return 3306;
}
}
}
@@ -401,11 +588,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000000xx0xx11xxxxx10xxxxxxxxxx
- mov. */
- return 2672;
+ if (((word >> 9) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx0xx11xxxxx100xxxxxxxxx
+ mov. */
+ return 2672;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx0xx11xxxxx101xxxxxxxxx
+ movaz. */
+ return 3310;
+ }
}
}
}
@@ -486,11 +684,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000000xx0xx11xxxxx11xxxxxxxxxx
- mov. */
- return 2673;
+ if (((word >> 9) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx0xx11xxxxx110xxxxxxxxx
+ mov. */
+ return 2673;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000000xx0xx11xxxxx111xxxxxxxxx
+ movaz. */
+ return 3311;
+ }
}
}
}
@@ -1157,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000000101xxxxxxxxxxxxxxxx00xxx
fmopa. */
- return 3462;
+ return 3496;
}
else
{
@@ -1165,7 +1374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000000101xxxxxxxxxxxxxxxx01xxx
fmopa. */
- return 3461;
+ return 3495;
}
}
else
@@ -1513,7 +1722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxx1000xxx
fmlall. */
- return 3455;
+ return 3489;
}
}
}
@@ -1543,7 +1752,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxxxxx1xxxxxx00xxxx
fdot. */
- return 3440;
+ return 3474;
}
}
else
@@ -1915,7 +2124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxxxxx0xxxxxx100xxx
fmlall. */
- return 3454;
+ return 3488;
}
}
}
@@ -2020,7 +2229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxxxxx1xxxxxx10xxxx
fmlal. */
- return 3447;
+ return 3481;
}
}
}
@@ -2193,7 +2402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxxxxx1xxxxxx11xxxx
fmlal. */
- return 3446;
+ return 3480;
}
}
}
@@ -2235,7 +2444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010100xxxxxxxxxxxxxxxx0xxx
fmlall. */
- return 3453;
+ return 3487;
}
else
{
@@ -2603,7 +2812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx111xxx
fdot. */
- return 3433;
+ return 3467;
}
else
{
@@ -2672,7 +2881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx001xxx
fdot. */
- return 3434;
+ return 3468;
}
else
{
@@ -2751,7 +2960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011100xxxxxxx0xxxxxxx0xxxx
fmlal. */
- return 3445;
+ return 3479;
}
else
{
@@ -2806,7 +3015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx01xxxxx00xxxx
fvdotb. */
- return 3464;
+ return 3498;
}
else
{
@@ -2824,7 +3033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxxxxx0xxxxxx10xxxx
fdot. */
- return 3439;
+ return 3473;
}
}
}
@@ -2898,7 +3107,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxxxxx1xxxxxx10xxxx
fvdot. */
- return 3463;
+ return 3497;
}
}
}
@@ -2978,7 +3187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx0xx01xxxxxx1xxxx
fvdott. */
- return 3465;
+ return 3499;
}
else
{
@@ -3155,7 +3364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxx10000x
fmlall. */
- return 3459;
+ return 3493;
}
else
{
@@ -3163,7 +3372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxx10000x
fmlall. */
- return 3460;
+ return 3494;
}
}
}
@@ -3218,7 +3427,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx000xxxxx00x1x
fmlall. */
- return 3457;
+ return 3491;
}
else
{
@@ -3226,7 +3435,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx000xxxxx00x1x
fmlall. */
- return 3458;
+ return 3492;
}
}
}
@@ -3280,7 +3489,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx100xxxx100xxx
fdot. */
- return 3443;
+ return 3477;
}
else
{
@@ -3288,7 +3497,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx100xxxx100xxx
fdot. */
- return 3444;
+ return 3478;
}
}
}
@@ -3350,7 +3559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx010xxxx1000xx
fmlal. */
- return 3451;
+ return 3485;
}
else
{
@@ -3358,7 +3567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx010xxxx1000xx
fmlal. */
- return 3452;
+ return 3486;
}
}
}
@@ -3413,7 +3622,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx010xxxxx001xx
fmlal. */
- return 3449;
+ return 3483;
}
else
{
@@ -3421,7 +3630,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx010xxxxx001xx
fmlal. */
- return 3450;
+ return 3484;
}
}
}
@@ -3490,7 +3699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx001xxxxx000xx
fmlall. */
- return 3456;
+ return 3490;
}
}
else
@@ -3573,7 +3782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx011xxxxx00xxx
fmlal. */
- return 3448;
+ return 3482;
}
}
else
@@ -3594,7 +3803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx1x00xx111xxxxx00xxx
fadd. */
- return 3397;
+ return 3431;
}
}
else
@@ -3613,7 +3822,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx1x10xx111xxxxx00xxx
fadd. */
- return 3398;
+ return 3432;
}
}
}
@@ -3739,7 +3948,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx100xxxx110xxx
fdot. */
- return 3437;
+ return 3471;
}
else
{
@@ -3747,7 +3956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx100xxxx110xxx
fdot. */
- return 3438;
+ return 3472;
}
}
}
@@ -4038,7 +4247,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx100xxxxx01xxx
fdot. */
- return 3441;
+ return 3475;
}
else
{
@@ -4046,7 +4255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx100xxxxx01xxx
fdot. */
- return 3442;
+ return 3476;
}
}
}
@@ -4317,7 +4526,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx1x00xx111xxxxx01xxx
fsub. */
- return 3399;
+ return 3433;
}
}
else
@@ -4336,7 +4545,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx1x10xx111xxxxx01xxx
fsub. */
- return 3400;
+ return 3434;
}
}
}
@@ -4398,7 +4607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx100xxxxx11xxx
fdot. */
- return 3435;
+ return 3469;
}
else
{
@@ -4406,7 +4615,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx100xxxxx11xxx
fdot. */
- return 3436;
+ return 3470;
}
}
}
@@ -4941,7 +5150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000xx1x0xxxx0
fscale. */
- return 3371;
+ return 3405;
}
}
else
@@ -5089,7 +5298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x0100100111000xxxx0xxxxx
fcvt. */
- return 3368;
+ return 3402;
}
else
{
@@ -5097,7 +5306,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x1100100111000xxxx0xxxxx
bfcvt. */
- return 3363;
+ return 3397;
}
}
else
@@ -5106,7 +5315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx110100111000xxxx0xxxxx
fcvt. */
- return 3369;
+ return 3403;
}
}
else
@@ -5157,7 +5366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx100111000xxxx1xxxxx
fcvtn. */
- return 3370;
+ return 3404;
}
}
}
@@ -5240,7 +5449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010x110111000xxxxxxxxx0
f1cvt. */
- return 3364;
+ return 3398;
}
else
{
@@ -5248,7 +5457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011010x110111000xxxxxxxxx0
f2cvt. */
- return 3365;
+ return 3399;
}
}
else
@@ -5259,7 +5468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110x110111000xxxxxxxxx0
bf1cvt. */
- return 3359;
+ return 3393;
}
else
{
@@ -5267,7 +5476,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011110x110111000xxxxxxxxx0
bf2cvt. */
- return 3360;
+ return 3394;
}
}
}
@@ -5302,7 +5511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001001xxx10111000xxxxxxxxx1
f1cvtl. */
- return 3366;
+ return 3400;
}
else
{
@@ -5310,7 +5519,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxx10111000xxxxxxxxx1
f2cvtl. */
- return 3367;
+ return 3401;
}
}
else
@@ -5321,7 +5530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001011xxx10111000xxxxxxxxx1
bf1cvtl. */
- return 3361;
+ return 3395;
}
else
{
@@ -5329,7 +5538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxx10111000xxxxxxxxx1
bf2cvtl. */
- return 3362;
+ return 3396;
}
}
}
@@ -5598,7 +5807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100xx100xxxx0
fscale. */
- return 3373;
+ return 3407;
}
}
else
@@ -5774,7 +5983,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1010xx100xxxx0
fscale. */
- return 3372;
+ return 3406;
}
else
{
@@ -5782,7 +5991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1110xx100xxxx0
fscale. */
- return 3374;
+ return 3408;
}
}
}
@@ -10950,7 +11159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010000xxxxxxx1xxxxxxxxxxxxx
addpt. */
- return 3375;
+ return 3409;
}
else
{
@@ -10958,7 +11167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010000xxxxxxx1xxxxxxxxxxxxx
subpt. */
- return 3376;
+ return 3410;
}
}
}
@@ -11876,7 +12085,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxx1011x11xxxxx0xxxxxxxxxxxxxxx
maddpt. */
- return 3377;
+ return 3411;
}
else
{
@@ -11884,7 +12093,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxx1011x11xxxxx1xxxxxxxxxxxxxxx
msubpt. */
- return 3378;
+ return 3412;
}
}
}
@@ -11969,7 +12178,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000100000xxxxxxxxxxxxx
addpt. */
- return 3379;
+ return 3413;
}
else
{
@@ -12076,7 +12285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000101000xxxxxxxxxxxxx
subpt. */
- return 3381;
+ return 3415;
}
else
{
@@ -12281,7 +12490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000010xxxxxxxxxx
addpt. */
- return 3380;
+ return 3414;
}
else
{
@@ -12322,7 +12531,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000011xxxxxxxxxx
subpt. */
- return 3382;
+ return 3416;
}
else
{
@@ -13980,7 +14189,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110100xxxxxxxxxx
mlapt. */
- return 3384;
+ return 3418;
}
}
else
@@ -14010,7 +14219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110110xxxxxxxxxx
madpt. */
- return 3383;
+ return 3417;
}
}
}
@@ -14312,11 +14521,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 16) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x0xx0xx100001xxxxxxxxxxxxx
- smaxqv. */
- return 3308;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx00x100001xxxxxxxxxxxxx
+ smaxqv. */
+ return 3327;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x0xx01x100001xxxxxxxxxxxxx
+ orqv. */
+ return 3338;
+ }
}
else
{
@@ -14326,7 +14546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0101001xxxxxxxxxxxxx
addqv. */
- return 3306;
+ return 3325;
}
else
{
@@ -14336,7 +14556,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001101001xxxxxxxxxxxxx
umaxqv. */
- return 3310;
+ return 3329;
}
else
{
@@ -14344,7 +14564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011101001xxxxxxxxxxxxx
eorqv. */
- return 3312;
+ return 3331;
}
}
}
@@ -14381,7 +14601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx00x110001xxxxxxxxxxxxx
sminqv. */
- return 3309;
+ return 3328;
}
else
{
@@ -14389,7 +14609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx01x110001xxxxxxxxxxxxx
andqv. */
- return 3307;
+ return 3326;
}
}
}
@@ -14409,7 +14629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xx111001xxxxxxxxxxxxx
uminqv. */
- return 3311;
+ return 3330;
}
}
}
@@ -15153,7 +15373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0x00xxxxx101xxxxxxxxxxxxx
ld1q. */
- return 3320;
+ return 3354;
}
else
{
@@ -16157,42 +16377,97 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 21) & 0x1) == 0)
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 31) & 0x1) == 0)
{
- if (((word >> 23) & 0x1) == 0)
+ if (((word >> 10) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0000xxxxx111xxxxxxxxxxxxx
- prfb. */
- return 1836;
+ if (((word >> 11) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx111x00xxxxxxxxxx
+ zipq1. */
+ return 3344;
+ }
+ else
+ {
+ if (((word >> 12) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx111010xxxxxxxxxx
+ uzpq1. */
+ return 3342;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx111110xxxxxxxxxx
+ tblq. */
+ return 3339;
+ }
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0100xxxxx111xxxxxxxxxxxxx
- prfh. */
- return 1850;
+ if (((word >> 11) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx111x01xxxxxxxxxx
+ zipq2. */
+ return 3345;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 010001x0xx0xxxxx111x11xxxxxxxxxx
+ uzpq2. */
+ return 3343;
+ }
}
}
else
{
- if (((word >> 23) & 0x1) == 0)
+ if (((word >> 22) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0010xxxxx111xxxxxxxxxxxxx
- ldff1b. */
- return 1699;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 110001x0000xxxxx111xxxxxxxxxxxxx
+ prfb. */
+ return 1836;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 110001x0100xxxxx111xxxxxxxxxxxxx
+ prfh. */
+ return 1850;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x10001x0110xxxxx111xxxxxxxxxxxxx
- ldff1h. */
- return 1719;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 110001x0010xxxxx111xxxxxxxxxxxxx
+ ldff1b. */
+ return 1699;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 110001x0110xxxxx111xxxxxxxxxxxxx
+ ldff1h. */
+ return 1719;
+ }
}
}
}
@@ -16630,7 +16905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0x00xxxxx000xxxxxxxxxxxxx
st3q. */
- return 3329;
+ return 3363;
}
else
{
@@ -16640,7 +16915,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0010xxxxx000xxxxxxxxxxxxx
st2q. */
- return 3328;
+ return 3362;
}
else
{
@@ -16648,7 +16923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0110xxxxx000xxxxxxxxxxxxx
st4q. */
- return 3330;
+ return 3364;
}
}
}
@@ -17095,7 +17370,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0x0000101xxxxxxxxxxxxx
faddqv. */
- return 3313;
+ return 3332;
}
else
{
@@ -17112,7 +17387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx100101xxxxxxxxxxxxx
fmaxnmqv. */
- return 3314;
+ return 3333;
}
}
else
@@ -17153,7 +17428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx110101xxxxxxxxxxxxx
fmaxqv. */
- return 3315;
+ return 3334;
}
}
}
@@ -17175,7 +17450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx101101xxxxxxxxxxxxx
fminnmqv. */
- return 3316;
+ return 3335;
}
}
else
@@ -17194,7 +17469,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx111101xxxxxxxxxxxxx
fminqv. */
- return 3317;
+ return 3336;
}
}
}
@@ -17314,7 +17589,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0xx01xxxx111xxxxxxxxxxxxx
ld2q. */
- return 3321;
+ return 3355;
}
}
}
@@ -17450,7 +17725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0xx1xxxxx100xxxxxxxxxxxxx
ld2q. */
- return 3324;
+ return 3358;
}
}
else
@@ -17595,7 +17870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x00x1xxxxx000xxxxxxxxxxxxx
st2q. */
- return 3331;
+ return 3365;
}
}
else
@@ -17638,7 +17913,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0101xxxxx000xxxxxxxxxxxxx
st3q. */
- return 3332;
+ return 3366;
}
}
else
@@ -17679,7 +17954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0111xxxxx000xxxxxxxxxxxxx
st4q. */
- return 3333;
+ return 3367;
}
}
}
@@ -17708,7 +17983,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0001xxxxx0100x1xxxxxxxxxx
fdot. */
- return 3420;
+ return 3454;
}
}
else
@@ -17717,7 +17992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0001xxxxx0101xxxxxxxxxxxx
fmlalb. */
- return 3422;
+ return 3456;
}
}
else
@@ -17758,7 +18033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx0101xxxxxxxxxxxx
fmlalt. */
- return 3432;
+ return 3466;
}
}
else
@@ -17791,7 +18066,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0011xxxxx010xx1xxxxxxxxxx
fdot. */
- return 3418;
+ return 3452;
}
}
else
@@ -17862,7 +18137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx100010xxxxxxxxxx
fmlallbb. */
- return 3423;
+ return 3457;
}
}
else
@@ -17871,7 +18146,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1000x1xxxxxxxxxx
fdot. */
- return 3419;
+ return 3453;
}
}
else
@@ -17880,7 +18155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1100xxxxxxxxxxxx
fmlallbb. */
- return 3424;
+ return 3458;
}
}
else
@@ -17889,7 +18164,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1x01xxxxxxxxxxxx
fmlallbt. */
- return 3425;
+ return 3459;
}
}
else
@@ -17916,7 +18191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx100010xxxxxxxxxx
fmlalb. */
- return 3421;
+ return 3455;
}
}
else
@@ -17934,7 +18209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx1100xxxxxxxxxxxx
fmlalltb. */
- return 3428;
+ return 3462;
}
}
else
@@ -17943,7 +18218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx1x01xxxxxxxxxxxx
fmlalt. */
- return 3431;
+ return 3465;
}
}
else
@@ -17976,7 +18251,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx100xx1xxxxxxxxxx
fdot. */
- return 3417;
+ return 3451;
}
}
else
@@ -17985,7 +18260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx110xxxxxxxxxxxxx
fmlallbt. */
- return 3426;
+ return 3460;
}
}
else
@@ -18017,7 +18292,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx110xxxxxxxxxxxxx
fmlalltt. */
- return 3430;
+ return 3464;
}
}
else
@@ -18316,7 +18591,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0xx1xxxxx001xxxxxxxxxxxxx
st1q. */
- return 3327;
+ return 3361;
}
}
else
@@ -18331,7 +18606,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1010xxxxxxxxxxxx
fmlalltb. */
- return 3427;
+ return 3461;
}
else
{
@@ -18339,7 +18614,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1011xxxxxxxxxxxx
fmlalltt. */
- return 3429;
+ return 3463;
}
}
else
@@ -18991,11 +19266,11 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 16) & 0x1) == 0)
{
- if (((word >> 17) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- if (((word >> 18) & 0x1) == 0)
+ if (((word >> 17) & 0x1) == 0)
{
- if (((word >> 19) & 0x1) == 0)
+ if (((word >> 18) & 0x1) == 0)
{
if (((word >> 20) & 0x1) == 0)
{
@@ -19016,59 +19291,147 @@ aarch64_opcode_lookup_1 (uint32_t word)
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x1xx1x1000001110xxxxxxxxxx
- rev. */
- return 1869;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1xx100100001110xxxxxxxxxx
+ insr. */
+ return 1559;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1xx110100001110xxxxxxxxxx
+ insr. */
+ return 1560;
+ }
}
}
else
{
- if (((word >> 20) & 0x1) == 0)
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1xx1x0x10001110xxxxxxxxxx
+ uunpklo. */
+ return 2080;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x1xx10x100001110xxxxxxxxxx
- insr. */
- return 1559;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 18) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1001010x0001110xxxxxxxxxx
+ pmov. */
+ return 3346;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1001011x0001110xxxxxxxxxx
+ pmov. */
+ return 3347;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x101101xx0001110xxxxxxxxxx
+ pmov. */
+ return 3348;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x1xx11x100001110xxxxxxxxxx
- insr. */
- return 1560;
+ 000001x11x101xx0001110xxxxxxxxxx
+ pmov. */
+ return 3349;
}
}
- }
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x1xx1xxx10001110xxxxxxxxxx
- uunpklo. */
- return 2080;
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1xx111xx0001110xxxxxxxxxx
+ rev. */
+ return 1869;
+ }
}
}
else
{
- if (((word >> 17) & 0x1) == 0)
+ if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x1xx1xxx01001110xxxxxxxxxx
- sunpkhi. */
- return 2016;
+ if (((word >> 17) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1xx1x0x01001110xxxxxxxxxx
+ sunpkhi. */
+ return 2016;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1xx1x0x11001110xxxxxxxxxx
+ uunpkhi. */
+ return 2079;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x1xx1xxx11001110xxxxxxxxxx
- uunpkhi. */
- return 2079;
+ if (((word >> 23) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 18) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1001x10x1001110xxxxxxxxxx
+ pmov. */
+ return 3350;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1001x11x1001110xxxxxxxxxx
+ pmov. */
+ return 3351;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1011x1xx1001110xxxxxxxxxx
+ pmov. */
+ return 3352;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x11x1x1xx1001110xxxxxxxxxx
+ pmov. */
+ return 3353;
+ }
}
}
}
@@ -19078,21 +19441,32 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 11) & 0x1) == 0)
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 000001x1x01xxxxx001x01xxxxxxxxxx
- dupq. */
- return 3318;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1x01xxxxx001001xxxxxxxxxx
+ dupq. */
+ return 3337;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 000001x1x11xxxxx001001xxxxxxxxxx
+ extq. */
+ return 3341;
+ }
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- 000001x1x11xxxxx001x01xxxxxxxxxx
- extq. */
- return 3319;
+ 000001x1xx1xxxxx001101xxxxxxxxxx
+ tbxq. */
+ return 3340;
}
}
else
@@ -20695,7 +21069,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101100xxxxxxxxxx
luti2. */
- return 3389;
+ return 3423;
}
}
else
@@ -20704,7 +21078,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101x10xxxxxxxxxx
luti2. */
- return 3390;
+ return 3424;
}
}
else
@@ -20717,7 +21091,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101001xxxxxxxxxx
luti4. */
- return 3391;
+ return 3425;
}
else
{
@@ -20725,7 +21099,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101101xxxxxxxxxx
luti4. */
- return 3392;
+ return 3426;
}
}
else
@@ -20734,7 +21108,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101x11xxxxxxxxxx
luti4. */
- return 3393;
+ return 3427;
}
}
}
@@ -21685,7 +22059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x00xxxxxxxxxx
f1cvt. */
- return 3351;
+ return 3385;
}
else
{
@@ -21693,7 +22067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x10xxxxxxxxxx
bf1cvt. */
- return 3347;
+ return 3381;
}
}
else
@@ -21704,7 +22078,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x01xxxxxxxxxx
f2cvt. */
- return 3352;
+ return 3386;
}
else
{
@@ -21712,7 +22086,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x11xxxxxxxxxx
bf2cvt. */
- return 3348;
+ return 3382;
}
}
}
@@ -21757,7 +22131,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x00xxxxxxxxxx
fcvtn. */
- return 3356;
+ return 3390;
}
else
{
@@ -21765,7 +22139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x10xxxxxxxxxx
bfcvtn. */
- return 3355;
+ return 3389;
}
}
else
@@ -21776,7 +22150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x01xxxxxxxxxx
fcvtnb. */
- return 3357;
+ return 3391;
}
else
{
@@ -21784,7 +22158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x11xxxxxxxxxx
fcvtnt. */
- return 3358;
+ return 3392;
}
}
}
@@ -21845,7 +22219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x00xxxxxxxxxx
f1cvtlt. */
- return 3353;
+ return 3387;
}
else
{
@@ -21853,7 +22227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x10xxxxxxxxxx
bf1cvtlt. */
- return 3349;
+ return 3383;
}
}
else
@@ -21864,7 +22238,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x01xxxxxxxxxx
f2cvtlt. */
- return 3354;
+ return 3388;
}
else
{
@@ -21872,7 +22246,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x11xxxxxxxxxx
bf2cvtlt. */
- return 3350;
+ return 3384;
}
}
}
@@ -23198,7 +23572,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x01xxxx111xxxxxxxxxxxxx
ld3q. */
- return 3322;
+ return 3356;
}
else
{
@@ -23206,7 +23580,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x01xxxx111xxxxxxxxxxxxx
ld4q. */
- return 3323;
+ return 3357;
}
}
}
@@ -24379,7 +24753,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x1xxxxx100xxxxxxxxxxxxx
ld3q. */
- return 3325;
+ return 3359;
}
else
{
@@ -24387,7 +24761,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x1xxxxx100xxxxxxxxxxxxx
ld4q. */
- return 3326;
+ return 3360;
}
}
else
@@ -26452,7 +26826,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110100xxxxxxxx100xxxxxxxxxx
luti2. */
- return 3385;
+ return 3419;
}
}
}
@@ -26466,7 +26840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110010xxxxxxxx000xxxxxxxxxx
luti4. */
- return 3387;
+ return 3421;
}
else
{
@@ -26474,7 +26848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110010xxxxxxxx100xxxxxxxxxx
luti4. */
- return 3388;
+ return 3422;
}
}
else
@@ -26483,7 +26857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110110xxxxxxxxx00xxxxxxxxxx
luti2. */
- return 3386;
+ return 3420;
}
}
}
@@ -26599,7 +26973,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110x00xxxxxx10001xxxxxxxxxx
fmlallbb. */
- return 3409;
+ return 3443;
}
else
{
@@ -26607,7 +26981,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110x00xxxxxx10001xxxxxxxxxx
fmlalltb. */
- return 3411;
+ return 3445;
}
}
else
@@ -26618,7 +26992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110x10xxxxxx10001xxxxxxxxxx
fmlallbt. */
- return 3410;
+ return 3444;
}
else
{
@@ -26626,7 +27000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110x10xxxxxx10001xxxxxxxxxx
fmlalltt. */
- return 3412;
+ return 3446;
}
}
}
@@ -26714,7 +27088,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110x00xxxxxx11101xxxxxxxxxx
fcvtn. */
- return 3342;
+ return 3376;
}
else
{
@@ -26722,7 +27096,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110x00xxxxxx11101xxxxxxxxxx
fcvtn2. */
- return 3343;
+ return 3377;
}
}
else
@@ -26731,7 +27105,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110x10xxxxxx11101xxxxxxxxxx
fcvtn. */
- return 3344;
+ return 3378;
}
}
}
@@ -26874,7 +27248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110x00xxxxxx11111xxxxxxxxxx
fdot. */
- return 3401;
+ return 3435;
}
else
{
@@ -26884,7 +27258,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110010xxxxxx11111xxxxxxxxxx
fdot. */
- return 3403;
+ return 3437;
}
else
{
@@ -26894,7 +27268,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110110xxxxxx11111xxxxxxxxxx
fmlalb. */
- return 3405;
+ return 3439;
}
else
{
@@ -26902,7 +27276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110110xxxxxx11111xxxxxxxxxx
fmlalt. */
- return 3406;
+ return 3440;
}
}
}
@@ -27176,7 +27550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110110xxxxx0x1111xxxxxxxxxx
fscale. */
- return 3345;
+ return 3379;
}
}
}
@@ -28568,7 +28942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110001xxxx1011110xxxxxxxxxx
f1cvtl. */
- return 3338;
+ return 3372;
}
else
{
@@ -28576,7 +28950,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110001xxxx1011110xxxxxxxxxx
f1cvtl2. */
- return 3339;
+ return 3373;
}
}
else
@@ -28587,7 +28961,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110101xxxx1011110xxxxxxxxxx
bf1cvtl. */
- return 3334;
+ return 3368;
}
else
{
@@ -28595,7 +28969,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110101xxxx1011110xxxxxxxxxx
bf1cvtl2. */
- return 3335;
+ return 3369;
}
}
}
@@ -28609,7 +28983,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110011xxxx1011110xxxxxxxxxx
f2cvtl. */
- return 3340;
+ return 3374;
}
else
{
@@ -28617,7 +28991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110011xxxx1011110xxxxxxxxxx
f2cvtl2. */
- return 3341;
+ return 3375;
}
}
else
@@ -28628,7 +29002,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110111xxxx1011110xxxxxxxxxx
bf2cvtl. */
- return 3336;
+ return 3370;
}
else
{
@@ -28636,7 +29010,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110111xxxx1011110xxxxxxxxxx
bf2cvtl2. */
- return 3337;
+ return 3371;
}
}
}
@@ -30635,7 +31009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1011101x1xxxxx111111xxxxxxxxxx
fscale. */
- return 3346;
+ return 3380;
}
}
}
@@ -32351,7 +32725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111100xxxxxx0000x0xxxxxxxxxx
fdot. */
- return 3402;
+ return 3436;
}
else
{
@@ -32381,7 +32755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111101xxxxxx0000x0xxxxxxxxxx
fdot. */
- return 3404;
+ return 3438;
}
else
{
@@ -32391,7 +32765,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x000111111xxxxxx0000x0xxxxxxxxxx
fmlalb. */
- return 3407;
+ return 3441;
}
else
{
@@ -32399,7 +32773,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x100111111xxxxxx0000x0xxxxxxxxxx
fmlalt. */
- return 3408;
+ return 3442;
}
}
}
@@ -32941,7 +33315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x010111100xxxxxx1000x0xxxxxxxxxx
fmlallbb. */
- return 3413;
+ return 3447;
}
else
{
@@ -32949,7 +33323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x110111100xxxxxx1000x0xxxxxxxxxx
fmlalltb. */
- return 3415;
+ return 3449;
}
}
else
@@ -32980,7 +33354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101111x1xxxxxx1000x0xxxxxxxxxx
fmlallbt. */
- return 3414;
+ return 3448;
}
else
{
@@ -32988,7 +33362,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101111x1xxxxxx1000x0xxxxxxxxxx
fmlalltt. */
- return 3416;
+ return 3450;
}
}
}
@@ -34461,27 +34835,29 @@ aarch64_extract_operand (const aarch64_operand *self,
case 214:
case 215:
case 216:
- case 225:
case 226:
case 227:
case 228:
case 229:
- case 240:
- case 244:
- case 249:
- case 257:
+ case 230:
+ case 241:
+ case 245:
+ case 250:
case 258:
case 259:
- case 266:
+ case 260:
case 267:
case 268:
case 269:
+ case 270:
+ case 304:
+ case 308:
return aarch64_ext_regno (self, info, code, inst, errors);
case 6:
case 119:
case 120:
- case 305:
- case 308:
+ case 314:
+ case 317:
return aarch64_ext_none (self, info, code, inst, errors);
case 11:
return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
@@ -34501,17 +34877,16 @@ aarch64_extract_operand (const aarch64_operand *self,
case 37:
case 38:
case 39:
- case 310:
+ case 319:
return aarch64_ext_reglane (self, info, code, inst, errors);
case 40:
case 41:
case 42:
- case 230:
case 231:
- case 234:
- case 270:
+ case 232:
+ case 235:
case 271:
- case 286:
+ case 272:
case 287:
case 288:
case 289:
@@ -34528,6 +34903,13 @@ aarch64_extract_operand (const aarch64_operand *self,
case 300:
case 301:
case 302:
+ case 303:
+ case 305:
+ case 306:
+ case 307:
+ case 309:
+ case 310:
+ case 311:
return aarch64_ext_simple_index (self, info, code, inst, errors);
case 43:
return aarch64_ext_reglist (self, info, code, inst, errors);
@@ -34578,14 +34960,14 @@ aarch64_extract_operand (const aarch64_operand *self,
case 210:
case 211:
case 212:
- case 272:
- case 303:
- case 304:
- case 306:
- case 307:
- case 309:
- case 314:
+ case 273:
+ case 312:
+ case 313:
case 315:
+ case 316:
+ case 318:
+ case 323:
+ case 324:
return aarch64_ext_imm (self, info, code, inst, errors);
case 52:
case 53:
@@ -34736,7 +35118,7 @@ aarch64_extract_operand (const aarch64_operand *self,
case 201:
case 202:
case 203:
- case 285:
+ case 286:
return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
case 217:
case 218:
@@ -34748,67 +35130,69 @@ aarch64_extract_operand (const aarch64_operand *self,
case 223:
case 224:
return aarch64_ext_sme_za_vrs2 (self, info, code, inst, errors);
- case 232:
+ case 225:
+ return aarch64_ext_sme_za_tile_to_vec (self, info, code, inst, errors);
case 233:
- case 235:
+ case 234:
case 236:
case 237:
case 238:
case 239:
+ case 240:
return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
- case 241:
case 242:
- return aarch64_ext_sve_index (self, info, code, inst, errors);
case 243:
- case 245:
- case 265:
- return aarch64_ext_sve_reglist (self, info, code, inst, errors);
+ return aarch64_ext_sve_index (self, info, code, inst, errors);
+ case 244:
case 246:
+ case 266:
+ return aarch64_ext_sve_reglist (self, info, code, inst, errors);
case 247:
- case 250:
+ case 248:
case 251:
case 252:
case 253:
case 254:
- case 264:
- return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors);
- case 248:
case 255:
+ case 265:
+ return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors);
+ case 249:
case 256:
+ case 257:
return aarch64_ext_sve_strided_reglist (self, info, code, inst, errors);
- case 260:
- case 262:
- case 273:
- return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors);
case 261:
case 263:
- return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors);
case 274:
+ return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors);
+ case 262:
+ case 264:
+ return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors);
case 275:
case 276:
case 277:
case 278:
case 279:
case 280:
- return aarch64_ext_sme_za_array (self, info, code, inst, errors);
case 281:
- return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors);
+ return aarch64_ext_sme_za_array (self, info, code, inst, errors);
case 282:
- return aarch64_ext_sme_sm_za (self, info, code, inst, errors);
+ return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors);
case 283:
- return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors);
+ return aarch64_ext_sme_sm_za (self, info, code, inst, errors);
case 284:
+ return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors);
+ case 285:
return aarch64_ext_plain_shrimm (self, info, code, inst, errors);
- case 311:
- case 312:
- case 313:
+ case 320:
+ case 321:
+ case 322:
return aarch64_ext_x0_to_x30 (self, info, code, inst, errors);
- case 316:
- case 317:
- case 318:
- case 319:
+ case 325:
+ case 326:
+ case 327:
+ case 328:
return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors);
- case 320:
+ case 329:
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 d3f38c3..6e94570 100644
--- a/opcodes/aarch64-dis.c
+++ b/opcodes/aarch64-dis.c
@@ -1956,6 +1956,55 @@ aarch64_ext_sve_float_zero_one (const aarch64_operand *self,
return true;
}
+/* Decode SME instruction such as MOVZA ZA tile slice to vector. */
+bool
+aarch64_ext_sme_za_tile_to_vec (const aarch64_operand *self,
+ aarch64_opnd_info *info, aarch64_insn code,
+ const aarch64_inst *inst ATTRIBUTE_UNUSED,
+ aarch64_operand_error *errors ATTRIBUTE_UNUSED)
+{
+ aarch64_insn Qsize; /* fields Q:S:size. */
+ int fld_v = extract_field (self->fields[0], code, 0);
+ int fld_rv = extract_field (self->fields[1], code, 0);
+ int fld_zan_imm = extract_field (FLD_imm4_5, code, 0);
+
+ Qsize = extract_fields (inst->value, 0, 2, FLD_SME_size_22, FLD_SME_Q);
+ switch (Qsize)
+ {
+ case 0x0:
+ info->qualifier = AARCH64_OPND_QLF_S_B;
+ info->indexed_za.regno = 0;
+ info->indexed_za.index.imm = fld_zan_imm;
+ break;
+ case 0x2:
+ info->qualifier = AARCH64_OPND_QLF_S_H;
+ info->indexed_za.regno = fld_zan_imm >> 3;
+ info->indexed_za.index.imm = fld_zan_imm & 0x07;
+ break;
+ case 0x4:
+ info->qualifier = AARCH64_OPND_QLF_S_S;
+ info->indexed_za.regno = fld_zan_imm >> 2;
+ info->indexed_za.index.imm = fld_zan_imm & 0x03;
+ break;
+ case 0x6:
+ info->qualifier = AARCH64_OPND_QLF_S_D;
+ info->indexed_za.regno = fld_zan_imm >> 1;
+ info->indexed_za.index.imm = fld_zan_imm & 0x01;
+ break;
+ case 0x7:
+ info->qualifier = AARCH64_OPND_QLF_S_Q;
+ info->indexed_za.regno = fld_zan_imm;
+ break;
+ default:
+ return false;
+ }
+
+ info->indexed_za.index.regno = fld_rv + 12;
+ info->indexed_za.v = fld_v;
+
+ return true;
+}
+
/* Decode ZA tile vector, vector indicator, vector selector, qualifier and
immediate on numerous SME instruction fields such as MOVA. */
bool
@@ -3397,6 +3446,12 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst)
i = extract_field (FLD_SVE_tszh, inst->value, 0);
goto sve_shift;
+ case sme_size_12_bh:
+ variant = extract_field (FLD_S, inst->value, 0);
+ if (variant > 1)
+ return false;
+ break;
+
case sme_size_12_bhs:
variant = extract_field (FLD_SME_size_12, inst->value, 0);
if (variant >= 3)
diff --git a/opcodes/aarch64-dis.h b/opcodes/aarch64-dis.h
index a71524f..2ffcef0 100644
--- a/opcodes/aarch64-dis.h
+++ b/opcodes/aarch64-dis.h
@@ -128,6 +128,7 @@ AARCH64_DECL_OPD_EXTRACTOR (ext_sve_shlimm);
AARCH64_DECL_OPD_EXTRACTOR (ext_sve_shrimm);
AARCH64_DECL_OPD_EXTRACTOR (ext_sme_za_vrs1);
AARCH64_DECL_OPD_EXTRACTOR (ext_sme_za_vrs2);
+AARCH64_DECL_OPD_EXTRACTOR (ext_sme_za_tile_to_vec);
AARCH64_DECL_OPD_EXTRACTOR (ext_sme_za_hv_tiles);
AARCH64_DECL_OPD_EXTRACTOR (ext_sme_za_hv_tiles_range);
AARCH64_DECL_OPD_EXTRACTOR (ext_sme_za_list);
diff --git a/opcodes/aarch64-gen.c b/opcodes/aarch64-gen.c
index 02dcde1..6ca0932 100644
--- a/opcodes/aarch64-gen.c
+++ b/opcodes/aarch64-gen.c
@@ -123,6 +123,8 @@ get_aarch64_opcode (const opcode_node *opcode_node)
return &index2table (opcode_node->index)[real_index (opcode_node->index)];
}
+static bool iclass_has_subclasses_p[last_iclass];
+
static void
read_table (const struct aarch64_opcode* table)
{
@@ -181,6 +183,9 @@ read_table (const struct aarch64_opcode* table)
++errors;
}
+ if (ent->flags & F_SUBCLASS)
+ iclass_has_subclasses_p[ent->iclass] = true;
+
*new_ent = new_opcode_node ();
(*new_ent)->opcode = ent->opcode;
(*new_ent)->mask = ent->mask;
@@ -188,6 +193,20 @@ read_table (const struct aarch64_opcode* table)
new_ent = &((*new_ent)->next);
} while ((++ent)->name);
+ ent = table;
+ do
+ {
+ /* If a subclass is set for one insn of an iclass, every insn of that
+ iclass must have non-zero subclass field. */
+ if ((iclass_has_subclasses_p[ent->iclass] && !(ent->flags & F_SUBCLASS))
+ || (!iclass_has_subclasses_p[ent->iclass] && (ent->flags & F_SUBCLASS)))
+ {
+ fprintf (stderr, "%s: unexpected subclass\n", ent->name);
+ ++errors;
+ }
+ ent++;
+ } while (ent->name);
+
if (errors)
{
fprintf (stderr, "%u errors, exiting\n", errors);
diff --git a/opcodes/aarch64-opc-2.c b/opcodes/aarch64-opc-2.c
index d42fea4..953ee11 100644
--- a/opcodes/aarch64-opc-2.c
+++ b/opcodes/aarch64-opc-2.c
@@ -249,6 +249,7 @@ const struct aarch64_operand aarch64_operands[] =
{AARCH64_OPND_CLASS_ZA_ACCESS, "SME_ZA_array_vrsh_2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_V,FLD_SME_Rv,FLD_ZAn,FLD_ol}, "1 bit ZA tile"},
{AARCH64_OPND_CLASS_ZA_ACCESS, "SME_ZA_array_vrss_2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_V,FLD_SME_Rv,FLD_off2}, "2 bit ZA tile"},
{AARCH64_OPND_CLASS_ZA_ACCESS, "SME_ZA_array_vrsd_2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_V,FLD_SME_Rv,FLD_ZAn_3}, "3 bit ZA tile"},
+ {AARCH64_OPND_CLASS_ZA_ACCESS, "SME_ZA_ARRAY4", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_V,FLD_SME_Rv}, "ZA tile to vector register"},
{AARCH64_OPND_CLASS_SVE_REG, "SVE_Za_5", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Za_5}, "an SVE vector register"},
{AARCH64_OPND_CLASS_SVE_REG, "SVE_Za_16", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Za_16}, "an SVE vector register"},
{AARCH64_OPND_CLASS_SVE_REG, "SVE_Zd", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zd}, "an SVE vector register"},
@@ -327,6 +328,14 @@ const struct aarch64_operand aarch64_operands[] =
{AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX3_14", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm3_14}, "an indexed SVE vector register"},
{AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX3_15", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm3_15}, "an indexed SVE vector register"},
{AARCH64_OPND_CLASS_SVE_REG, "SME_Zn_INDEX4_14", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm4_14}, "an indexed SVE vector register"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zn0_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn}, "an SVE vector register with option zero index"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zn1_17_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm17_1}, "an SVE vector register with optional one bit index"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zn2_18_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_imm17_2}, "an SVE vector register with optional two bit index"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zn3_22_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zn, FLD_SVE_i3h, FLD_imm17_2}, "an SVE vector register with optional three bit index"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zd0_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zd}, "an SVE vector register with option zero index"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zd1_17_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zd, FLD_imm17_1}, "an SVE vector register with optional one bit index"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zd2_18_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zd, FLD_imm17_2}, "an SVE vector register with optional two bit index"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SVE_Zd3_22_INDEX", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_Zd, FLD_SVE_i3h, FLD_imm17_2}, "an SVE vector register with optional three bit index"},
{AARCH64_OPND_CLASS_IMMEDIATE, "SME_VLxN_10", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_VL_10}, "VLx2 or VLx4"},
{AARCH64_OPND_CLASS_IMMEDIATE, "SME_VLxN_13", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_VL_13}, "VLx2 or VLx4"},
{AARCH64_OPND_CLASS_SYSTEM, "SME_ZT0", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "ZT0"},
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index 0b09055..b71d354 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -387,6 +387,8 @@ const aarch64_field fields[] =
{ 5, 14 }, /* imm14: in test bit and branch instructions. */
{ 0, 16 }, /* imm16_0: in udf instruction. */
{ 5, 16 }, /* imm16_5: in exception instructions. */
+ { 17, 1 }, /* imm17_1: in 1 bit element index. */
+ { 17, 2 }, /* imm17_2: in 2 bits element index. */
{ 5, 19 }, /* imm19: e.g. in CBZ. */
{ 0, 26 }, /* imm26: in unconditional branch instructions. */
{ 16, 3 }, /* immb: in advsimd shift by immediate instructions. */
@@ -431,7 +433,11 @@ const aarch64_field fields[] =
{ 6, 1 }, /* ZAn: name of the bit encoded ZA tile. */
{ 12, 4 }, /* opc2: in rcpc3 ld/st inst deciding the pre/post-index. */
{ 30, 2 }, /* rcpc3_size: in rcpc3 ld/st, field controls Rt/Rt2 width. */
- { 5, 1 }, /* FLD_brbop: used in BRB to mean IALL or INJ. */
+ { 5, 1 }, /* FLD_brbop: used in BRB to mean IALL or INJ. */
+ { 8, 1 }, /* ZA8_1: name of the 1 bit encoded ZA tile ZA0-ZA1. */
+ { 7, 2 }, /* ZA7_2: name of the 2 bits encoded ZA tile ZA0-ZA3. */
+ { 6, 3 }, /* ZA6_3: name of the 3 bits encoded ZA tile ZA0-ZA7. */
+ { 5, 4 }, /* ZA5_4: name of the 4 bits encoded ZA tile ZA0-ZA15. */
};
enum aarch64_operand_class
@@ -1623,13 +1629,14 @@ check_reglist (const aarch64_opnd_info *opnd,
- an initial immediate offset that is a multiple of RANGE_SIZE
in the range [0, MAX_VALUE * RANGE_SIZE]
- - a vector group size of GROUP_SIZE. */
+ - a vector group size of GROUP_SIZE.
+ - STATUS_VG for cases where VGx2 or VGx4 is mandatory. */
static bool
check_za_access (const aarch64_opnd_info *opnd,
aarch64_operand_error *mismatch_detail, int idx,
int min_wreg, int max_value, unsigned int range_size,
- int group_size)
+ int group_size, bool status_vg)
{
if (!value_in_range_p (opnd->indexed_za.index.regno, min_wreg, min_wreg + 3))
{
@@ -1681,8 +1688,8 @@ check_za_access (const aarch64_opnd_info *opnd,
}
/* The vector group specifier is optional in assembly code. */
- if (opnd->indexed_za.group_size != 0
- && opnd->indexed_za.group_size != group_size)
+ if (opnd->indexed_za.group_size != group_size
+ && (status_vg || opnd->indexed_za.group_size != 0 ))
{
set_invalid_vg_size (mismatch_detail, idx, group_size);
return false;
@@ -1874,6 +1881,14 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
case AARCH64_OPND_SME_Zn_INDEX3_14:
case AARCH64_OPND_SME_Zn_INDEX3_15:
case AARCH64_OPND_SME_Zn_INDEX4_14:
+ case AARCH64_OPND_SVE_Zn0_INDEX:
+ case AARCH64_OPND_SVE_Zn1_17_INDEX:
+ case AARCH64_OPND_SVE_Zn2_18_INDEX:
+ case AARCH64_OPND_SVE_Zn3_22_INDEX:
+ case AARCH64_OPND_SVE_Zd0_INDEX:
+ case AARCH64_OPND_SVE_Zd1_17_INDEX:
+ case AARCH64_OPND_SVE_Zd2_18_INDEX:
+ case AARCH64_OPND_SVE_Zd3_22_INDEX:
size = get_operand_fields_width (get_operand_from_code (type)) - 5;
if (!check_reglane (opnd, mismatch_detail, idx, "z", 0, 31,
0, (1 << size) - 1))
@@ -1909,7 +1924,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
size = aarch64_get_qualifier_esize (opnd->qualifier);
max_value = 16 / size - 1;
if (!check_za_access (opnd, mismatch_detail, idx,
- 12, max_value, 1, 0))
+ 12, max_value, 1, 0, get_opcode_dependent_value (opcode)))
return 0;
break;
@@ -1979,87 +1994,108 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
size = aarch64_get_qualifier_esize (opnd->qualifier);
max_value = 16 / size - 1;
if (!check_za_access (opnd, mismatch_detail, idx, 12, max_value, 1,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_off4:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 15, 1,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_off3_0:
case AARCH64_OPND_SME_ZA_array_off3_5:
if (!check_za_access (opnd, mismatch_detail, idx, 8, 7, 1,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_off1x4:
if (!check_za_access (opnd, mismatch_detail, idx, 8, 1, 4,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_off2x2:
if (!check_za_access (opnd, mismatch_detail, idx, 8, 3, 2,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_off2x4:
if (!check_za_access (opnd, mismatch_detail, idx, 8, 3, 4,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_off3x2:
if (!check_za_access (opnd, mismatch_detail, idx, 8, 7, 2,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_vrsb_1:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 7, 2,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_vrsh_1:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 3, 2,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_vrss_1:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 1, 2,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_vrsd_1:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 0, 2,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_vrsb_2:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 3, 4,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_vrsh_2:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 1, 4,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
+ return 0;
+ break;
+
+ case AARCH64_OPND_SME_ZA_ARRAY4:
+ if (!check_za_access (opnd, mismatch_detail, idx, 12, 15, 1,
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
case AARCH64_OPND_SME_ZA_array_vrss_2:
case AARCH64_OPND_SME_ZA_array_vrsd_2:
if (!check_za_access (opnd, mismatch_detail, idx, 12, 0, 4,
- get_opcode_dependent_value (opcode)))
+ get_opcode_dependent_value (opcode),
+ get_opcode_dependent_vg_status (opcode)))
return 0;
break;
@@ -2070,8 +2106,8 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
max_value = 16 / num / size;
if (max_value > 0)
max_value -= 1;
- if (!check_za_access (opnd, mismatch_detail, idx,
- 12, max_value, num, 0))
+ if (!check_za_access (opnd, mismatch_detail, idx, 12, max_value, num,
+ 0, get_opcode_dependent_value (opcode)))
return 0;
break;
@@ -4248,11 +4284,11 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
case AARCH64_OPND_SVE_Zt:
case AARCH64_OPND_SME_Zm:
if (opnd->qualifier == AARCH64_OPND_QLF_NIL)
- snprintf (buf, size, "%s", style_reg (styler, "z%d", opnd->reg.regno));
+ snprintf (buf, size, "%s", style_reg (styler, "z%d", opnd->reg.regno));
else
- snprintf (buf, size, "%s",
- style_reg (styler, "z%d.%s", opnd->reg.regno,
- aarch64_get_qualifier_name (opnd->qualifier)));
+ snprintf (buf, size, "%s",
+ style_reg (styler, "z%d.%s", opnd->reg.regno,
+ aarch64_get_qualifier_name (opnd->qualifier)));
break;
case AARCH64_OPND_SVE_ZnxN:
@@ -4307,6 +4343,22 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
style_imm (styler, "%" PRIi64, opnd->reglane.index));
break;
+ case AARCH64_OPND_SVE_Zn0_INDEX:
+ case AARCH64_OPND_SVE_Zn1_17_INDEX:
+ case AARCH64_OPND_SVE_Zn2_18_INDEX:
+ case AARCH64_OPND_SVE_Zn3_22_INDEX:
+ case AARCH64_OPND_SVE_Zd0_INDEX:
+ case AARCH64_OPND_SVE_Zd1_17_INDEX:
+ case AARCH64_OPND_SVE_Zd2_18_INDEX:
+ case AARCH64_OPND_SVE_Zd3_22_INDEX:
+ if (opnd->reglane.index == 0)
+ snprintf (buf, size, "%s", style_reg (styler, "z%d", opnd->reg.regno));
+ else
+ snprintf (buf, size, "%s[%s]",
+ style_reg (styler, "z%d", opnd->reglane.regno),
+ style_imm (styler, "%" PRIi64, opnd->reglane.index));
+ break;
+
case AARCH64_OPND_SME_ZAda_1b:
case AARCH64_OPND_SME_ZAda_2b:
case AARCH64_OPND_SME_ZAda_3b:
@@ -4382,6 +4434,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
case AARCH64_OPND_SME_ZA_array_vrsh_2:
case AARCH64_OPND_SME_ZA_array_vrss_2:
case AARCH64_OPND_SME_ZA_array_vrsd_2:
+ case AARCH64_OPND_SME_ZA_ARRAY4:
snprintf (buf, size, "%s [%s, %s%s%s]",
style_reg (styler, "za%d%c%s%s",
opnd->indexed_za.regno,
diff --git a/opcodes/aarch64-opc.h b/opcodes/aarch64-opc.h
index e97ea5d..b3ef440 100644
--- a/opcodes/aarch64-opc.h
+++ b/opcodes/aarch64-opc.h
@@ -191,6 +191,8 @@ enum aarch64_field_kind
FLD_imm14,
FLD_imm16_0,
FLD_imm16_5,
+ FLD_imm17_1,
+ FLD_imm17_2,
FLD_imm19,
FLD_imm26,
FLD_immb,
@@ -233,6 +235,10 @@ enum aarch64_field_kind
FLD_opc2,
FLD_rcpc3_size,
FLD_brbop,
+ FLD_ZA8_1,
+ FLD_ZA7_2,
+ FLD_ZA6_3,
+ FLD_ZA5_4,
};
/* Field description. */
diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
index 3e68035..6a554d9 100644
--- a/opcodes/aarch64-sys-regs.def
+++ b/opcodes/aarch64-sys-regs.def
@@ -519,6 +519,7 @@
SYSREG ("id_aa64afr1_el1", CPENC (3,0,0,5,5), F_REG_READ, AARCH64_NO_FEATURES)
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_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)
@@ -573,6 +574,7 @@
SYSREG ("mdrar_el1", CPENC (2,0,1,0,0), F_REG_READ, AARCH64_NO_FEATURES)
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)
@@ -951,6 +953,7 @@
SYSREG ("spmrootcr_el3", CPENC (2,6,9,14,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
SYSREG ("spmscr_el1", CPENC (2,7,9,14,7), F_ARCHEXT, AARCH64_FEATURE (SPMU))
SYSREG ("spmselr_el0", CPENC (2,3,9,12,5), F_ARCHEXT, AARCH64_FEATURE (SPMU))
+ SYSREG ("spmzr_el0", CPENC (2,3,9,12,4), F_ARCHEXT, AARCH64_FEATURE (SPMU2))
SYSREG ("spsel", CPENC (3,0,4,2,0), 0, AARCH64_NO_FEATURES)
SYSREG ("spsr_abt", CPENC (3,4,4,3,1), 0, AARCH64_NO_FEATURES)
SYSREG ("spsr_el1", CPENC (3,0,4,0,0), 0, AARCH64_NO_FEATURES)
@@ -1229,6 +1232,7 @@
SYSREG ("vbar_el2", CPENC (3,4,12,0,0), 0, AARCH64_NO_FEATURES)
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 ("vmpidr_el2", CPENC (3,4,0,0,5), 0, AARCH64_NO_FEATURES)
@@ -1236,6 +1240,7 @@
SYSREG ("vpidr_el2", CPENC (3,4,0,0,0), 0, AARCH64_NO_FEATURES)
SYSREG ("vsctlr_el2", CPENC (3,4,2,0,0), F_ARCHEXT, AARCH64_FEATURE (V8R))
SYSREG ("vsesr_el2", CPENC (3,4,5,2,3), F_ARCHEXT, AARCH64_FEATURE (RAS))
+ SYSREG ("vsesr_el3", CPENC (3,6,5,2,3), F_ARCHEXT, AARCH64_FEATURE (E3DSE))
SYSREG ("vstcr_el2", CPENC (3,4,2,6,2), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
SYSREG ("vsttbr_el2", CPENC (3,4,2,6,0), F_ARCHEXT, AARCH64_FEATURES (2, V8A, V8_4A))
SYSREG ("vtcr_el2", CPENC (3,4,2,1,2), 0, AARCH64_NO_FEATURES)
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index 7ef9cea..172c9a4 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -1567,6 +1567,10 @@
QLF3(S_B,P_Z,S_B), \
QLF3(S_B,P_M,S_B), \
}
+#define OP_SVE_BU \
+{ \
+ QLF2(S_B,NIL), \
+}
#define OP_SVE_BUB \
{ \
QLF3(S_B,NIL,S_B), \
@@ -1602,6 +1606,10 @@
{ \
QLF3(S_B,P_Z,NIL), \
}
+#define OP_SVE_D \
+{ \
+ QLF1(S_D), \
+}
#define OP_SVE_DD \
{ \
QLF2(S_D,S_D), \
@@ -1869,9 +1877,21 @@
{ \
QLF3(S_S,P_Z,NIL), \
}
-#define OP_SVE_UB \
-{ \
- QLF2(NIL,S_B), \
+#define OP_SVE_UB \
+{ \
+ QLF2(NIL,S_B), \
+}
+#define OP_SVE_UD \
+{ \
+ QLF2(NIL,S_D), \
+}
+#define OP_SVE_UH \
+{ \
+ QLF2(NIL,S_H), \
+}
+#define OP_SVE_US \
+{ \
+ QLF2(NIL,S_S), \
}
#define OP_SVE_UUD \
{ \
@@ -2068,6 +2088,11 @@
{ \
QLF3(S_B,NIL,NIL), \
}
+#define OP_SVE_VUU_BH \
+{ \
+ QLF3(S_B,NIL,NIL), \
+ QLF3(S_H,NIL,NIL), \
+}
#define OP_SVE_VUU_BHS \
{ \
QLF3(S_B,NIL,NIL), \
@@ -2248,6 +2273,10 @@
QLF3(S_H,S_S,S_S), \
QLF3(S_S,S_D,S_D), \
}
+#define OP_SVE_VV_D \
+{ \
+ QLF2(S_D, S_D) \
+}
#define OP_SVE_VV_BHS_HSD \
{ \
QLF2(S_B,S_H), \
@@ -3205,22 +3234,22 @@ const struct aarch64_opcode aarch64_opcode_table[] =
CORE_INSN ("sbcs", 0x7a000000, 0x7fe0fc00, addsub_carry, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_HAS_ALIAS | F_SF),
CORE_INSN ("ngcs", 0x7a0003e0, 0x7fe0ffe0, addsub_carry, 0, OP2 (Rd, Rm), QL_I2SAME, F_ALIAS | F_SF),
/* Add/subtract (extended register). */
- CORE_INSN ("add", 0x0b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd_SP, Rn_SP, Rm_EXT), QL_I3_EXT, F_SF),
- CORE_INSN ("adds", 0x2b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd, Rn_SP, Rm_EXT), QL_I3_EXT, F_HAS_ALIAS | F_SF),
- CORE_INSN ("cmn", 0x2b20001f, 0x7fe0001f, addsub_ext, 0, OP2 (Rn_SP, Rm_EXT), QL_I2_EXT, F_ALIAS | F_SF),
- CORE_INSN ("sub", 0x4b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd_SP, Rn_SP, Rm_EXT), QL_I3_EXT, F_SF),
- CORE_INSN ("subs", 0x6b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd, Rn_SP, Rm_EXT), QL_I3_EXT, F_HAS_ALIAS | F_SF),
- CORE_INSN ("cmp", 0x6b20001f, 0x7fe0001f, addsub_ext, 0, OP2 (Rn_SP, Rm_EXT), QL_I2_EXT, F_ALIAS | F_SF),
+ CORE_INSN ("add", 0x0b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd_SP, Rn_SP, Rm_EXT), QL_I3_EXT, F_ARITH_ADD | F_SF),
+ CORE_INSN ("adds", 0x2b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd, Rn_SP, Rm_EXT), QL_I3_EXT, F_ARITH_ADD | F_HAS_ALIAS | F_SF),
+ CORE_INSN ("cmn", 0x2b20001f, 0x7fe0001f, addsub_ext, 0, OP2 (Rn_SP, Rm_EXT), QL_I2_EXT, F_SUBCLASS_OTHER | F_ALIAS | F_SF),
+ CORE_INSN ("sub", 0x4b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd_SP, Rn_SP, Rm_EXT), QL_I3_EXT, F_ARITH_SUB | F_SF),
+ CORE_INSN ("subs", 0x6b200000, 0x7fe00000, addsub_ext, 0, OP3 (Rd, Rn_SP, Rm_EXT), QL_I3_EXT, F_ARITH_SUB | F_HAS_ALIAS | F_SF),
+ CORE_INSN ("cmp", 0x6b20001f, 0x7fe0001f, addsub_ext, 0, OP2 (Rn_SP, Rm_EXT), QL_I2_EXT, F_SUBCLASS_OTHER | F_ALIAS | F_SF),
/* Add/subtract (immediate). */
- CORE_INSN ("add", 0x11000000, 0x7f000000, addsub_imm, OP_ADD, OP3 (Rd_SP, Rn_SP, AIMM), QL_R2NIL, F_HAS_ALIAS | F_SF),
- CORE_INSN ("mov", 0x11000000, 0x7ffffc00, addsub_imm, 0, OP2 (Rd_SP, Rn_SP), QL_I2SP, F_ALIAS | F_SF),
- CORE_INSN ("adds", 0x31000000, 0x7f000000, addsub_imm, 0, OP3 (Rd, Rn_SP, AIMM), QL_R2NIL, F_HAS_ALIAS | F_SF),
- CORE_INSN ("cmn", 0x3100001f, 0x7f00001f, addsub_imm, 0, OP2 (Rn_SP, AIMM), QL_R1NIL, F_ALIAS | F_SF),
- CORE_INSN ("sub", 0x51000000, 0x7f000000, addsub_imm, 0, OP3 (Rd_SP, Rn_SP, AIMM), QL_R2NIL, F_SF),
- CORE_INSN ("subs", 0x71000000, 0x7f000000, addsub_imm, 0, OP3 (Rd, Rn_SP, AIMM), QL_R2NIL, F_HAS_ALIAS | F_SF),
- CORE_INSN ("cmp", 0x7100001f, 0x7f00001f, addsub_imm, 0, OP2 (Rn_SP, AIMM), QL_R1NIL, F_ALIAS | F_SF),
- MEMTAG_INSN ("addg", 0x91800000, 0xffc0c000, addsub_imm, OP4 (Rd_SP, Rn_SP, UIMM10, UIMM4_ADDG), QL_ADDG, 0),
- MEMTAG_INSN ("subg", 0xd1800000, 0xffc0c000, addsub_imm, OP4 (Rd_SP, Rn_SP, UIMM10, UIMM4_ADDG), QL_ADDG, 0),
+ CORE_INSN ("add", 0x11000000, 0x7f000000, addsub_imm, OP_ADD, OP3 (Rd_SP, Rn_SP, AIMM), QL_R2NIL, F_ARITH_ADD | F_HAS_ALIAS | F_SF),
+ CORE_INSN ("mov", 0x11000000, 0x7ffffc00, addsub_imm, 0, OP2 (Rd_SP, Rn_SP), QL_I2SP, F_ARITH_MOV | F_ALIAS | F_SF),
+ CORE_INSN ("adds", 0x31000000, 0x7f000000, addsub_imm, 0, OP3 (Rd, Rn_SP, AIMM), QL_R2NIL, F_ARITH_ADD | F_HAS_ALIAS | F_SF),
+ CORE_INSN ("cmn", 0x3100001f, 0x7f00001f, addsub_imm, 0, OP2 (Rn_SP, AIMM), QL_R1NIL, F_SUBCLASS_OTHER | F_ALIAS | F_SF),
+ CORE_INSN ("sub", 0x51000000, 0x7f000000, addsub_imm, 0, OP3 (Rd_SP, Rn_SP, AIMM), QL_R2NIL, F_ARITH_SUB | F_SF),
+ CORE_INSN ("subs", 0x71000000, 0x7f000000, addsub_imm, 0, OP3 (Rd, Rn_SP, AIMM), QL_R2NIL, F_ARITH_SUB | F_HAS_ALIAS | F_SF),
+ CORE_INSN ("cmp", 0x7100001f, 0x7f00001f, addsub_imm, 0, OP2 (Rn_SP, AIMM), QL_R1NIL, F_SUBCLASS_OTHER | F_ALIAS | F_SF),
+ MEMTAG_INSN ("addg", 0x91800000, 0xffc0c000, addsub_imm, OP4 (Rd_SP, Rn_SP, UIMM10, UIMM4_ADDG), QL_ADDG, F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("subg", 0xd1800000, 0xffc0c000, addsub_imm, OP4 (Rd_SP, Rn_SP, UIMM10, UIMM4_ADDG), QL_ADDG, F_SUBCLASS_OTHER),
/* Add/subtract (shifted register). */
CORE_INSN ("add", 0x0b000000, 0x7f200000, addsub_shift, 0, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_SF),
CORE_INSN ("adds", 0x2b000000, 0x7f200000, addsub_shift, 0, OP3 (Rd, Rn, Rm_SFT), QL_I3SAMER, F_HAS_ALIAS | F_SF),
@@ -3863,26 +3892,26 @@ const struct aarch64_opcode aarch64_opcode_table[] =
CORE_INSN ("lsl", 0x53000000, 0x7f800000, bitfield, OP_LSL_IMM, OP3 (Rd, Rn, IMM), QL_SHIFT, F_ALIAS | F_P2 | F_CONV),
CORE_INSN ("lsr", 0x53000000, 0x7f800000, bitfield, OP_LSR_IMM, OP3 (Rd, Rn, IMM), QL_SHIFT, F_ALIAS | F_P2 | F_CONV),
/* Unconditional branch (immediate). */
- CORE_INSN ("b", 0x14000000, 0xfc000000, branch_imm, OP_B, OP1 (ADDR_PCREL26), QL_PCREL_26, 0),
- CORE_INSN ("bl", 0x94000000, 0xfc000000, branch_imm, OP_BL, OP1 (ADDR_PCREL26), QL_PCREL_26, 0),
+ CORE_INSN ("b", 0x14000000, 0xfc000000, branch_imm, OP_B, OP1 (ADDR_PCREL26), QL_PCREL_26, F_SUBCLASS_OTHER),
+ CORE_INSN ("bl", 0x94000000, 0xfc000000, branch_imm, OP_BL, OP1 (ADDR_PCREL26), QL_PCREL_26, F_BRANCH_CALL),
/* Unconditional branch (register). */
- CORE_INSN ("br", 0xd61f0000, 0xfffffc1f, branch_reg, 0, OP1 (Rn), QL_I1X, 0),
- CORE_INSN ("blr", 0xd63f0000, 0xfffffc1f, branch_reg, 0, OP1 (Rn), QL_I1X, 0),
- CORE_INSN ("ret", 0xd65f0000, 0xfffffc1f, branch_reg, 0, OP1 (Rn), QL_I1X, F_OPD0_OPT | F_DEFAULT (30)),
- CORE_INSN ("eret", 0xd69f03e0, 0xffffffff, branch_reg, 0, OP0 (), {}, 0),
- CORE_INSN ("drps", 0xd6bf03e0, 0xffffffff, branch_reg, 0, OP0 (), {}, 0),
- PAUTH_INSN ("braa", 0xd71f0800, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, 0),
- PAUTH_INSN ("brab", 0xd71f0c00, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, 0),
- PAUTH_INSN ("blraa", 0xd73f0800, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, 0),
- PAUTH_INSN ("blrab", 0xd73f0c00, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, 0),
- PAUTH_INSN ("braaz", 0xd61f081f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, 0),
- PAUTH_INSN ("brabz", 0xd61f0c1f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, 0),
- PAUTH_INSN ("blraaz", 0xd63f081f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, 0),
- PAUTH_INSN ("blrabz", 0xd63f0c1f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, 0),
- PAUTH_INSN ("retaa", 0xd65f0bff, 0xffffffff, branch_reg, OP0 (), {}, 0),
- PAUTH_INSN ("retab", 0xd65f0fff, 0xffffffff, branch_reg, OP0 (), {}, 0),
- PAUTH_INSN ("eretaa", 0xd69f0bff, 0xffffffff, branch_reg, OP0 (), {}, 0),
- PAUTH_INSN ("eretab", 0xd69f0fff, 0xffffffff, branch_reg, OP0 (), {}, 0),
+ CORE_INSN ("br", 0xd61f0000, 0xfffffc1f, branch_reg, 0, OP1 (Rn), QL_I1X, F_SUBCLASS_OTHER),
+ CORE_INSN ("blr", 0xd63f0000, 0xfffffc1f, branch_reg, 0, OP1 (Rn), QL_I1X, F_BRANCH_CALL),
+ CORE_INSN ("ret", 0xd65f0000, 0xfffffc1f, branch_reg, 0, OP1 (Rn), QL_I1X, F_BRANCH_RET | F_OPD0_OPT | F_DEFAULT (30)),
+ CORE_INSN ("eret", 0xd69f03e0, 0xffffffff, branch_reg, 0, OP0 (), {}, F_BRANCH_RET),
+ CORE_INSN ("drps", 0xd6bf03e0, 0xffffffff, branch_reg, 0, OP0 (), {}, F_SUBCLASS_OTHER),
+ PAUTH_INSN ("braa", 0xd71f0800, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, F_SUBCLASS_OTHER),
+ PAUTH_INSN ("brab", 0xd71f0c00, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, F_SUBCLASS_OTHER),
+ PAUTH_INSN ("blraa", 0xd73f0800, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, F_BRANCH_CALL),
+ PAUTH_INSN ("blrab", 0xd73f0c00, 0xfffffc00, branch_reg, OP2 (Rn, Rd_SP), QL_I2SAMEX, F_BRANCH_CALL),
+ PAUTH_INSN ("braaz", 0xd61f081f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, F_SUBCLASS_OTHER),
+ PAUTH_INSN ("brabz", 0xd61f0c1f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, F_SUBCLASS_OTHER),
+ PAUTH_INSN ("blraaz", 0xd63f081f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, F_BRANCH_CALL),
+ PAUTH_INSN ("blrabz", 0xd63f0c1f, 0xfffffc1f, branch_reg, OP1 (Rn), QL_I1X, F_BRANCH_CALL),
+ PAUTH_INSN ("retaa", 0xd65f0bff, 0xffffffff, branch_reg, OP0 (), {}, F_BRANCH_RET),
+ PAUTH_INSN ("retab", 0xd65f0fff, 0xffffffff, branch_reg, OP0 (), {}, F_BRANCH_RET),
+ PAUTH_INSN ("eretaa", 0xd69f0bff, 0xffffffff, branch_reg, OP0 (), {}, F_BRANCH_RET),
+ PAUTH_INSN ("eretab", 0xd69f0fff, 0xffffffff, branch_reg, OP0 (), {}, F_BRANCH_RET),
/* Compare & branch (immediate). */
CORE_INSN ("cbz", 0x34000000, 0x7f000000, compbranch, 0, OP2 (Rt, ADDR_PCREL19), QL_R_PCREL, F_SF),
CORE_INSN ("cbnz", 0x35000000, 0x7f000000, compbranch, 0, OP2 (Rt, ADDR_PCREL19), QL_R_PCREL, F_SF),
@@ -3949,31 +3978,31 @@ const struct aarch64_opcode aarch64_opcode_table[] =
PAUTH_INSN ("xpaci", 0xdac143e0, 0xffffffe0, dp_1src, OP1 (Rd), QL_I1X, 0),
PAUTH_INSN ("xpacd", 0xdac147e0, 0xffffffe0, dp_1src, OP1 (Rd), QL_I1X, 0),
/* Data-processing (2 source). */
- CORE_INSN ("udiv", 0x1ac00800, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
- CORE_INSN ("sdiv", 0x1ac00c00, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF),
- CORE_INSN ("lslv", 0x1ac02000, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
- CORE_INSN ("lsl", 0x1ac02000, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
- CORE_INSN ("lsrv", 0x1ac02400, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
- CORE_INSN ("lsr", 0x1ac02400, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
- CORE_INSN ("asrv", 0x1ac02800, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
- CORE_INSN ("asr", 0x1ac02800, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
- CORE_INSN ("rorv", 0x1ac02c00, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS),
- CORE_INSN ("ror", 0x1ac02c00, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS),
- MEMTAG_INSN ("subp", 0x9ac00000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn_SP, Rm_SP), QL_I3SAMEX, 0),
- MEMTAG_INSN ("subps", 0xbac00000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn_SP, Rm_SP), QL_I3SAMEX, F_HAS_ALIAS),
- MEMTAG_INSN ("cmpp", 0xbac0001f, 0xffe0fc1f, dp_2src, OP2 (Rn_SP, Rm_SP), QL_I2SAMEX, F_ALIAS),
- MEMTAG_INSN ("irg", 0x9ac01000, 0xffe0fc00, dp_2src, OP3 (Rd_SP, Rn_SP, Rm), QL_I3SAMEX, F_OPD2_OPT | F_DEFAULT (0x1f)),
- MEMTAG_INSN ("gmi", 0x9ac01400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn_SP, Rm), QL_I3SAMEX, 0),
- PAUTH_INSN ("pacga", 0x9ac03000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm_SP), QL_I3SAMEX, 0),
+ CORE_INSN ("udiv", 0x1ac00800, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_SUBCLASS_OTHER),
+ CORE_INSN ("sdiv", 0x1ac00c00, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_SUBCLASS_OTHER),
+ CORE_INSN ("lslv", 0x1ac02000, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS | F_SUBCLASS_OTHER),
+ CORE_INSN ("lsl", 0x1ac02000, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS | F_SUBCLASS_OTHER),
+ CORE_INSN ("lsrv", 0x1ac02400, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS | F_SUBCLASS_OTHER),
+ CORE_INSN ("lsr", 0x1ac02400, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS | F_SUBCLASS_OTHER),
+ CORE_INSN ("asrv", 0x1ac02800, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS | F_SUBCLASS_OTHER),
+ CORE_INSN ("asr", 0x1ac02800, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS | F_SUBCLASS_OTHER),
+ CORE_INSN ("rorv", 0x1ac02c00, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_HAS_ALIAS | F_SUBCLASS_OTHER),
+ CORE_INSN ("ror", 0x1ac02c00, 0x7fe0fc00, dp_2src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_SF | F_ALIAS | F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("subp", 0x9ac00000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn_SP, Rm_SP), QL_I3SAMEX, F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("subps", 0xbac00000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn_SP, Rm_SP), QL_I3SAMEX, F_HAS_ALIAS | F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("cmpp", 0xbac0001f, 0xffe0fc1f, dp_2src, OP2 (Rn_SP, Rm_SP), QL_I2SAMEX, F_ALIAS | F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("irg", 0x9ac01000, 0xffe0fc00, dp_2src, OP3 (Rd_SP, Rn_SP, Rm), QL_I3SAMEX, F_OPD2_OPT | F_DEFAULT (0x1f) | F_DP_TAG_ONLY),
+ MEMTAG_INSN ("gmi", 0x9ac01400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn_SP, Rm), QL_I3SAMEX, F_SUBCLASS_OTHER),
+ PAUTH_INSN ("pacga", 0x9ac03000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm_SP), QL_I3SAMEX, F_SUBCLASS_OTHER),
/* CRC instructions. */
- _CRC_INSN ("crc32b", 0x1ac04000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
- _CRC_INSN ("crc32h", 0x1ac04400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
- _CRC_INSN ("crc32w", 0x1ac04800, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
- _CRC_INSN ("crc32x", 0x9ac04c00, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3WWX, 0),
- _CRC_INSN ("crc32cb",0x1ac05000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
- _CRC_INSN ("crc32ch",0x1ac05400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
- _CRC_INSN ("crc32cw",0x1ac05800, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, 0),
- _CRC_INSN ("crc32cx",0x9ac05c00, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3WWX, 0),
+ _CRC_INSN ("crc32b", 0x1ac04000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, F_SUBCLASS_OTHER),
+ _CRC_INSN ("crc32h", 0x1ac04400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, F_SUBCLASS_OTHER),
+ _CRC_INSN ("crc32w", 0x1ac04800, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, F_SUBCLASS_OTHER),
+ _CRC_INSN ("crc32x", 0x9ac04c00, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3WWX, F_SUBCLASS_OTHER),
+ _CRC_INSN ("crc32cb",0x1ac05000, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, F_SUBCLASS_OTHER),
+ _CRC_INSN ("crc32ch",0x1ac05400, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, F_SUBCLASS_OTHER),
+ _CRC_INSN ("crc32cw",0x1ac05800, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3SAMEW, F_SUBCLASS_OTHER),
+ _CRC_INSN ("crc32cx",0x9ac05c00, 0xffe0fc00, dp_2src, OP3 (Rd, Rn, Rm), QL_I3WWX, F_SUBCLASS_OTHER),
/* Data-processing (3 source). */
CORE_INSN ("madd", 0x1b000000, 0x7fe08000, dp_3src, 0, OP4 (Rd, Rn, Rm, Ra), QL_I4SAMER, F_HAS_ALIAS | F_SF),
CORE_INSN ("mul", 0x1b007c00, 0x7fe0fc00, dp_3src, 0, OP3 (Rd, Rn, Rm), QL_I3SAMER, F_ALIAS | F_SF),
@@ -4123,39 +4152,39 @@ const struct aarch64_opcode aarch64_opcode_table[] =
__FP_INSN ("fcsel", 0x1e200c00, 0xff200c00, floatsel, 0, OP4 (Fd, Fn, Fm, COND), QL_FP_COND, F_FPTYPE),
FF16_INSN ("fcsel", 0x1ee00c00, 0xff200c00, floatsel, OP4 (Fd, Fn, Fm, COND), QL_FP_COND_H, F_FPTYPE),
/* Load/store register (immediate indexed). */
- CORE_INSN ("strb", 0x38000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0),
- CORE_INSN ("ldrb", 0x38400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, 0),
- CORE_INSN ("ldrsb", 0x38800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R8, F_LDS_SIZE),
- CORE_INSN ("str", 0x3c000400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, 0),
- CORE_INSN ("ldr", 0x3c400400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, 0),
- CORE_INSN ("strh", 0x78000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0),
- CORE_INSN ("ldrh", 0x78400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, 0),
- CORE_INSN ("ldrsh", 0x78800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R16, F_LDS_SIZE),
- CORE_INSN ("str", 0xb8000400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q),
- CORE_INSN ("ldr", 0xb8400400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_GPRSIZE_IN_Q),
- CORE_INSN ("ldrsw", 0xb8800400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_X32, 0),
+ CORE_INSN ("strb", 0x38000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrb", 0x38400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W8, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrsb", 0x38800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R8, F_SUBCLASS_OTHER | F_LDS_SIZE),
+ CORE_INSN ("str", 0x3c000400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, F_LDST_STORE),
+ CORE_INSN ("ldr", 0x3c400400, 0x3f600400, ldst_imm9, 0, OP2 (Ft, ADDR_SIMM9), QL_LDST_FP, F_LDST_LOAD),
+ CORE_INSN ("strh", 0x78000400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrh", 0x78400400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_W16, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrsh", 0x78800400, 0xffa00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R16, F_SUBCLASS_OTHER | F_LDS_SIZE),
+ CORE_INSN ("str", 0xb8000400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_LDST_STORE | F_GPRSIZE_IN_Q),
+ CORE_INSN ("ldr", 0xb8400400, 0xbfe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_R, F_LDST_LOAD | F_GPRSIZE_IN_Q),
+ CORE_INSN ("ldrsw", 0xb8800400, 0xffe00400, ldst_imm9, 0, OP2 (Rt, ADDR_SIMM9), QL_LDST_X32, F_SUBCLASS_OTHER),
/* Load/store Allocation Tag instructions. */
MEMTAG_INSN ("stg", 0xd9200800, 0xffe00c00, ldst_unscaled, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
MEMTAG_INSN ("stzg", 0xd9600800, 0xffe00c00, ldst_unscaled, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
MEMTAG_INSN ("st2g", 0xd9a00800, 0xffe00c00, ldst_unscaled, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
MEMTAG_INSN ("stz2g",0xd9e00800, 0xffe00c00, ldst_unscaled, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
- MEMTAG_INSN ("stg", 0xd9200400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
- MEMTAG_INSN ("stzg", 0xd9600400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
- MEMTAG_INSN ("st2g", 0xd9a00400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
- MEMTAG_INSN ("stz2g",0xd9e00400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, 0),
+ MEMTAG_INSN ("stg", 0xd9200400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("stzg", 0xd9600400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("st2g", 0xd9a00400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_SUBCLASS_OTHER),
+ MEMTAG_INSN ("stz2g",0xd9e00400, 0xffe00400, ldst_imm9, OP2 (Rt_SP, ADDR_SIMM13), QL_LDST_AT, F_SUBCLASS_OTHER),
/* Load/store register (unsigned immediate). */
- CORE_INSN ("strb", 0x39000000, 0xffc00000, ldst_pos, OP_STRB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, 0),
- CORE_INSN ("ldrb", 0x39400000, 0xffc00000, ldst_pos, OP_LDRB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, 0),
- CORE_INSN ("ldrsb", 0x39800000, 0xff800000, ldst_pos, OP_LDRSB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R8, F_LDS_SIZE),
- CORE_INSN ("str", 0x3d000000, 0x3f400000, ldst_pos, OP_STRF_POS, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, 0),
- CORE_INSN ("ldr", 0x3d400000, 0x3f400000, ldst_pos, OP_LDRF_POS, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, 0),
- CORE_INSN ("strh", 0x79000000, 0xffc00000, ldst_pos, OP_STRH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, 0),
- CORE_INSN ("ldrh", 0x79400000, 0xffc00000, ldst_pos, OP_LDRH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, 0),
- CORE_INSN ("ldrsh", 0x79800000, 0xff800000, ldst_pos, OP_LDRSH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R16, F_LDS_SIZE),
- CORE_INSN ("str", 0xb9000000, 0xbfc00000, ldst_pos, OP_STR_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q),
- CORE_INSN ("ldr", 0xb9400000, 0xbfc00000, ldst_pos, OP_LDR_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q),
- CORE_INSN ("ldrsw", 0xb9800000, 0xffc00000, ldst_pos, OP_LDRSW_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_X32, 0),
- CORE_INSN ("prfm", 0xf9800000, 0xffc00000, ldst_pos, OP_PRFM_POS, OP2 (PRFOP, ADDR_UIMM12), QL_LDST_PRFM, 0),
+ CORE_INSN ("strb", 0x39000000, 0xffc00000, ldst_pos, OP_STRB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrb", 0x39400000, 0xffc00000, ldst_pos, OP_LDRB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W8, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrsb", 0x39800000, 0xff800000, ldst_pos, OP_LDRSB_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R8, F_SUBCLASS_OTHER | F_LDS_SIZE),
+ CORE_INSN ("str", 0x3d000000, 0x3f400000, ldst_pos, OP_STRF_POS, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, F_LDST_STORE),
+ CORE_INSN ("ldr", 0x3d400000, 0x3f400000, ldst_pos, OP_LDRF_POS, OP2 (Ft, ADDR_UIMM12), QL_LDST_FP, F_LDST_LOAD),
+ CORE_INSN ("strh", 0x79000000, 0xffc00000, ldst_pos, OP_STRH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrh", 0x79400000, 0xffc00000, ldst_pos, OP_LDRH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_W16, F_SUBCLASS_OTHER),
+ CORE_INSN ("ldrsh", 0x79800000, 0xff800000, ldst_pos, OP_LDRSH_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R16, F_SUBCLASS_OTHER | F_LDS_SIZE),
+ CORE_INSN ("str", 0xb9000000, 0xbfc00000, ldst_pos, OP_STR_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q | F_LDST_STORE),
+ CORE_INSN ("ldr", 0xb9400000, 0xbfc00000, ldst_pos, OP_LDR_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_R, F_GPRSIZE_IN_Q | F_LDST_LOAD),
+ CORE_INSN ("ldrsw", 0xb9800000, 0xffc00000, ldst_pos, OP_LDRSW_POS, OP2 (Rt, ADDR_UIMM12), QL_LDST_X32, F_SUBCLASS_OTHER),
+ CORE_INSN ("prfm", 0xf9800000, 0xffc00000, ldst_pos, OP_PRFM_POS, OP2 (PRFOP, ADDR_UIMM12), QL_LDST_PRFM, F_SUBCLASS_OTHER),
/* Load/store register (register offset). */
CORE_INSN ("strb", 0x38200800, 0xffe00c00, ldst_regoff, 0, OP2 (Rt, ADDR_REGOFF), QL_LDST_W8, 0),
CORE_INSN ("ldrb", 0x38600800, 0xffe00c00, ldst_regoff, 0, OP2 (Rt, ADDR_REGOFF), QL_LDST_W8, 0),
@@ -4233,24 +4262,24 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_LOR_INSN ("stllrb", 0x089f7c00, 0xffe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
_LOR_INSN ("stllrh", 0x489f7c00, 0xbfe08000, ldstexcl, OP2 (Rt, ADDR_SIMPLE), QL_W1_LDST_EXC, 0),
/* Load/store no-allocate pair (offset). */
- CORE_INSN ("stnp", 0x28000000, 0x7fc00000, ldstnapair_offs, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
- CORE_INSN ("ldnp", 0x28400000, 0x7fc00000, ldstnapair_offs, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
- CORE_INSN ("stnp", 0x2c000000, 0x3fc00000, ldstnapair_offs, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
- CORE_INSN ("ldnp", 0x2c400000, 0x3fc00000, ldstnapair_offs, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
+ CORE_INSN ("stnp", 0x28000000, 0x7fc00000, ldstnapair_offs, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_STORE | F_SF),
+ CORE_INSN ("ldnp", 0x28400000, 0x7fc00000, ldstnapair_offs, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_LOAD | F_SF),
+ CORE_INSN ("stnp", 0x2c000000, 0x3fc00000, ldstnapair_offs, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_STORE),
+ CORE_INSN ("ldnp", 0x2c400000, 0x3fc00000, ldstnapair_offs, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_LOAD),
/* Load/store register pair (offset). */
- CORE_INSN ("stp", 0x29000000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
- CORE_INSN ("ldp", 0x29400000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
- CORE_INSN ("stp", 0x2d000000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
- CORE_INSN ("ldp", 0x2d400000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
- {"ldpsw", 0x69400000, 0xffc00000, ldstpair_off, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, 0, 0, 0, VERIFIER (ldpsw)},
- MEMTAG_INSN ("stgp", 0x69000000, 0xffc00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, 0),
+ CORE_INSN ("stp", 0x29000000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_STORE | F_SF),
+ CORE_INSN ("ldp", 0x29400000, 0x7ec00000, ldstpair_off, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_LOAD | F_SF),
+ CORE_INSN ("stp", 0x2d000000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_STORE | 0),
+ CORE_INSN ("ldp", 0x2d400000, 0x3fc00000, ldstpair_off, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_LOAD),
+ {"ldpsw", 0x69400000, 0xffc00000, ldstpair_off, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, F_SUBCLASS_OTHER, 0, 0, VERIFIER (ldpsw)},
+ MEMTAG_INSN ("stgp", 0x69000000, 0xffc00000, ldstpair_off, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, F_SUBCLASS_OTHER),
/* Load/store register pair (indexed). */
- CORE_INSN ("stp", 0x28800000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
- CORE_INSN ("ldp", 0x28c00000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_SF),
- CORE_INSN ("stp", 0x2c800000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
- CORE_INSN ("ldp", 0x2cc00000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, 0),
- {"ldpsw", 0x68c00000, 0xfec00000, ldstpair_indexed, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, 0, 0, 0, VERIFIER (ldpsw)},
- MEMTAG_INSN ("stgp", 0x68800000, 0xfec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, 0),
+ CORE_INSN ("stp", 0x28800000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_STORE | F_SF),
+ CORE_INSN ("ldp", 0x28c00000, 0x7ec00000, ldstpair_indexed, 0, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_R, F_LDST_LOAD | F_SF),
+ CORE_INSN ("stp", 0x2c800000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_STORE),
+ CORE_INSN ("ldp", 0x2cc00000, 0x3ec00000, ldstpair_indexed, 0, OP3 (Ft, Ft2, ADDR_SIMM7), QL_LDST_PAIR_FP, F_LDST_LOAD),
+ {"ldpsw", 0x68c00000, 0xfec00000, ldstpair_indexed, 0, CORE, OP3 (Rt, Rt2, ADDR_SIMM7), QL_LDST_PAIR_X32, F_SUBCLASS_OTHER, 0, 0, VERIFIER (ldpsw)},
+ MEMTAG_INSN ("stgp", 0x68800000, 0xfec00000, ldstpair_indexed, OP3 (Rt, Rt2, ADDR_SIMM11), QL_STGP, F_SUBCLASS_OTHER),
/* Load register (literal). */
CORE_INSN ("ldr", 0x18000000, 0xbf000000, loadlit, OP_LDR_LIT, OP2 (Rt, ADDR_PCREL19), QL_R_PCREL, F_GPRSIZE_IN_Q),
CORE_INSN ("ldr", 0x1c000000, 0x3f000000, loadlit, OP_LDRV_LIT, OP2 (Ft, ADDR_PCREL19), QL_FP_PCREL, 0),
@@ -6625,6 +6654,38 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SME2p1_INSN ("movaz", 0xc0860200, 0xffff1f01, sme2_movaz, 0, OP2 (SME_Zdnx2, SME_ZA_array_vrss_1), OP_SVE_SS, 0, 0),
SME2p1_INSN ("movaz", 0xc0c60200, 0xffff1f01, sme2_movaz, 0, OP2 (SME_Zdnx2, SME_ZA_array_vrsd_1), OP_SVE_DD, 0, 0),
+ SME2p1_INSN ("luti2", 0xc09c4000, 0xfffc4c08, sme_size_12_bh, 0, OP3 (SME_Ztx2_STRIDED, SME_ZT0, SME_Zn_INDEX3_15), OP_SVE_VUU_BH, 0, 0),
+ SME2p1_INSN ("luti2", 0xc09c8000, 0xfffccc0c, sme_size_12_bh, 0, OP3 (SME_Ztx4_STRIDED, SME_ZT0, SME_Zn_INDEX2_16), OP_SVE_VUU_BH, 0, 0),
+ SME2p1_INSN ("luti4", 0xc09a4000, 0xfffe4c08, sme_size_12_bh, 0, OP3 (SME_Ztx2_STRIDED, SME_ZT0, SME_Zn_INDEX2_15), OP_SVE_VUU_BH, 0, 0),
+ SME2p1_INSN ("luti4", 0xc09a9000, 0xfffefc0c, sme_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_ZT0, SME_Zn_INDEX1_16), OP_SVE_HUU, 0, 0),
+
+ /* SME2.1 MOVAZ (array to vector, two registers). */
+ SME2p1_INSN ("movaz", 0xc0060a00, 0xffff9f01, sme2_movaz, 0, OP2 (SME_Zdnx2, SME_ZA_array_off3_5), OP_SVE_VV_D, F_OD (2), 0),
+
+ /* SME2.1 MOVAZ (array to vector, four registers). */
+ SME2p1_INSN ("movaz", 0xc0060e00, 0xffff9f03, sme2_movaz, 0, OP2 (SME_Zdnx4, SME_ZA_array_off3_5), OP_SVE_VV_D, F_OD (4), 0),
+
+ /* SME2.1 MOVAZ (tile to vector, single). */
+ SME2p1_INSN ("movaz", 0xc0020200, 0xffff1e00, sme2_movaz, 0, OP2 (SVE_Zd, SME_ZA_ARRAY4), OP_SVE_BB, 0, 0),
+ SME2p1_INSN ("movaz", 0xc0420200, 0xffff1e00, sme2_movaz, 0, OP2 (SVE_Zd, SME_ZA_ARRAY4), OP_SVE_HH, 0, 0),
+ SME2p1_INSN ("movaz", 0xc0820200, 0xffff1e00, sme2_movaz, 0, OP2 (SVE_Zd, SME_ZA_ARRAY4), OP_SVE_SS, 0, 0),
+ SME2p1_INSN ("movaz", 0xc0c20200, 0xffff1e00, sme2_movaz, 0, OP2 (SVE_Zd, SME_ZA_ARRAY4), OP_SVE_DD, 0, 0),
+ SME2p1_INSN ("movaz", 0xc0c30200, 0xffff1e00, sme2_movaz, 0, OP2 (SVE_Zd, SME_ZA_ARRAY4), OP_SVE_QQ, 0, 0),
+
+ /* ZERO (single-vector). */
+ SME2p1_INSN ("zero", 0xc00c0000, 0xffff9ff8, sme2_movaz, 0, OP1 (SME_ZA_array_off3_0), OP_SVE_D, F_OD (2) | F_VG_REQ, 0),
+ SME2p1_INSN ("zero", 0xc00e0000, 0xffff9ff8, sme2_movaz, 0, OP1 (SME_ZA_array_off3_0), OP_SVE_D, F_OD (4) | F_VG_REQ, 0),
+
+ /* ZERO (double-vector). */
+ SME2p1_INSN ("zero", 0xc00c8000, 0xffff9ff8, sme2_movaz, 0, OP1 (SME_ZA_array_off3x2), OP_SVE_D, 0, 0),
+ SME2p1_INSN ("zero", 0xc00d0000, 0xffff9ffc, sme2_movaz, 0, OP1 (SME_ZA_array_off2x2), OP_SVE_D, F_OD (2) | F_VG_REQ, 0),
+ SME2p1_INSN ("zero", 0xc00d8000, 0xffff9ffc, sme2_movaz, 0, OP1 (SME_ZA_array_off2x2), OP_SVE_D, F_OD (4) | F_VG_REQ, 0),
+
+ /* ZERO (quad-vector). */
+ SME2p1_INSN ("zero", 0xc00e8000, 0xffff9ffc, sme2_movaz, 0, OP1 (SME_ZA_array_off2x4), OP_SVE_D, 0, 0),
+ SME2p1_INSN ("zero", 0xc00f0000, 0xffff9ffe, sme2_movaz, 0, OP1 (SME_ZA_array_off1x4), OP_SVE_D, F_OD (2) | F_VG_REQ, 0),
+ SME2p1_INSN ("zero", 0xc00f8000, 0xffff9ffe, sme2_movaz, 0, OP1 (SME_ZA_array_off1x4), OP_SVE_D, F_OD (4) | F_VG_REQ, 0),
+
/* SVE2p1 Instructions. */
SVE2p1_INSN("addqv",0x04052000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
SVE2p1_INSN("andqv",0x041e2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
@@ -6640,7 +6701,24 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SVE2p1_INSN("fminqv",0x6417a000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_HSD_HSD, F_OPD_SIZE, 0),
SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0),
+ SVE2p1_INSN("orqv",0x041c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0),
+ SVE2p1_INSN("tblq",0x4400f800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_ZnxN, SVE_Zm_16), OP_SVE_VVV_BHSD, F_OD(1), 0),
+ SVE2p1_INSN("tbxq",0x05203400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
SVE2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1),
+ SVE2p1_INSN("uzpq1",0x4400e800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+ SVE2p1_INSN("uzpq2",0x4400ec00, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+ SVE2p1_INSN("zipq1",0x4400e000, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+ SVE2p1_INSN("zipq2",0x4400e400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
+
+ SVE2p1_INSN("pmov",0x052a3800, 0xfffffc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn0_INDEX), OP_SVE_BU, 0, 0),
+ SVE2p1_INSN("pmov",0x052c3800, 0xfffdfc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn1_17_INDEX), OP_SVE_HU, 0, 0),
+ SVE2p1_INSN("pmov",0x05683800, 0xfff9fc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn2_18_INDEX), OP_SVE_SU, 0, 0),
+ SVE2p1_INSN("pmov",0x05a83800, 0xffb9fc10, sve_misc, 0, OP2 (SVE_Pd, SVE_Zn3_22_INDEX), OP_SVE_DU, 0, 0),
+
+ SVE2p1_INSN("pmov",0x052b3800, 0xfffffe00, sve_misc, 0, OP2 (SVE_Zd0_INDEX, SVE_Pg4_5), OP_SVE_UB, 0, 0),
+ SVE2p1_INSN("pmov",0x052d3800, 0xfffdfe00, sve_misc, 0, OP2 (SVE_Zd1_17_INDEX, SVE_Pg4_5), OP_SVE_UH, 0, 0),
+ SVE2p1_INSN("pmov",0x05693800, 0xfff9fe00, sve_misc, 0, OP2 (SVE_Zd2_18_INDEX, SVE_Pg4_5), OP_SVE_US, 0, 0),
+ SVE2p1_INSN("pmov",0x05a93800, 0xffb9fe00, sve_misc, 0, OP2 (SVE_Zd3_22_INDEX, SVE_Pg4_5), OP_SVE_UD, 0, 0),
SVE2p1_INSN("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_QZD, F_OD (1), 0),
SVE2p1_INSN("ld2q",0xa490e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_QZU, F_OD (2), 0),
@@ -7282,6 +7360,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
F(FLD_SME_V,FLD_SME_Rv,FLD_off2), "2 bit ZA tile") \
Y(ZA_ACCESS, sme_za_vrs2, "SME_ZA_array_vrsd_2", 0, \
F(FLD_SME_V,FLD_SME_Rv,FLD_ZAn_3), "3 bit ZA tile") \
+ Y(ZA_ACCESS, sme_za_tile_to_vec, "SME_ZA_ARRAY4", 0, \
+ F(FLD_SME_V,FLD_SME_Rv), "ZA tile to vector register") \
Y(SVE_REG, regno, "SVE_Za_5", 0, F(FLD_SVE_Za_5), \
"an SVE vector register") \
Y(SVE_REG, regno, "SVE_Za_16", 0, F(FLD_SVE_Za_16), \
@@ -7471,6 +7551,28 @@ const struct aarch64_opcode aarch64_opcode_table[] =
F(FLD_SVE_Zn, FLD_imm3_15), "an indexed SVE vector register") \
Y(SVE_REG, simple_index, "SME_Zn_INDEX4_14", 0, \
F(FLD_SVE_Zn, FLD_imm4_14), "an indexed SVE vector register") \
+ Y(SVE_REG, regno, "SVE_Zn0_INDEX", 0, F(FLD_SVE_Zn), \
+ "an SVE vector register with option zero index") \
+ Y(SVE_REG, simple_index, "SVE_Zn1_17_INDEX", 0, \
+ F(FLD_SVE_Zn, FLD_imm17_1), \
+ "an SVE vector register with optional one bit index") \
+ Y(SVE_REG, simple_index, "SVE_Zn2_18_INDEX", 0, \
+ F(FLD_SVE_Zn, FLD_imm17_2), \
+ "an SVE vector register with optional two bit index") \
+ Y(SVE_REG, simple_index, "SVE_Zn3_22_INDEX", 0, \
+ F(FLD_SVE_Zn, FLD_SVE_i3h, FLD_imm17_2), \
+ "an SVE vector register with optional three bit index") \
+ Y(SVE_REG, regno, "SVE_Zd0_INDEX", 0, F(FLD_SVE_Zd), \
+ "an SVE vector register with option zero index") \
+ Y(SVE_REG, simple_index, "SVE_Zd1_17_INDEX", 0, \
+ F(FLD_SVE_Zd, FLD_imm17_1), \
+ "an SVE vector register with optional one bit index") \
+ Y(SVE_REG, simple_index, "SVE_Zd2_18_INDEX", 0, \
+ F(FLD_SVE_Zd, FLD_imm17_2), \
+ "an SVE vector register with optional two bit index") \
+ Y(SVE_REG, simple_index, "SVE_Zd3_22_INDEX", 0, \
+ F(FLD_SVE_Zd, FLD_SVE_i3h, FLD_imm17_2), \
+ "an SVE vector register with optional three bit index") \
Y(IMMEDIATE, imm, "SME_VLxN_10", 0, F(FLD_SME_VL_10), \
"VLx2 or VLx4") \
Y(IMMEDIATE, imm, "SME_VLxN_13", 0, F(FLD_SME_VL_13), \
diff --git a/opcodes/configure b/opcodes/configure
index 050fd5f..0b9f2de 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for opcodes 2.42.50.
+# Generated by GNU Autoconf 2.69 for opcodes 2.43.50.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='opcodes'
PACKAGE_TARNAME='opcodes'
-PACKAGE_VERSION='2.42.50'
-PACKAGE_STRING='opcodes 2.42.50'
+PACKAGE_VERSION='2.43.50'
+PACKAGE_STRING='opcodes 2.43.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1371,7 +1371,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures opcodes 2.42.50 to adapt to many kinds of systems.
+\`configure' configures opcodes 2.43.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1442,7 +1442,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of opcodes 2.42.50:";;
+ short | recursive ) echo "Configuration of opcodes 2.43.50:";;
esac
cat <<\_ACEOF
@@ -1564,7 +1564,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-opcodes configure 2.42.50
+opcodes configure 2.43.50
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2158,7 +2158,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by opcodes $as_me 2.42.50, which was
+It was created by opcodes $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3138,7 +3138,7 @@ fi
# Define the identity of the package.
PACKAGE='opcodes'
- VERSION='2.42.50'
+ VERSION='2.43.50'
cat >>confdefs.h <<_ACEOF
@@ -15126,7 +15126,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by opcodes $as_me 2.42.50, which was
+This file was extended by opcodes $as_me 2.43.50, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -15192,7 +15192,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-opcodes config.status 2.42.50
+opcodes config.status 2.43.50
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/opcodes/i386-dis-evex-prefix.h b/opcodes/i386-dis-evex-prefix.h
index 0eba11d..0fb6bd4 100644
--- a/opcodes/i386-dis-evex-prefix.h
+++ b/opcodes/i386-dis-evex-prefix.h
@@ -340,9 +340,9 @@
},
/* PREFIX_EVEX_MAP4_4x */
{
- { "%CFcmov%CCS", { VexGv, Gv, Ev }, 0 },
+ { "%CFcmov%CCS", { VexGv, { CFCMOV_Fixup, 0 }, { CFCMOV_Fixup, 1 } }, 0 },
{ Bad_Opcode },
- { "%CFcmov%CCS", { VexGv, Gv, Ev }, 0 },
+ { "%CFcmov%CCS", { VexGv, { CFCMOV_Fixup, 0 }, { CFCMOV_Fixup, 1 } }, 0 },
{ "set%ZU%CC", { Eb }, 0 },
},
/* PREFIX_EVEX_MAP4_F0 */
diff --git a/opcodes/i386-dis-evex.h b/opcodes/i386-dis-evex.h
index 0f63b5f..434133e 100644
--- a/opcodes/i386-dis-evex.h
+++ b/opcodes/i386-dis-evex.h
@@ -940,8 +940,8 @@ static const struct dis386 evex_table[][256] = {
/* 38 */
{ "%NEccmp%SCB%DF", { Eb, Gb }, 0 },
{ "%NEccmp%SCS%DF", { Ev, Gv }, PREFIX_NP_OR_DATA },
- { "%NEccmp%SCB%DF", { Gb, EbS }, 0 },
- { "%NEccmp%SCS%DF", { Gv, EvS }, PREFIX_NP_OR_DATA },
+ { "%NEccmp%SCB%SW%DF", { Gb, Eb }, 0 },
+ { "%NEccmp%SCS%SW%DF", { Gv, Ev }, PREFIX_NP_OR_DATA },
{ Bad_Opcode },
{ Bad_Opcode },
{ Bad_Opcode },
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 9c5063e..bc141f3 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -107,6 +107,7 @@ static bool DistinctDest_Fixup (instr_info *, int, int);
static bool PREFETCHI_Fixup (instr_info *, int, int);
static bool PUSH2_POP2_Fixup (instr_info *, int, int);
static bool JMPABS_Fixup (instr_info *, int, int);
+static bool CFCMOV_Fixup (instr_info *, int, int);
static void ATTRIBUTE_PRINTF_3 i386_dis_printf (const disassemble_info *,
enum disassembler_style,
@@ -1808,6 +1809,8 @@ struct dis386 {
in MAP4.
"ZU" => print 'zu' if EVEX.ZU=1.
"SC" => print suffix SCC for SCC insns
+ "SW" => print '.s' to indicate operands were swapped when suffix_always is
+ true.
"YK" keep unused, to avoid ambiguity with the combined use of Y and K.
"YX" keep unused, to avoid ambiguity with the combined use of Y and X.
"LQ" => print 'l' ('d' in Intel mode) or 'q' for memory operand, cond
@@ -4041,7 +4044,7 @@ static const struct dis386 prefix_table[][4] = {
{ "vbcstnebf162ps", { XM, Mw }, 0 },
{ "vbcstnesh2ps", { XM, Mw }, 0 },
},
-
+
/* PREFIX_VEX_0F38D2_W_0 */
{
{ "vpdpwuud", { XM, Vex, EXx }, 0 },
@@ -10560,7 +10563,14 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
}
}
else if (l == 1 && last[0] == 'C')
- break;
+ {
+ if (ins->vex.nd && !ins->vex.nf)
+ break;
+ *ins->obufp++ = 'c';
+ *ins->obufp++ = 'f';
+ /* Skip printing {evex} */
+ evex_printed = true;
+ }
else if (l == 1 && last[0] == 'N')
{
if (ins->vex.nf)
@@ -10919,6 +10929,14 @@ putop (instr_info *ins, const char *in_template, int sizeflag)
*ins->obufp++ = ins->vex.w ? 'd': 's';
else if (last[0] == 'B')
*ins->obufp++ = ins->vex.w ? 'w': 'b';
+ else if (last[0] == 'S')
+ {
+ if (ins->modrm.mod == 3 && (sizeflag & SUFFIX_ALWAYS))
+ {
+ *ins->obufp++ = '.';
+ *ins->obufp++ = 's';
+ }
+ }
else
abort ();
}
@@ -14040,3 +14058,26 @@ JMPABS_Fixup (instr_info *ins, int bytemode, int sizeflag)
return OP_IMREG (ins, bytemode, sizeflag);
return OP_OFF64 (ins, bytemode, sizeflag);
}
+
+static bool
+CFCMOV_Fixup (instr_info *ins, int opnd, int sizeflag)
+{
+ /* EVEX.NF is used as a direction bit in the 2-operand case to reverse the
+ source and destination operands. */
+ bool dstmem = !ins->vex.nd && ins->vex.nf;
+
+ if (opnd == 0)
+ {
+ if (dstmem)
+ return OP_E (ins, v_swap_mode, sizeflag);
+ return OP_G (ins, v_mode, sizeflag);
+ }
+
+ /* These bits have been consumed and should be cleared. */
+ ins->vex.nf = false;
+ ins->vex.mask_register_specifier = 0;
+
+ if (dstmem)
+ return OP_G (ins, v_mode, sizeflag);
+ return OP_E (ins, v_mode, sizeflag);
+}
diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h
index 5f01bb9..48f8c94 100644
--- a/opcodes/i386-mnem.h
+++ b/opcodes/i386-mnem.h
@@ -137,2323 +137,2353 @@ extern const char i386_mnemonics[];
#define MN_ctestna 0x47c
#define MN_setzuna 0x484
#define MN_cmovna (MN_fcmovna + 1)
-#define MN_fcmovna 0x48c
-#define MN_ccmpa 0x494
-#define MN_popa 0x49a
+#define MN_fcmovna (MN_cfcmovna + 1)
+#define MN_cfcmovna 0x48c
+#define MN_ccmpa 0x495
+#define MN_popa 0x49b
#define MN_movntdqa (MN_vmovntdqa + 1)
-#define MN_vmovntdqa 0x49f
+#define MN_vmovntdqa 0x4a0
#define MN_movdqa (MN_vmovdqa + 1)
-#define MN_vmovdqa 0x4a9
-#define MN_seta 0x4b1
-#define MN_prefetchnta 0x4b6
-#define MN_ctesta 0x4c2
-#define MN_setzua 0x4c9
+#define MN_vmovdqa 0x4aa
+#define MN_seta 0x4b2
+#define MN_prefetchnta 0x4b7
+#define MN_ctesta 0x4c3
+#define MN_setzua 0x4ca
#define MN_cmova (MN_fcmova + 1)
-#define MN_fcmova 0x4d0
-#define MN_rex_b 0x4d7
-#define MN_ud2b 0x4dd
-#define MN_vpermi2b 0x4e2
-#define MN_vpmovm2b 0x4eb
-#define MN_vpermt2b 0x4f4
-#define MN_movdir64b 0x4fd
-#define MN_cmpxchg16b 0x507
-#define MN_cmpxchg8b 0x512
-#define MN_vpshab 0x51c
-#define MN_sbb 0x523
+#define MN_fcmova (MN_cfcmova + 1)
+#define MN_cfcmova 0x4d1
+#define MN_rex_b 0x4d9
+#define MN_ud2b 0x4df
+#define MN_vpermi2b 0x4e4
+#define MN_vpmovm2b 0x4ed
+#define MN_vpermt2b 0x4f6
+#define MN_movdir64b 0x4ff
+#define MN_cmpxchg16b 0x509
+#define MN_cmpxchg8b 0x514
+#define MN_vpshab 0x51e
+#define MN_sbb 0x525
#define MN_psubb (MN_vpsubb + 1)
-#define MN_vpsubb 0x527
-#define MN_xcrypt_ecb 0x52e
-#define MN_xcryptecb 0x539
-#define MN_llwpcb 0x543
-#define MN_slwpcb 0x54a
-#define MN_kaddb 0x551
+#define MN_vpsubb 0x529
+#define MN_xcrypt_ecb 0x530
+#define MN_xcryptecb 0x53b
+#define MN_llwpcb 0x545
+#define MN_slwpcb 0x54c
+#define MN_kaddb 0x553
#define MN_paddb (MN_vpaddb + 1)
-#define MN_vpaddb 0x557
-#define MN_kandb 0x55e
-#define MN_vpexpandb 0x564
-#define MN_vpmovusdb 0x56e
-#define MN_vpmovsdb 0x578
-#define MN_vpmovdb 0x581
-#define MN_vpcomgeb 0x589
-#define MN_vpcomleb 0x592
-#define MN_vpcmpnleb 0x59b
-#define MN_vpcmpleb 0x5a5
-#define MN_vpcomfalseb 0x5ae
-#define MN_vpcomtrueb 0x5ba
-#define MN_xcrypt_cfb 0x5c5
-#define MN_xcryptcfb 0x5d0
-#define MN_xcrypt_ofb 0x5da
-#define MN_xcryptofb 0x5e5
+#define MN_vpaddb 0x559
+#define MN_kandb 0x560
+#define MN_vpexpandb 0x566
+#define MN_vpmovusdb 0x570
+#define MN_vpmovsdb 0x57a
+#define MN_vpmovdb 0x583
+#define MN_vpcomgeb 0x58b
+#define MN_vpcomleb 0x594
+#define MN_vpcmpnleb 0x59d
+#define MN_vpcmpleb 0x5a7
+#define MN_vpcomfalseb 0x5b0
+#define MN_vpcomtrueb 0x5bc
+#define MN_xcrypt_cfb 0x5c7
+#define MN_xcryptcfb 0x5d2
+#define MN_xcrypt_ofb 0x5dc
+#define MN_xcryptofb 0x5e7
#define MN_pshufb (MN_vpshufb + 1)
-#define MN_vpshufb 0x5ef
-#define MN_invlpgb 0x5f7
+#define MN_vpshufb 0x5f1
+#define MN_invlpgb 0x5f9
#define MN_pavgb (MN_vpavgb + 1)
-#define MN_vpavgb 0x5ff
-#define MN_jb 0x606
-#define MN_pbndkb 0x609
+#define MN_vpavgb 0x601
+#define MN_jb 0x608
+#define MN_pbndkb 0x60b
#define MN_pmovmskb (MN_vpmovmskb + 1)
-#define MN_vpmovmskb 0x610
-#define MN_vpshlb 0x61a
-#define MN_kshiftlb 0x621
+#define MN_vpmovmskb 0x612
+#define MN_vpshlb 0x61c
+#define MN_kshiftlb 0x623
#define MN_gf2p8mulb (MN_vgf2p8mulb + 1)
-#define MN_vgf2p8mulb 0x62a
-#define MN_vpblendmb 0x635
-#define MN_vptestnmb 0x63f
-#define MN_vpcomb 0x649
-#define MN_vpshufbitqmb 0x650
-#define MN_vpermb 0x65d
-#define MN_vptestmb 0x664
-#define MN_kandnb 0x66d
+#define MN_vgf2p8mulb 0x62c
+#define MN_vpblendmb 0x637
+#define MN_vptestnmb 0x641
+#define MN_vpcomb 0x64b
+#define MN_vpshufbitqmb 0x652
+#define MN_vpermb 0x65f
+#define MN_vptestmb 0x666
+#define MN_kandnb 0x66f
#define MN_psignb (MN_vpsignb + 1)
-#define MN_vpsignb 0x674
-#define MN_jnb 0x67c
-#define MN_ccmpnb 0x680
-#define MN_setnb 0x687
-#define MN_ctestnb 0x68d
-#define MN_setzunb 0x695
+#define MN_vpsignb 0x676
+#define MN_jnb 0x67e
+#define MN_ccmpnb 0x682
+#define MN_setnb 0x689
+#define MN_ctestnb 0x68f
+#define MN_setzunb 0x697
#define MN_cmovnb (MN_fcmovnb + 1)
-#define MN_fcmovnb 0x69d
-#define MN_ccmpb 0x6a5
-#define MN_vpcmpb 0x6ab
-#define MN_vpcomeqb 0x6b2
+#define MN_fcmovnb (MN_cfcmovnb + 1)
+#define MN_cfcmovnb 0x69f
+#define MN_ccmpb 0x6a8
+#define MN_vpcmpb 0x6ae
+#define MN_vpcomeqb 0x6b5
#define MN_gf2p8affineqb (MN_vgf2p8affineqb + 1)
-#define MN_vgf2p8affineqb 0x6bb
-#define MN_vpcomneqb 0x6ca
-#define MN_vpcmpneqb 0x6d4
+#define MN_vgf2p8affineqb 0x6be
+#define MN_vpcomneqb 0x6cd
+#define MN_vpcmpneqb 0x6d7
#define MN_pcmpeqb (MN_vpcmpeqb + 1)
-#define MN_vpcmpeqb 0x6de
-#define MN_vpmovusqb 0x6e7
-#define MN_vpmovsqb 0x6f1
-#define MN_vpmultishiftqb 0x6fa
+#define MN_vpcmpeqb 0x6e1
+#define MN_vpmovusqb 0x6ea
+#define MN_vpmovsqb 0x6f4
+#define MN_vpmultishiftqb 0x6fd
#define MN_gf2p8affineinvqb (MN_vgf2p8affineinvqb + 1)
-#define MN_vgf2p8affineinvqb 0x709
-#define MN_vpmovqb 0x71b
-#define MN_rex_rb 0x723
-#define MN_korb 0x72a
-#define MN_kxnorb 0x72f
-#define MN_kxorb 0x736
+#define MN_vgf2p8affineinvqb 0x70c
+#define MN_vpmovqb 0x71e
+#define MN_rex_rb 0x726
+#define MN_korb 0x72d
+#define MN_kxnorb 0x732
+#define MN_kxorb 0x739
#define MN_pinsrb (MN_vpinsrb + 1)
-#define MN_vpinsrb 0x73c
-#define MN_kshiftrb 0x744
+#define MN_vpinsrb 0x73f
+#define MN_kshiftrb 0x747
#define MN_pextrb (MN_vpextrb + 1)
-#define MN_vpextrb 0x74d
-#define MN_rex_wrb 0x755
+#define MN_vpextrb 0x750
+#define MN_rex_wrb 0x758
#define MN_pabsb (MN_vpabsb + 1)
-#define MN_vpabsb 0x75d
+#define MN_vpabsb 0x760
#define MN_psubsb (MN_vpsubsb + 1)
-#define MN_vpsubsb 0x764
+#define MN_vpsubsb 0x767
#define MN_paddsb (MN_vpaddsb + 1)
-#define MN_vpaddsb 0x76c
+#define MN_vpaddsb 0x76f
#define MN_pminsb (MN_vpminsb + 1)
-#define MN_vpminsb 0x774
-#define MN_vpcompressb 0x77c
+#define MN_vpminsb 0x777
+#define MN_vpcompressb 0x77f
#define MN_psubusb (MN_vpsubusb + 1)
-#define MN_vpsubusb 0x788
+#define MN_vpsubusb 0x78b
#define MN_paddusb (MN_vpaddusb + 1)
-#define MN_vpaddusb 0x791
-#define MN_pavgusb 0x79a
-#define MN_movsb 0x7a2
+#define MN_vpaddusb 0x794
+#define MN_pavgusb 0x79d
+#define MN_movsb 0x7a5
#define MN_pmaxsb (MN_vpmaxsb + 1)
-#define MN_vpmaxsb 0x7a8
-#define MN_setb 0x7b0
-#define MN_vpcomgtb 0x7b5
+#define MN_vpmaxsb 0x7ab
+#define MN_setb 0x7b3
+#define MN_vpcomgtb 0x7b8
#define MN_pcmpgtb (MN_vpcmpgtb + 1)
-#define MN_vpcmpgtb 0x7be
-#define MN_vpcomltb 0x7c7
-#define MN_vpcmpnltb 0x7d0
-#define MN_vpcmpltb 0x7da
-#define MN_vpopcntb 0x7e3
-#define MN_knotb 0x7ec
-#define MN_vprotb 0x7f2
-#define MN_vpbroadcastb 0x7f9
-#define MN_ctestb 0x806
-#define MN_ktestb 0x80d
-#define MN_kortestb 0x814
-#define MN_vpcomgeub 0x81d
-#define MN_vpcomleub 0x827
-#define MN_vpcmpnleub 0x831
-#define MN_vpcmpleub 0x83c
-#define MN_vpcomfalseub 0x846
-#define MN_vpcomtrueub 0x853
-#define MN_vpcomub 0x85f
+#define MN_vpcmpgtb 0x7c1
+#define MN_vpcomltb 0x7ca
+#define MN_vpcmpnltb 0x7d3
+#define MN_vpcmpltb 0x7dd
+#define MN_vpopcntb 0x7e6
+#define MN_knotb 0x7ef
+#define MN_vprotb 0x7f5
+#define MN_vpbroadcastb 0x7fc
+#define MN_ctestb 0x809
+#define MN_ktestb 0x810
+#define MN_kortestb 0x817
+#define MN_vpcomgeub 0x820
+#define MN_vpcomleub 0x82a
+#define MN_vpcmpnleub 0x834
+#define MN_vpcmpleub 0x83f
+#define MN_vpcomfalseub 0x849
+#define MN_vpcomtrueub 0x856
+#define MN_vpcomub 0x862
#define MN_pminub (MN_vpminub + 1)
-#define MN_vpminub 0x867
-#define MN_vpcmpub 0x86f
-#define MN_vpcomequb 0x877
-#define MN_vpcomnequb 0x881
-#define MN_vpcmpnequb 0x88c
-#define MN_vpcmpequb 0x897
+#define MN_vpminub 0x86a
+#define MN_vpcmpub 0x872
+#define MN_vpcomequb 0x87a
+#define MN_vpcomnequb 0x884
+#define MN_vpcmpnequb 0x88f
+#define MN_vpcmpequb 0x89a
#define MN_sub (MN_fsub + 1)
#define MN_fsub (MN_pfsub + 1)
-#define MN_pfsub 0x8a1
-#define MN_fisub 0x8a7
-#define MN_vpcomgtub 0x8ad
-#define MN_vpcomltub 0x8b7
-#define MN_vpcmpnltub 0x8c1
-#define MN_vpcmpltub 0x8cc
+#define MN_pfsub 0x8a4
+#define MN_fisub 0x8aa
+#define MN_vpcomgtub 0x8b0
+#define MN_vpcomltub 0x8ba
+#define MN_vpcmpnltub 0x8c4
+#define MN_vpcmpltub 0x8cf
#define MN_pmaxub (MN_vpmaxub + 1)
-#define MN_vpmaxub 0x8d6
-#define MN_setzub 0x8de
+#define MN_vpmaxub 0x8d9
+#define MN_setzub 0x8e1
#define MN_pblendvb (MN_vpblendvb + 1)
-#define MN_vpblendvb 0x8e5
+#define MN_vpblendvb 0x8e8
#define MN_cmovb (MN_fcmovb + 1)
-#define MN_fcmovb 0x8ef
-#define MN_kmovb 0x8f6
-#define MN_rex_wb 0x8fc
-#define MN_clwb 0x903
+#define MN_fcmovb (MN_cfcmovb + 1)
+#define MN_cfcmovb 0x8f2
+#define MN_kmovb 0x8fa
+#define MN_rex_wb 0x900
+#define MN_clwb 0x907
#define MN_packsswb (MN_vpacksswb + 1)
-#define MN_vpacksswb 0x908
+#define MN_vpacksswb 0x90c
#define MN_packuswb (MN_vpackuswb + 1)
-#define MN_vpackuswb 0x912
-#define MN_vpmovuswb 0x91c
-#define MN_vpmovswb 0x926
-#define MN_vpmovwb 0x92f
-#define MN_rex_xb 0x937
-#define MN_rex_rxb 0x93e
-#define MN_rex_wrxb 0x946
-#define MN_rex_wxb 0x94f
-#define MN_movzb 0x957
-#define MN_clac 0x95d
-#define MN_stac 0x962
-#define MN_xcrypt_cbc 0x967
-#define MN_xcryptcbc 0x972
-#define MN_pfacc 0x97c
-#define MN_pfnacc 0x982
-#define MN_pfpnacc 0x989
-#define MN_adc 0x991
+#define MN_vpackuswb 0x916
+#define MN_vpmovuswb 0x920
+#define MN_vpmovswb 0x92a
+#define MN_vpmovwb 0x933
+#define MN_rex_xb 0x93b
+#define MN_rex_rxb 0x942
+#define MN_rex_wrxb 0x94a
+#define MN_rex_wxb 0x953
+#define MN_movzb 0x95b
+#define MN_clac 0x961
+#define MN_stac 0x966
+#define MN_xcrypt_cbc 0x96b
+#define MN_xcryptcbc 0x976
+#define MN_pfacc 0x980
+#define MN_pfnacc 0x986
+#define MN_pfpnacc 0x98d
+#define MN_adc 0x995
#define MN_dec (MN_aesdec + 3)
#define MN_aesdec (MN_vaesdec + 1)
-#define MN_vaesdec 0x995
-#define MN_getsec 0x99d
-#define MN_xsavec 0x9a4
-#define MN_blcic 0x9ab
-#define MN_blsic 0x9b1
-#define MN_jc 0x9b7
-#define MN_t1mskc 0x9ba
-#define MN_clc 0x9c1
-#define MN_cmc 0x9c5
+#define MN_vaesdec 0x999
+#define MN_getsec 0x9a1
+#define MN_xsavec 0x9a8
+#define MN_blcic 0x9af
+#define MN_blsic 0x9b5
+#define MN_jc 0x9bb
+#define MN_t1mskc 0x9be
+#define MN_clc 0x9c5
+#define MN_cmc 0x9c9
#define MN_aesimc (MN_vaesimc + 1)
-#define MN_vaesimc 0x9c9
-#define MN_rdpmc 0x9d1
+#define MN_vaesimc 0x9cd
+#define MN_rdpmc 0x9d5
#define MN_aesenc (MN_vaesenc + 1)
-#define MN_vaesenc 0x9d7
-#define MN_inc 0x9df
-#define MN_jnc 0x9e3
-#define MN_ccmpnc 0x9e7
-#define MN_setnc 0x9ee
-#define MN_ctestnc 0x9f4
-#define MN_vmfunc 0x9fc
-#define MN_setzunc 0xa03
-#define MN_cmovnc 0xa0b
-#define MN_tlbsync 0xa12
-#define MN_ccmpc 0xa1a
-#define MN_rdtsc 0xa20
-#define MN_btc 0xa26
-#define MN_setc 0xa2a
+#define MN_vaesenc 0x9db
+#define MN_inc 0x9e3
+#define MN_jnc 0x9e7
+#define MN_ccmpnc 0x9eb
+#define MN_setnc 0x9f2
+#define MN_ctestnc 0x9f8
+#define MN_vmfunc 0xa00
+#define MN_setzunc 0xa07
+#define MN_cmovnc (MN_cfcmovnc + 2)
+#define MN_cfcmovnc 0xa0f
+#define MN_tlbsync 0xa18
+#define MN_ccmpc 0xa20
+#define MN_rdtsc 0xa26
+#define MN_btc 0xa2c
+#define MN_setc 0xa30
#define MN_stc (MN_ctestc + 3)
-#define MN_ctestc 0xa2f
-#define MN_setzuc 0xa36
-#define MN_cmovc 0xa3d
-#define MN_vpermi2d 0xa43
-#define MN_vpmovm2d 0xa4c
-#define MN_vpermt2d 0xa55
-#define MN_vpbroadcastmw2d 0xa5e
-#define MN_aad 0xa6e
-#define MN_vmread 0xa72
-#define MN_vpshad 0xa79
-#define MN_vmload 0xa80
+#define MN_ctestc 0xa35
+#define MN_setzuc 0xa3c
+#define MN_cmovc (MN_cfcmovc + 2)
+#define MN_cfcmovc 0xa43
+#define MN_vpermi2d 0xa4b
+#define MN_vpmovm2d 0xa54
+#define MN_vpermt2d 0xa5d
+#define MN_vpbroadcastmw2d 0xa66
+#define MN_aad 0xa76
+#define MN_vmread 0xa7a
+#define MN_vpshad 0xa81
+#define MN_vmload 0xa88
#define MN_psrad (MN_vpsrad + 1)
-#define MN_vpsrad 0xa87
-#define MN_vphaddbd 0xa8e
-#define MN_vphaddubd 0xa97
+#define MN_vpsrad 0xa8f
+#define MN_vphaddbd 0xa96
+#define MN_vphaddubd 0xa9f
#define MN_phsubd (MN_vphsubd + 1)
-#define MN_vphsubd 0xaa1
+#define MN_vphsubd 0xaa9
#define MN_psubd (MN_vpsubd + 1)
-#define MN_vpsubd 0xaa9
+#define MN_vpsubd 0xab1
#define MN_pmovsxbd (MN_vpmovsxbd + 1)
-#define MN_vpmovsxbd 0xab0
+#define MN_vpmovsxbd 0xab8
#define MN_pmovzxbd (MN_vpmovzxbd + 1)
-#define MN_vpmovzxbd 0xaba
+#define MN_vpmovzxbd 0xac2
#define MN_add (MN_aadd + 1)
-#define MN_aadd 0xac4
+#define MN_aadd 0xacc
#define MN_fadd (MN_pfadd + 1)
-#define MN_pfadd 0xac9
-#define MN_fiadd 0xacf
-#define MN_tileloadd 0xad5
+#define MN_pfadd 0xad1
+#define MN_fiadd 0xad7
+#define MN_tileloadd 0xadd
#define MN_xadd (MN_cmpnaxadd + 5)
-#define MN_cmpnaxadd 0xadf
-#define MN_cmpaxadd 0xae9
-#define MN_cmpnbxadd 0xaf2
-#define MN_cmpbxadd 0xafc
-#define MN_cmpncxadd 0xb05
-#define MN_cmpcxadd 0xb0f
-#define MN_cmpnaexadd 0xb18
-#define MN_cmpaexadd 0xb23
-#define MN_cmpnbexadd 0xb2d
-#define MN_cmpbexadd 0xb38
-#define MN_cmpngexadd 0xb42
-#define MN_cmpgexadd 0xb4d
-#define MN_cmpnlexadd 0xb57
-#define MN_cmplexadd 0xb62
-#define MN_cmpnexadd 0xb6c
-#define MN_cmpexadd 0xb76
-#define MN_cmppexadd 0xb7f
-#define MN_cmpngxadd 0xb89
-#define MN_cmpgxadd 0xb93
-#define MN_cmpnlxadd 0xb9c
-#define MN_cmplxadd 0xba6
-#define MN_cmpnoxadd 0xbaf
-#define MN_cmpoxadd 0xbb9
-#define MN_cmppoxadd 0xbc2
-#define MN_cmpnpxadd 0xbcc
-#define MN_cmppxadd 0xbd6
-#define MN_cmpnsxadd 0xbdf
-#define MN_cmpsxadd 0xbe9
-#define MN_cmpnzxadd 0xbf2
-#define MN_cmpzxadd 0xbfc
+#define MN_cmpnaxadd 0xae7
+#define MN_cmpaxadd 0xaf1
+#define MN_cmpnbxadd 0xafa
+#define MN_cmpbxadd 0xb04
+#define MN_cmpncxadd 0xb0d
+#define MN_cmpcxadd 0xb17
+#define MN_cmpnaexadd 0xb20
+#define MN_cmpaexadd 0xb2b
+#define MN_cmpnbexadd 0xb35
+#define MN_cmpbexadd 0xb40
+#define MN_cmpngexadd 0xb4a
+#define MN_cmpgexadd 0xb55
+#define MN_cmpnlexadd 0xb5f
+#define MN_cmplexadd 0xb6a
+#define MN_cmpnexadd 0xb74
+#define MN_cmpexadd 0xb7e
+#define MN_cmppexadd 0xb87
+#define MN_cmpngxadd 0xb91
+#define MN_cmpgxadd 0xb9b
+#define MN_cmpnlxadd 0xba4
+#define MN_cmplxadd 0xbae
+#define MN_cmpnoxadd 0xbb7
+#define MN_cmpoxadd 0xbc1
+#define MN_cmppoxadd 0xbca
+#define MN_cmpnpxadd 0xbd4
+#define MN_cmppxadd 0xbde
+#define MN_cmpnsxadd 0xbe7
+#define MN_cmpsxadd 0xbf1
+#define MN_cmpnzxadd 0xbfa
+#define MN_cmpzxadd 0xc04
#define MN_phaddd (MN_vphaddd + 1)
-#define MN_vphaddd 0xc05
-#define MN_kaddd 0xc0d
+#define MN_vphaddd 0xc0d
+#define MN_kaddd 0xc15
#define MN_paddd (MN_vpaddd + 1)
-#define MN_vpaddd 0xc13
-#define MN_vpshldd 0xc1a
-#define MN_kandd 0xc22
-#define MN_vpandd 0xc28
-#define MN_vpexpandd 0xc2f
-#define MN_vpblendd 0xc39
-#define MN_vpgatherdd 0xc42
-#define MN_vpscatterdd 0xc4d
-#define MN_vpshrdd 0xc59
-#define MN_vpmacsdd 0xc61
-#define MN_vpmacssdd 0xc6a
-#define MN_rdseed 0xc74
-#define MN_vpcomged 0xc7b
-#define MN_vpcomled 0xc84
-#define MN_vpcmpnled 0xc8d
-#define MN_vpcmpled 0xc97
-#define MN_tilestored 0xca0
-#define MN_vpcomfalsed 0xcab
-#define MN_vpcomtrued 0xcb7
-#define MN_pi2fd 0xcc2
+#define MN_vpaddd 0xc1b
+#define MN_vpshldd 0xc22
+#define MN_kandd 0xc2a
+#define MN_vpandd 0xc30
+#define MN_vpexpandd 0xc37
+#define MN_vpblendd 0xc41
+#define MN_vpgatherdd 0xc4a
+#define MN_vpscatterdd 0xc55
+#define MN_vpshrdd 0xc61
+#define MN_vpmacsdd 0xc69
+#define MN_vpmacssdd 0xc72
+#define MN_rdseed 0xc7c
+#define MN_vpcomged 0xc83
+#define MN_vpcomled 0xc8c
+#define MN_vpcmpnled 0xc95
+#define MN_vpcmpled 0xc9f
+#define MN_tilestored 0xca8
+#define MN_vpcomfalsed 0xcb3
+#define MN_vpcomtrued 0xcbf
+#define MN_pi2fd 0xcca
#define MN_pshufd (MN_vpshufd + 1)
-#define MN_vpshufd 0xcc8
-#define MN_vpternlogd 0xcd0
-#define MN_pf2id 0xcdb
-#define MN_invpcid 0xce1
-#define MN_rdpid 0xce9
-#define MN_invvpid 0xcef
-#define MN_cpuid 0xcf7
-#define MN_fbld 0xcfd
-#define MN_cld 0xd02
-#define MN_fld 0xd06
+#define MN_vpshufd 0xcd0
+#define MN_vpternlogd 0xcd8
+#define MN_pf2id 0xce3
+#define MN_invpcid 0xce9
+#define MN_rdpid 0xcf1
+#define MN_invvpid 0xcf7
+#define MN_cpuid 0xcff
+#define MN_fbld 0xd05
+#define MN_cld 0xd0a
+#define MN_fld 0xd0e
#define MN_shld (MN_vpshld + 2)
-#define MN_vpshld 0xd0a
-#define MN_fild 0xd11
+#define MN_vpshld 0xd12
+#define MN_fild 0xd19
#define MN_pslld (MN_vpslld + 1)
-#define MN_vpslld 0xd16
+#define MN_vpslld 0xd1e
#define MN_pmulld (MN_vpmulld + 1)
-#define MN_vpmulld 0xd1d
-#define MN_vprold 0xd25
+#define MN_vpmulld 0xd25
+#define MN_vprold 0xd2d
#define MN_psrld (MN_vpsrld + 1)
-#define MN_vpsrld 0xd2c
-#define MN_vmptrld 0xd33
-#define MN_kshiftld 0xd3b
-#define MN_enqcmd 0xd44
-#define MN_vpblendmd 0xd4b
-#define MN_vptestnmd 0xd55
-#define MN_vpcomd 0xd5f
-#define MN_vpermd 0xd66
-#define MN_vptestmd 0xd6d
+#define MN_vpsrld 0xd34
+#define MN_vmptrld 0xd3b
+#define MN_kshiftld 0xd43
+#define MN_enqcmd 0xd4c
+#define MN_vpblendmd 0xd53
+#define MN_vptestnmd 0xd5d
+#define MN_vpcomd 0xd67
+#define MN_vpermd 0xd6e
+#define MN_vptestmd 0xd75
#define MN_and (MN_aand + 1)
-#define MN_aand 0xd76
+#define MN_aand 0xd7e
#define MN_pand (MN_vpand + 1)
-#define MN_vpand 0xd7b
-#define MN_rdrand 0xd81
-#define MN_bnd 0xd88
-#define MN_kandnd 0xd8c
-#define MN_vpandnd 0xd93
-#define MN_xend 0xd9b
-#define MN_valignd 0xda0
+#define MN_vpand 0xd83
+#define MN_rdrand 0xd89
+#define MN_bnd 0xd90
+#define MN_kandnd 0xd94
+#define MN_vpandnd 0xd9b
+#define MN_xend 0xda3
+#define MN_valignd 0xda8
#define MN_psignd (MN_vpsignd + 1)
-#define MN_vpsignd 0xda8
-#define MN_bound 0xdb0
-#define MN_slod 0xdb6
-#define MN_vfmaddsub231pd 0xdbb
-#define MN_vfmsub231pd 0xdca
-#define MN_vfnmsub231pd 0xdd6
-#define MN_vfmsubadd231pd 0xde3
-#define MN_vfmadd231pd 0xdf2
-#define MN_vfnmadd231pd 0xdfe
-#define MN_vfmaddsub132pd 0xe0b
-#define MN_vfmsub132pd 0xe1a
-#define MN_vfnmsub132pd 0xe26
-#define MN_vfmsubadd132pd 0xe33
-#define MN_vfmadd132pd 0xe42
-#define MN_vfnmadd132pd 0xe4e
-#define MN_vcvtph2pd 0xe5b
-#define MN_vpermi2pd 0xe65
-#define MN_cvtpi2pd 0xe6f
-#define MN_vpermil2pd 0xe78
-#define MN_vexp2pd 0xe83
+#define MN_vpsignd 0xdb0
+#define MN_bound 0xdb8
+#define MN_slod 0xdbe
+#define MN_vfmaddsub231pd 0xdc3
+#define MN_vfmsub231pd 0xdd2
+#define MN_vfnmsub231pd 0xdde
+#define MN_vfmsubadd231pd 0xdeb
+#define MN_vfmadd231pd 0xdfa
+#define MN_vfnmadd231pd 0xe06
+#define MN_vfmaddsub132pd 0xe13
+#define MN_vfmsub132pd 0xe22
+#define MN_vfnmsub132pd 0xe2e
+#define MN_vfmsubadd132pd 0xe3b
+#define MN_vfmadd132pd 0xe4a
+#define MN_vfnmadd132pd 0xe56
+#define MN_vcvtph2pd 0xe63
+#define MN_vpermi2pd 0xe6d
+#define MN_cvtpi2pd 0xe77
+#define MN_vpermil2pd 0xe80
+#define MN_vexp2pd 0xe8b
#define MN_cvtdq2pd (MN_vcvtdq2pd + 1)
-#define MN_vcvtdq2pd 0xe8b
-#define MN_vcvtudq2pd 0xe95
-#define MN_vcvtqq2pd 0xea0
-#define MN_vcvtuqq2pd 0xeaa
+#define MN_vcvtdq2pd 0xe93
+#define MN_vcvtudq2pd 0xe9d
+#define MN_vcvtqq2pd 0xea8
+#define MN_vcvtuqq2pd 0xeb2
#define MN_cvtps2pd (MN_vcvtps2pd + 1)
-#define MN_vcvtps2pd 0xeb5
-#define MN_vpermt2pd 0xebf
-#define MN_vfmaddsub213pd 0xec9
-#define MN_vfmsub213pd 0xed8
-#define MN_vfnmsub213pd 0xee4
-#define MN_vfmsubadd213pd 0xef1
-#define MN_vfmadd213pd 0xf00
-#define MN_vfnmadd213pd 0xf0c
-#define MN_vrcp14pd 0xf19
-#define MN_vrsqrt14pd 0xf22
-#define MN_vrcp28pd 0xf2d
-#define MN_vrsqrt28pd 0xf36
+#define MN_vcvtps2pd 0xebd
+#define MN_vpermt2pd 0xec7
+#define MN_vfmaddsub213pd 0xed1
+#define MN_vfmsub213pd 0xee0
+#define MN_vfnmsub213pd 0xeec
+#define MN_vfmsubadd213pd 0xef9
+#define MN_vfmadd213pd 0xf08
+#define MN_vfnmadd213pd 0xf14
+#define MN_vrcp14pd 0xf21
+#define MN_vrsqrt14pd 0xf2a
+#define MN_vrcp28pd 0xf35
+#define MN_vrsqrt28pd 0xf3e
#define MN_movapd (MN_vmovapd + 1)
-#define MN_vmovapd 0xf41
-#define MN_pswapd 0xf49
+#define MN_vmovapd 0xf49
+#define MN_pswapd 0xf51
#define MN_subpd (MN_addsubpd + 3)
#define MN_addsubpd (MN_vfmaddsubpd + 3)
-#define MN_vfmaddsubpd 0xf50
-#define MN_vaddsubpd 0xf5c
+#define MN_vfmaddsubpd 0xf58
+#define MN_vaddsubpd 0xf64
#define MN_hsubpd (MN_vhsubpd + 1)
-#define MN_vhsubpd 0xf66
-#define MN_vfmsubpd 0xf6e
-#define MN_vfnmsubpd 0xf77
-#define MN_vsubpd 0xf81
-#define MN_vgatherpf0dpd 0xf88
-#define MN_vscatterpf0dpd 0xf96
-#define MN_vgatherpf1dpd 0xfa5
-#define MN_vscatterpf1dpd 0xfb3
+#define MN_vhsubpd 0xf6e
+#define MN_vfmsubpd 0xf76
+#define MN_vfnmsubpd 0xf7f
+#define MN_vsubpd 0xf89
+#define MN_vgatherpf0dpd 0xf90
+#define MN_vscatterpf0dpd 0xf9e
+#define MN_vgatherpf1dpd 0xfad
+#define MN_vscatterpf1dpd 0xfbb
#define MN_addpd (MN_vfmsubaddpd + 6)
-#define MN_vfmsubaddpd 0xfc2
+#define MN_vfmsubaddpd 0xfca
#define MN_haddpd (MN_vhaddpd + 1)
-#define MN_vhaddpd 0xfce
-#define MN_vfmaddpd 0xfd6
-#define MN_vfnmaddpd 0xfdf
-#define MN_vaddpd 0xfe9
+#define MN_vhaddpd 0xfd6
+#define MN_vfmaddpd 0xfde
+#define MN_vfnmaddpd 0xfe7
+#define MN_vaddpd 0xff1
#define MN_andpd (MN_vexpandpd + 4)
-#define MN_vexpandpd 0xff0
-#define MN_vandpd 0xffa
+#define MN_vexpandpd 0xff8
+#define MN_vandpd 0x1002
#define MN_blendpd (MN_vblendpd + 1)
-#define MN_vblendpd 0x1001
+#define MN_vblendpd 0x1009
#define MN_roundpd (MN_vroundpd + 1)
-#define MN_vroundpd 0x100a
-#define MN_vgatherdpd 0x1013
-#define MN_vscatterdpd 0x101e
+#define MN_vroundpd 0x1012
+#define MN_vgatherdpd 0x101b
+#define MN_vscatterdpd 0x1026
#define MN_cmpunordpd (MN_vcmpunordpd + 1)
-#define MN_vcmpunordpd 0x102a
+#define MN_vcmpunordpd 0x1032
#define MN_cmpordpd (MN_vcmpordpd + 1)
-#define MN_vcmpordpd 0x1036
-#define MN_vreducepd 0x1040
-#define MN_vrangepd 0x104a
-#define MN_vcmpngepd 0x1053
-#define MN_vcmpgepd 0x105d
-#define MN_vrndscalepd 0x1066
+#define MN_vcmpordpd 0x103e
+#define MN_vreducepd 0x1048
+#define MN_vrangepd 0x1052
+#define MN_vcmpngepd 0x105b
+#define MN_vcmpgepd 0x1065
+#define MN_vrndscalepd 0x106e
#define MN_cmpnlepd (MN_vcmpnlepd + 1)
-#define MN_vcmpnlepd 0x1072
+#define MN_vcmpnlepd 0x107a
#define MN_cmplepd (MN_vcmplepd + 1)
-#define MN_vcmplepd 0x107c
-#define MN_vcmpfalsepd 0x1085
-#define MN_vcmptruepd 0x1091
-#define MN_vscalefpd 0x109c
+#define MN_vcmplepd 0x1084
+#define MN_vcmpfalsepd 0x108d
+#define MN_vcmptruepd 0x1099
+#define MN_vscalefpd 0x10a4
#define MN_shufpd (MN_vshufpd + 1)
-#define MN_vshufpd 0x10a6
+#define MN_vshufpd 0x10ae
#define MN_unpckhpd (MN_vunpckhpd + 1)
-#define MN_vunpckhpd 0x10ae
+#define MN_vunpckhpd 0x10b6
#define MN_movhpd (MN_vmovhpd + 1)
-#define MN_vmovhpd 0x10b8
+#define MN_vmovhpd 0x10c0
#define MN_movmskpd (MN_vmovmskpd + 1)
-#define MN_vmovmskpd 0x10c0
-#define MN_vpermilpd 0x10ca
+#define MN_vmovmskpd 0x10c8
+#define MN_vpermilpd 0x10d2
#define MN_unpcklpd (MN_vunpcklpd + 1)
-#define MN_vunpcklpd 0x10d4
+#define MN_vunpcklpd 0x10dc
#define MN_mulpd (MN_vmulpd + 1)
-#define MN_vmulpd 0x10de
+#define MN_vmulpd 0x10e6
#define MN_movlpd (MN_vmovlpd + 1)
-#define MN_vmovlpd 0x10e5
-#define MN_vpcmpd 0x10ed
-#define MN_vblendmpd 0x10f4
-#define MN_vfixupimmpd 0x10fe
-#define MN_vpermpd 0x110a
+#define MN_vmovlpd 0x10ed
+#define MN_vpcmpd 0x10f5
+#define MN_vblendmpd 0x10fc
+#define MN_vfixupimmpd 0x1106
+#define MN_vpermpd 0x1112
#define MN_andnpd (MN_vandnpd + 1)
-#define MN_vandnpd 0x1112
+#define MN_vandnpd 0x111a
#define MN_minpd (MN_vminpd + 1)
-#define MN_vminpd 0x111a
+#define MN_vminpd 0x1122
#define MN_dppd (MN_vdppd + 1)
-#define MN_vdppd 0x1121
+#define MN_vdppd 0x1129
#define MN_cmppd (MN_vcmppd + 1)
-#define MN_vcmppd 0x1127
-#define MN_vgetexppd 0x112e
-#define MN_vgatherpf0qpd 0x1138
-#define MN_vscatterpf0qpd 0x1146
-#define MN_vgatherpf1qpd 0x1155
-#define MN_vscatterpf1qpd 0x1163
-#define MN_vcmpunord_qpd 0x1172
-#define MN_vcmpord_qpd 0x1180
+#define MN_vcmppd 0x112f
+#define MN_vgetexppd 0x1136
+#define MN_vgatherpf0qpd 0x1140
+#define MN_vscatterpf0qpd 0x114e
+#define MN_vgatherpf1qpd 0x115d
+#define MN_vscatterpf1qpd 0x116b
+#define MN_vcmpunord_qpd 0x117a
+#define MN_vcmpord_qpd 0x1188
#define MN_cmpneqpd (MN_vcmpneqpd + 1)
-#define MN_vcmpneqpd 0x118c
+#define MN_vcmpneqpd 0x1194
#define MN_cmpeqpd (MN_vcmpeqpd + 1)
-#define MN_vcmpeqpd 0x1196
-#define MN_vcmpge_oqpd 0x119f
-#define MN_vcmple_oqpd 0x11ab
-#define MN_vcmpfalse_oqpd 0x11b7
-#define MN_vcmpneq_oqpd 0x11c6
-#define MN_vcmpeq_oqpd 0x11d3
-#define MN_vcmpgt_oqpd 0x11df
-#define MN_vcmplt_oqpd 0x11eb
-#define MN_vgatherqpd 0x11f7
-#define MN_vscatterqpd 0x1202
-#define MN_vcmpnge_uqpd 0x120e
-#define MN_vcmpnle_uqpd 0x121b
-#define MN_vcmptrue_uqpd 0x1228
-#define MN_vcmpneq_uqpd 0x1236
-#define MN_vcmpeq_uqpd 0x1243
-#define MN_vcmpngt_uqpd 0x124f
-#define MN_vcmpnlt_uqpd 0x125c
+#define MN_vcmpeqpd 0x119e
+#define MN_vcmpge_oqpd 0x11a7
+#define MN_vcmple_oqpd 0x11b3
+#define MN_vcmpfalse_oqpd 0x11bf
+#define MN_vcmpneq_oqpd 0x11ce
+#define MN_vcmpeq_oqpd 0x11db
+#define MN_vcmpgt_oqpd 0x11e7
+#define MN_vcmplt_oqpd 0x11f3
+#define MN_vgatherqpd 0x11ff
+#define MN_vscatterqpd 0x120a
+#define MN_vcmpnge_uqpd 0x1216
+#define MN_vcmpnle_uqpd 0x1223
+#define MN_vcmptrue_uqpd 0x1230
+#define MN_vcmpneq_uqpd 0x123e
+#define MN_vcmpeq_uqpd 0x124b
+#define MN_vcmpngt_uqpd 0x1257
+#define MN_vcmpnlt_uqpd 0x1264
#define MN_orpd (MN_vorpd + 1)
-#define MN_vorpd 0x1269
+#define MN_vorpd 0x1271
#define MN_xorpd (MN_vxorpd + 1)
-#define MN_vxorpd 0x126f
-#define MN_vcmpunord_spd 0x1276
-#define MN_vcmpord_spd 0x1284
-#define MN_vcmpge_ospd 0x1290
-#define MN_vcmple_ospd 0x129c
-#define MN_vcmpfalse_ospd 0x12a8
-#define MN_vcmpneq_ospd 0x12b7
-#define MN_vcmpeq_ospd 0x12c4
-#define MN_vcmpgt_ospd 0x12d0
-#define MN_vcmplt_ospd 0x12dc
-#define MN_vfpclasspd 0x12e8
-#define MN_incsspd 0x12f3
-#define MN_rdsspd 0x12fb
-#define MN_vcompresspd 0x1302
-#define MN_vcmpnge_uspd 0x130e
-#define MN_vcmpnle_uspd 0x131b
-#define MN_vcmptrue_uspd 0x1328
-#define MN_vcmpneq_uspd 0x1336
-#define MN_vcmpeq_uspd 0x1343
-#define MN_vcmpngt_uspd 0x134f
-#define MN_vcmpnlt_uspd 0x135c
-#define MN_vcmpngtpd 0x1369
-#define MN_vcmpgtpd 0x1373
+#define MN_vxorpd 0x1277
+#define MN_vcmpunord_spd 0x127e
+#define MN_vcmpord_spd 0x128c
+#define MN_vcmpge_ospd 0x1298
+#define MN_vcmple_ospd 0x12a4
+#define MN_vcmpfalse_ospd 0x12b0
+#define MN_vcmpneq_ospd 0x12bf
+#define MN_vcmpeq_ospd 0x12cc
+#define MN_vcmpgt_ospd 0x12d8
+#define MN_vcmplt_ospd 0x12e4
+#define MN_vfpclasspd 0x12f0
+#define MN_incsspd 0x12fb
+#define MN_rdsspd 0x1303
+#define MN_vcompresspd 0x130a
+#define MN_vcmpnge_uspd 0x1316
+#define MN_vcmpnle_uspd 0x1323
+#define MN_vcmptrue_uspd 0x1330
+#define MN_vcmpneq_uspd 0x133e
+#define MN_vcmpeq_uspd 0x134b
+#define MN_vcmpngt_uspd 0x1357
+#define MN_vcmpnlt_uspd 0x1364
+#define MN_vcmpngtpd 0x1371
+#define MN_vcmpgtpd 0x137b
#define MN_cmpnltpd (MN_vcmpnltpd + 1)
-#define MN_vcmpnltpd 0x137c
+#define MN_vcmpnltpd 0x1384
#define MN_cmpltpd (MN_vcmpltpd + 1)
-#define MN_vcmpltpd 0x1386
-#define MN_vgetmantpd 0x138f
+#define MN_vcmpltpd 0x138e
+#define MN_vgetmantpd 0x1397
#define MN_movntpd (MN_vmovntpd + 1)
-#define MN_vmovntpd 0x139a
+#define MN_vmovntpd 0x13a2
#define MN_sqrtpd (MN_vsqrtpd + 1)
-#define MN_vsqrtpd 0x13a3
-#define MN_vtestpd 0x13ab
+#define MN_vsqrtpd 0x13ab
+#define MN_vtestpd 0x13b3
#define MN_movupd (MN_vmovupd + 1)
-#define MN_vmovupd 0x13b3
+#define MN_vmovupd 0x13bb
#define MN_blendvpd (MN_vblendvpd + 1)
-#define MN_vblendvpd 0x13bb
+#define MN_vblendvpd 0x13c3
#define MN_divpd (MN_vdivpd + 1)
-#define MN_vdivpd 0x13c5
-#define MN_vmaskmovpd 0x13cc
+#define MN_vdivpd 0x13cd
+#define MN_vmaskmovpd 0x13d4
#define MN_maxpd (MN_vmaxpd + 1)
-#define MN_vmaxpd 0x13d7
-#define MN_vfrczpd 0x13de
-#define MN_vpcomeqd 0x13e6
-#define MN_vpcomneqd 0x13ef
-#define MN_vpcmpneqd 0x13f9
+#define MN_vmaxpd 0x13df
+#define MN_vfrczpd 0x13e6
+#define MN_vpcomeqd 0x13ee
+#define MN_vpcomneqd 0x13f7
+#define MN_vpcmpneqd 0x1401
#define MN_pcmpeqd (MN_vpcmpeqd + 1)
-#define MN_vpcmpeqd 0x1403
-#define MN_vpgatherqd 0x140c
-#define MN_vpscatterqd 0x1417
-#define MN_vpmovusqd 0x1423
-#define MN_vpmovsqd 0x142d
-#define MN_vpmovqd 0x1436
-#define MN_shrd 0x143e
-#define MN_kord 0x1443
-#define MN_kxnord 0x1448
-#define MN_vpord 0x144f
-#define MN_vprord 0x1455
+#define MN_vpcmpeqd 0x140b
+#define MN_vpgatherqd 0x1414
+#define MN_vpscatterqd 0x141f
+#define MN_vpmovusqd 0x142b
+#define MN_vpmovsqd 0x1435
+#define MN_vpmovqd 0x143e
+#define MN_shrd 0x1446
+#define MN_kord 0x144b
+#define MN_kxnord 0x1450
+#define MN_vpord 0x1457
+#define MN_vprord 0x145d
#define MN_word (MN_aword + 1)
-#define MN_aword 0x145c
+#define MN_aword 0x1464
#define MN_dword (MN_adword + 1)
-#define MN_adword 0x1462
-#define MN_kxord 0x1469
-#define MN_vpxord 0x146f
+#define MN_adword 0x146a
+#define MN_kxord 0x1471
+#define MN_vpxord 0x1477
#define MN_pinsrd (MN_vpinsrd + 1)
-#define MN_vpinsrd 0x1476
-#define MN_kshiftrd 0x147e
+#define MN_vpinsrd 0x147e
+#define MN_kshiftrd 0x1486
#define MN_pextrd (MN_vpextrd + 1)
-#define MN_vpextrd 0x1487
-#define MN_vfmsub231sd 0x148f
-#define MN_vfnmsub231sd 0x149b
-#define MN_vfmadd231sd 0x14a8
-#define MN_vfnmadd231sd 0x14b4
-#define MN_vfmsub132sd 0x14c1
-#define MN_vfnmsub132sd 0x14cd
-#define MN_vfmadd132sd 0x14da
-#define MN_vfnmadd132sd 0x14e6
-#define MN_vcvtsh2sd 0x14f3
+#define MN_vpextrd 0x148f
+#define MN_vfmsub231sd 0x1497
+#define MN_vfnmsub231sd 0x14a3
+#define MN_vfmadd231sd 0x14b0
+#define MN_vfnmadd231sd 0x14bc
+#define MN_vfmsub132sd 0x14c9
+#define MN_vfnmsub132sd 0x14d5
+#define MN_vfmadd132sd 0x14e2
+#define MN_vfnmadd132sd 0x14ee
+#define MN_vcvtsh2sd 0x14fb
#define MN_cvtsi2sd (MN_vcvtsi2sd + 1)
-#define MN_vcvtsi2sd 0x14fd
-#define MN_vcvtusi2sd 0x1507
+#define MN_vcvtsi2sd 0x1505
+#define MN_vcvtusi2sd 0x150f
#define MN_cvtss2sd (MN_vcvtss2sd + 1)
-#define MN_vcvtss2sd 0x1512
-#define MN_vfmsub213sd 0x151c
-#define MN_vfnmsub213sd 0x1528
-#define MN_vfmadd213sd 0x1535
-#define MN_vfnmadd213sd 0x1541
-#define MN_vrcp14sd 0x154e
-#define MN_vrsqrt14sd 0x1557
-#define MN_vrcp28sd 0x1562
-#define MN_vrsqrt28sd 0x156b
+#define MN_vcvtss2sd 0x151a
+#define MN_vfmsub213sd 0x1524
+#define MN_vfnmsub213sd 0x1530
+#define MN_vfmadd213sd 0x153d
+#define MN_vfnmadd213sd 0x1549
+#define MN_vrcp14sd 0x1556
+#define MN_vrsqrt14sd 0x155f
+#define MN_vrcp28sd 0x156a
+#define MN_vrsqrt28sd 0x1573
#define MN_pabsd (MN_vpabsd + 1)
-#define MN_vpabsd 0x1576
+#define MN_vpabsd 0x157e
#define MN_subsd (MN_vfmsubsd + 3)
-#define MN_vfmsubsd 0x157d
-#define MN_vfnmsubsd 0x1586
-#define MN_vsubsd 0x1590
+#define MN_vfmsubsd 0x1585
+#define MN_vfnmsubsd 0x158e
+#define MN_vsubsd 0x1598
#define MN_addsd (MN_vfmaddsd + 3)
-#define MN_vfmaddsd 0x1597
-#define MN_vfnmaddsd 0x15a0
-#define MN_vaddsd 0x15aa
+#define MN_vfmaddsd 0x159f
+#define MN_vfnmaddsd 0x15a8
+#define MN_vaddsd 0x15b2
#define MN_roundsd (MN_vroundsd + 1)
-#define MN_vroundsd 0x15b1
+#define MN_vroundsd 0x15b9
#define MN_cmpunordsd (MN_vcmpunordsd + 1)
-#define MN_vcmpunordsd 0x15ba
+#define MN_vcmpunordsd 0x15c2
#define MN_cmpordsd (MN_vcmpordsd + 1)
-#define MN_vcmpordsd 0x15c6
-#define MN_vreducesd 0x15d0
-#define MN_vrangesd 0x15da
-#define MN_vcmpngesd 0x15e3
-#define MN_vcmpgesd 0x15ed
-#define MN_vrndscalesd 0x15f6
+#define MN_vcmpordsd 0x15ce
+#define MN_vreducesd 0x15d8
+#define MN_vrangesd 0x15e2
+#define MN_vcmpngesd 0x15eb
+#define MN_vcmpgesd 0x15f5
+#define MN_vrndscalesd 0x15fe
#define MN_cmpnlesd (MN_vcmpnlesd + 1)
-#define MN_vcmpnlesd 0x1602
+#define MN_vcmpnlesd 0x160a
#define MN_cmplesd (MN_vcmplesd + 1)
-#define MN_vcmplesd 0x160c
-#define MN_vcmpfalsesd 0x1615
-#define MN_vcmptruesd 0x1621
-#define MN_vscalefsd 0x162c
+#define MN_vcmplesd 0x1614
+#define MN_vcmpfalsesd 0x161d
+#define MN_vcmptruesd 0x1629
+#define MN_vscalefsd 0x1634
#define MN_comisd (MN_ucomisd + 1)
#define MN_ucomisd (MN_vucomisd + 1)
-#define MN_vucomisd 0x1636
-#define MN_vcomisd 0x163f
+#define MN_vucomisd 0x163e
+#define MN_vcomisd 0x1647
#define MN_mulsd (MN_vmulsd + 1)
-#define MN_vmulsd 0x1647
-#define MN_vfixupimmsd 0x164e
+#define MN_vmulsd 0x164f
+#define MN_vfixupimmsd 0x1656
#define MN_minsd (MN_pminsd + 1)
#define MN_pminsd (MN_vpminsd + 1)
-#define MN_vpminsd 0x165a
-#define MN_vminsd 0x1662
+#define MN_vpminsd 0x1662
+#define MN_vminsd 0x166a
#define MN_cmpsd (MN_vcmpsd + 1)
-#define MN_vcmpsd 0x1669
-#define MN_vgetexpsd 0x1670
-#define MN_vcmpunord_qsd 0x167a
-#define MN_vcmpord_qsd 0x1688
+#define MN_vcmpsd 0x1671
+#define MN_vgetexpsd 0x1678
+#define MN_vcmpunord_qsd 0x1682
+#define MN_vcmpord_qsd 0x1690
#define MN_cmpneqsd (MN_vcmpneqsd + 1)
-#define MN_vcmpneqsd 0x1694
+#define MN_vcmpneqsd 0x169c
#define MN_cmpeqsd (MN_vcmpeqsd + 1)
-#define MN_vcmpeqsd 0x169e
-#define MN_vcmpge_oqsd 0x16a7
-#define MN_vcmple_oqsd 0x16b3
-#define MN_vcmpfalse_oqsd 0x16bf
-#define MN_vcmpneq_oqsd 0x16ce
-#define MN_vcmpeq_oqsd 0x16db
-#define MN_vcmpgt_oqsd 0x16e7
-#define MN_vcmplt_oqsd 0x16f3
-#define MN_vcmpnge_uqsd 0x16ff
-#define MN_vcmpnle_uqsd 0x170c
-#define MN_vcmptrue_uqsd 0x1719
-#define MN_vcmpneq_uqsd 0x1727
-#define MN_vcmpeq_uqsd 0x1734
-#define MN_vcmpngt_uqsd 0x1740
-#define MN_vcmpnlt_uqsd 0x174d
-#define MN_vcmpunord_ssd 0x175a
-#define MN_vcmpord_ssd 0x1768
-#define MN_vpdpbssd 0x1774
-#define MN_tdpbssd 0x177d
-#define MN_vpcompressd 0x1785
-#define MN_vcmpge_ossd 0x1791
-#define MN_vcmple_ossd 0x179d
-#define MN_vcmpfalse_ossd 0x17a9
-#define MN_vcmpneq_ossd 0x17b8
-#define MN_vcmpeq_ossd 0x17c5
-#define MN_vcmpgt_ossd 0x17d1
-#define MN_vcmplt_ossd 0x17dd
-#define MN_wrssd 0x17e9
-#define MN_vfpclasssd 0x17ef
-#define MN_vcmpnge_ussd 0x17fa
-#define MN_vcmpnle_ussd 0x1807
-#define MN_vcmptrue_ussd 0x1814
-#define MN_vcmpneq_ussd 0x1822
-#define MN_vcmpeq_ussd 0x182f
-#define MN_vcmpngt_ussd 0x183b
-#define MN_vcmpnlt_ussd 0x1848
-#define MN_wrussd 0x1855
-#define MN_vp4dpwssd 0x185c
-#define MN_vpdpwssd 0x1866
-#define MN_vcmpngtsd 0x186f
-#define MN_vcmpgtsd 0x1879
+#define MN_vcmpeqsd 0x16a6
+#define MN_vcmpge_oqsd 0x16af
+#define MN_vcmple_oqsd 0x16bb
+#define MN_vcmpfalse_oqsd 0x16c7
+#define MN_vcmpneq_oqsd 0x16d6
+#define MN_vcmpeq_oqsd 0x16e3
+#define MN_vcmpgt_oqsd 0x16ef
+#define MN_vcmplt_oqsd 0x16fb
+#define MN_vcmpnge_uqsd 0x1707
+#define MN_vcmpnle_uqsd 0x1714
+#define MN_vcmptrue_uqsd 0x1721
+#define MN_vcmpneq_uqsd 0x172f
+#define MN_vcmpeq_uqsd 0x173c
+#define MN_vcmpngt_uqsd 0x1748
+#define MN_vcmpnlt_uqsd 0x1755
+#define MN_vcmpunord_ssd 0x1762
+#define MN_vcmpord_ssd 0x1770
+#define MN_vpdpbssd 0x177c
+#define MN_tdpbssd 0x1785
+#define MN_vpcompressd 0x178d
+#define MN_vcmpge_ossd 0x1799
+#define MN_vcmple_ossd 0x17a5
+#define MN_vcmpfalse_ossd 0x17b1
+#define MN_vcmpneq_ossd 0x17c0
+#define MN_vcmpeq_ossd 0x17cd
+#define MN_vcmpgt_ossd 0x17d9
+#define MN_vcmplt_ossd 0x17e5
+#define MN_wrssd 0x17f1
+#define MN_vfpclasssd 0x17f7
+#define MN_vcmpnge_ussd 0x1802
+#define MN_vcmpnle_ussd 0x180f
+#define MN_vcmptrue_ussd 0x181c
+#define MN_vcmpneq_ussd 0x182a
+#define MN_vcmpeq_ussd 0x1837
+#define MN_vcmpngt_ussd 0x1843
+#define MN_vcmpnlt_ussd 0x1850
+#define MN_wrussd 0x185d
+#define MN_vp4dpwssd 0x1864
+#define MN_vpdpwssd 0x186e
+#define MN_vcmpngtsd 0x1877
+#define MN_vcmpgtsd 0x1881
#define MN_cmpnltsd (MN_vcmpnltsd + 1)
-#define MN_vcmpnltsd 0x1882
+#define MN_vcmpnltsd 0x188a
#define MN_cmpltsd (MN_vcmpltsd + 1)
-#define MN_vcmpltsd 0x188c
-#define MN_vgetmantsd 0x1895
-#define MN_movntsd 0x18a0
+#define MN_vcmpltsd 0x1894
+#define MN_vgetmantsd 0x189d
+#define MN_movntsd 0x18a8
#define MN_sqrtsd (MN_vsqrtsd + 1)
-#define MN_vsqrtsd 0x18a8
-#define MN_vbroadcastsd 0x18b0
-#define MN_vpdpbusd 0x18bd
-#define MN_tdpbusd 0x18c6
-#define MN_vpdpwusd 0x18ce
+#define MN_vsqrtsd 0x18b0
+#define MN_vbroadcastsd 0x18b8
+#define MN_vpdpbusd 0x18c5
+#define MN_tdpbusd 0x18ce
+#define MN_vpdpwusd 0x18d6
#define MN_divsd (MN_vdivsd + 1)
-#define MN_vdivsd 0x18d7
+#define MN_vdivsd 0x18df
#define MN_movsd (MN_vmovsd + 1)
-#define MN_vmovsd 0x18de
+#define MN_vmovsd 0x18e6
#define MN_maxsd (MN_pmaxsd + 1)
#define MN_pmaxsd (MN_vpmaxsd + 1)
-#define MN_vpmaxsd 0x18e5
-#define MN_vmaxsd 0x18ed
-#define MN_vfrczsd 0x18f4
-#define MN_vp2intersectd 0x18fc
-#define MN_vpconflictd 0x190a
-#define MN_vpcomgtd 0x1916
+#define MN_vpmaxsd 0x18ed
+#define MN_vmaxsd 0x18f5
+#define MN_vfrczsd 0x18fc
+#define MN_vp2intersectd 0x1904
+#define MN_vpconflictd 0x1912
+#define MN_vpcomgtd 0x191e
#define MN_pcmpgtd (MN_vpcmpgtd + 1)
-#define MN_vpcmpgtd 0x191f
-#define MN_cltd 0x1928
-#define MN_vpcomltd 0x192d
-#define MN_vpcmpnltd 0x1936
-#define MN_vpcmpltd 0x1940
-#define MN_vpopcntd 0x1949
-#define MN_vplzcntd 0x1952
-#define MN_knotd 0x195b
-#define MN_vprotd 0x1961
+#define MN_vpcmpgtd 0x1927
+#define MN_cltd 0x1930
+#define MN_vpcomltd 0x1935
+#define MN_vpcmpnltd 0x193e
+#define MN_vpcmpltd 0x1948
+#define MN_vpopcntd 0x1951
+#define MN_vplzcntd 0x195a
+#define MN_knotd 0x1963
+#define MN_vprotd 0x1969
#define MN_std (MN_vpbroadcastd + 9)
-#define MN_vpbroadcastd 0x1968
-#define MN_ktestd 0x1975
-#define MN_kortestd 0x197c
-#define MN_cwtd 0x1985
-#define MN_vpcomgeud 0x198a
-#define MN_vpcomleud 0x1994
-#define MN_vpcmpnleud 0x199e
-#define MN_vpcmpleud 0x19a9
-#define MN_vpcomfalseud 0x19b3
-#define MN_vpcomtrueud 0x19c0
-#define MN_vpcomud 0x19cc
+#define MN_vpbroadcastd 0x1970
+#define MN_ktestd 0x197d
+#define MN_kortestd 0x1984
+#define MN_cwtd 0x198d
+#define MN_vpcomgeud 0x1992
+#define MN_vpcomleud 0x199c
+#define MN_vpcmpnleud 0x19a6
+#define MN_vpcmpleud 0x19b1
+#define MN_vpcomfalseud 0x19bb
+#define MN_vpcomtrueud 0x19c8
+#define MN_vpcomud 0x19d4
#define MN_pminud (MN_vpminud + 1)
-#define MN_vpminud 0x19d4
-#define MN_vpcmpud 0x19dc
-#define MN_vpcomequd 0x19e4
-#define MN_vpcomnequd 0x19ee
-#define MN_vpcmpnequd 0x19f9
-#define MN_vpcmpequd 0x1a04
-#define MN_vpdpbsud 0x1a0e
-#define MN_tdpbsud 0x1a17
-#define MN_vpdpwsud 0x1a1f
-#define MN_vpcomgtud 0x1a28
-#define MN_vpcomltud 0x1a32
-#define MN_vpcmpnltud 0x1a3c
-#define MN_vpcmpltud 0x1a47
-#define MN_vpdpbuud 0x1a51
-#define MN_tdpbuud 0x1a5a
-#define MN_vpdpwuud 0x1a62
+#define MN_vpminud 0x19dc
+#define MN_vpcmpud 0x19e4
+#define MN_vpcomequd 0x19ec
+#define MN_vpcomnequd 0x19f6
+#define MN_vpcmpnequd 0x1a01
+#define MN_vpcmpequd 0x1a0c
+#define MN_vpdpbsud 0x1a16
+#define MN_tdpbsud 0x1a1f
+#define MN_vpdpwsud 0x1a27
+#define MN_vpcomgtud 0x1a30
+#define MN_vpcomltud 0x1a3a
+#define MN_vpcmpnltud 0x1a44
+#define MN_vpcmpltud 0x1a4f
+#define MN_vpdpbuud 0x1a59
+#define MN_tdpbuud 0x1a62
+#define MN_vpdpwuud 0x1a6a
#define MN_pmaxud (MN_vpmaxud + 1)
-#define MN_vpmaxud 0x1a6b
-#define MN_vpsravd 0x1a73
-#define MN_vpshldvd 0x1a7b
-#define MN_vpshrdvd 0x1a84
-#define MN_vpsllvd 0x1a8d
-#define MN_vprolvd 0x1a95
-#define MN_vpsrlvd 0x1a9d
+#define MN_vpmaxud 0x1a73
+#define MN_vpsravd 0x1a7b
+#define MN_vpshldvd 0x1a83
+#define MN_vpshrdvd 0x1a8c
+#define MN_vpsllvd 0x1a95
+#define MN_vprolvd 0x1a9d
+#define MN_vpsrlvd 0x1aa5
#define MN_invd (MN_wbinvd + 2)
-#define MN_wbinvd 0x1aa5
-#define MN_wbnoinvd 0x1aac
+#define MN_wbinvd 0x1aad
+#define MN_wbnoinvd 0x1ab4
#define MN_movd (MN_kmovd + 1)
#define MN_kmovd (MN_vpmaskmovd + 5)
-#define MN_vpmaskmovd 0x1ab5
-#define MN_vmovd 0x1ac0
-#define MN_vprorvd 0x1ac6
-#define MN_vphsubwd 0x1ace
-#define MN_cwd 0x1ad7
-#define MN_vphaddwd 0x1adb
+#define MN_vpmaskmovd 0x1abd
+#define MN_vmovd 0x1ac8
+#define MN_vprorvd 0x1ace
+#define MN_vphsubwd 0x1ad6
+#define MN_cwd 0x1adf
+#define MN_vphaddwd 0x1ae3
#define MN_pmaddwd (MN_vpmaddwd + 1)
-#define MN_vpmaddwd 0x1ae4
+#define MN_vpmaddwd 0x1aec
#define MN_punpckhwd (MN_vpunpckhwd + 1)
-#define MN_vpunpckhwd 0x1aed
-#define MN_kunpckwd 0x1af8
+#define MN_vpunpckhwd 0x1af5
+#define MN_kunpckwd 0x1b00
#define MN_punpcklwd (MN_vpunpcklwd + 1)
-#define MN_vpunpcklwd 0x1b01
-#define MN_vpmacswd 0x1b0c
-#define MN_vpmadcswd 0x1b15
-#define MN_vpmacsswd 0x1b1f
-#define MN_vpmadcsswd 0x1b29
-#define MN_vphadduwd 0x1b34
+#define MN_vpunpcklwd 0x1b09
+#define MN_vpmacswd 0x1b14
+#define MN_vpmadcswd 0x1b1d
+#define MN_vpmacsswd 0x1b27
+#define MN_vpmadcsswd 0x1b31
+#define MN_vphadduwd 0x1b3c
#define MN_pmovsxwd (MN_vpmovsxwd + 1)
-#define MN_vpmovsxwd 0x1b3e
+#define MN_vpmovsxwd 0x1b46
#define MN_pmovzxwd (MN_vpmovzxwd + 1)
-#define MN_vpmovzxwd 0x1b48
-#define MN_movsxd 0x1b52
-#define MN_fldl2e 0x1b59
-#define MN_jae 0x1b60
-#define MN_jnae 0x1b64
-#define MN_ccmpnae 0x1b69
-#define MN_setnae 0x1b71
-#define MN_ctestnae 0x1b78
-#define MN_setzunae 0x1b81
+#define MN_vpmovzxwd 0x1b50
+#define MN_movsxd 0x1b5a
+#define MN_fldl2e 0x1b61
+#define MN_jae 0x1b68
+#define MN_jnae 0x1b6c
+#define MN_ccmpnae 0x1b71
+#define MN_setnae 0x1b79
+#define MN_ctestnae 0x1b80
+#define MN_setzunae 0x1b89
#define MN_cmovnae (MN_fcmovnae + 1)
-#define MN_fcmovnae 0x1b8a
-#define MN_ccmpae 0x1b93
-#define MN_setae 0x1b9a
-#define MN_ctestae 0x1ba0
-#define MN_setzuae 0x1ba8
+#define MN_fcmovnae (MN_cfcmovnae + 1)
+#define MN_cfcmovnae 0x1b92
+#define MN_ccmpae 0x1b9c
+#define MN_setae 0x1ba3
+#define MN_ctestae 0x1ba9
+#define MN_setzuae 0x1bb1
#define MN_cmovae (MN_fcmovae + 1)
-#define MN_fcmovae 0x1bb0
-#define MN_jbe 0x1bb8
-#define MN_jnbe 0x1bbc
-#define MN_ccmpnbe 0x1bc1
-#define MN_setnbe 0x1bc9
-#define MN_ctestnbe 0x1bd0
-#define MN_setzunbe 0x1bd9
+#define MN_fcmovae (MN_cfcmovae + 1)
+#define MN_cfcmovae 0x1bb9
+#define MN_jbe 0x1bc2
+#define MN_jnbe 0x1bc6
+#define MN_ccmpnbe 0x1bcb
+#define MN_setnbe 0x1bd3
+#define MN_ctestnbe 0x1bda
+#define MN_setzunbe 0x1be3
#define MN_cmovnbe (MN_fcmovnbe + 1)
-#define MN_fcmovnbe 0x1be2
-#define MN_ccmpbe 0x1beb
-#define MN_setbe 0x1bf2
-#define MN_ctestbe 0x1bf8
-#define MN_setzube 0x1c00
+#define MN_fcmovnbe (MN_cfcmovnbe + 1)
+#define MN_cfcmovnbe 0x1bec
+#define MN_ccmpbe 0x1bf6
+#define MN_setbe 0x1bfd
+#define MN_ctestbe 0x1c03
+#define MN_setzube 0x1c0b
#define MN_movbe (MN_cmovbe + 1)
#define MN_cmovbe (MN_fcmovbe + 1)
-#define MN_fcmovbe 0x1c08
-#define MN_lfence 0x1c10
-#define MN_mfence 0x1c17
-#define MN_sfence 0x1c1e
-#define MN_cwde 0x1c25
-#define MN_ffree 0x1c2a
-#define MN_jge 0x1c30
-#define MN_jnge 0x1c34
-#define MN_ccmpnge 0x1c39
-#define MN_setnge 0x1c41
-#define MN_ctestnge 0x1c48
-#define MN_setzunge 0x1c51
-#define MN_cmovnge 0x1c5a
-#define MN_ccmpge 0x1c62
-#define MN_pfcmpge 0x1c69
-#define MN_setge 0x1c71
-#define MN_ctestge 0x1c77
-#define MN_setzuge 0x1c7f
-#define MN_cmovge 0x1c87
-#define MN_je 0x1c8e
-#define MN_fscale 0x1c91
-#define MN_jle 0x1c98
-#define MN_jnle 0x1c9c
-#define MN_ccmpnle 0x1ca1
-#define MN_setnle 0x1ca9
-#define MN_ctestnle 0x1cb0
-#define MN_setzunle 0x1cb9
-#define MN_cmovnle 0x1cc2
-#define MN_ccmple 0x1cca
-#define MN_setle 0x1cd1
-#define MN_ctestle 0x1cd7
-#define MN_setzule 0x1cdf
-#define MN_cmovle 0x1ce7
-#define MN_vmresume 0x1cee
-#define MN_jne 0x1cf7
-#define MN_repne 0x1cfb
-#define MN_ccmpne 0x1d01
-#define MN_loopne 0x1d08
-#define MN_setne 0x1d0f
-#define MN_ctestne 0x1d15
-#define MN_setzune 0x1d1d
+#define MN_fcmovbe (MN_cfcmovbe + 1)
+#define MN_cfcmovbe 0x1c13
+#define MN_lfence 0x1c1c
+#define MN_mfence 0x1c23
+#define MN_sfence 0x1c2a
+#define MN_cwde 0x1c31
+#define MN_ffree 0x1c36
+#define MN_jge 0x1c3c
+#define MN_jnge 0x1c40
+#define MN_ccmpnge 0x1c45
+#define MN_setnge 0x1c4d
+#define MN_ctestnge 0x1c54
+#define MN_setzunge 0x1c5d
+#define MN_cmovnge (MN_cfcmovnge + 2)
+#define MN_cfcmovnge 0x1c66
+#define MN_ccmpge 0x1c70
+#define MN_pfcmpge 0x1c77
+#define MN_setge 0x1c7f
+#define MN_ctestge 0x1c85
+#define MN_setzuge 0x1c8d
+#define MN_cmovge (MN_cfcmovge + 2)
+#define MN_cfcmovge 0x1c95
+#define MN_je 0x1c9e
+#define MN_fscale 0x1ca1
+#define MN_jle 0x1ca8
+#define MN_jnle 0x1cac
+#define MN_ccmpnle 0x1cb1
+#define MN_setnle 0x1cb9
+#define MN_ctestnle 0x1cc0
+#define MN_setzunle 0x1cc9
+#define MN_cmovnle (MN_cfcmovnle + 2)
+#define MN_cfcmovnle 0x1cd2
+#define MN_ccmple 0x1cdc
+#define MN_setle 0x1ce3
+#define MN_ctestle 0x1ce9
+#define MN_setzule 0x1cf1
+#define MN_cmovle (MN_cfcmovle + 2)
+#define MN_cfcmovle 0x1cf9
+#define MN_vmresume 0x1d02
+#define MN_jne 0x1d0b
+#define MN_repne 0x1d0f
+#define MN_ccmpne 0x1d15
+#define MN_loopne 0x1d1c
+#define MN_setne 0x1d23
+#define MN_ctestne 0x1d29
+#define MN_setzune 0x1d31
#define MN_cmovne (MN_fcmovne + 1)
-#define MN_fcmovne 0x1d25
-#define MN_repe 0x1d2d
-#define MN_jpe 0x1d32
-#define MN_ccmpe 0x1d36
-#define MN_loope 0x1d3c
-#define MN_setpe 0x1d42
-#define MN_setzupe 0x1d48
-#define MN_cmovpe 0x1d50
-#define MN_cdqe 0x1d57
-#define MN_xacquire 0x1d5c
-#define MN_xstore 0x1d65
-#define MN_rdfsbase 0x1d6c
-#define MN_wrfsbase 0x1d75
-#define MN_rdgsbase 0x1d7e
-#define MN_wrgsbase 0x1d87
-#define MN_tilerelease 0x1d90
-#define MN_xrelease 0x1d9c
+#define MN_fcmovne (MN_cfcmovne + 1)
+#define MN_cfcmovne 0x1d39
+#define MN_repe 0x1d42
+#define MN_jpe 0x1d47
+#define MN_ccmpe 0x1d4b
+#define MN_loope 0x1d51
+#define MN_setpe 0x1d57
+#define MN_setzupe 0x1d5d
+#define MN_cmovpe (MN_cfcmovpe + 2)
+#define MN_cfcmovpe 0x1d65
+#define MN_cdqe 0x1d6e
+#define MN_xacquire 0x1d73
+#define MN_xstore 0x1d7c
+#define MN_rdfsbase 0x1d83
+#define MN_wrfsbase 0x1d8c
+#define MN_rdgsbase 0x1d95
+#define MN_wrgsbase 0x1d9e
+#define MN_tilerelease 0x1da7
+#define MN_xrelease 0x1db3
#define MN_pause (MN_tpause + 1)
-#define MN_tpause 0x1da5
-#define MN_pvalidate 0x1dac
-#define MN_rmpupdate 0x1db6
-#define MN_sete 0x1dc0
-#define MN_vmwrite 0x1dc5
-#define MN_ptwrite 0x1dcd
-#define MN_cldemote 0x1dd5
-#define MN_cteste 0x1dde
-#define MN_sha1nexte 0x1de5
-#define MN_setzue 0x1def
-#define MN_leave 0x1df6
-#define MN_fsave 0x1dfc
-#define MN_vmsave 0x1e02
-#define MN_fnsave 0x1e09
+#define MN_tpause 0x1dbc
+#define MN_pvalidate 0x1dc3
+#define MN_rmpupdate 0x1dcd
+#define MN_sete 0x1dd7
+#define MN_vmwrite 0x1ddc
+#define MN_ptwrite 0x1de4
+#define MN_cldemote 0x1dec
+#define MN_cteste 0x1df5
+#define MN_sha1nexte 0x1dfc
+#define MN_setzue 0x1e06
+#define MN_leave 0x1e0d
+#define MN_fsave 0x1e13
+#define MN_vmsave 0x1e19
+#define MN_fnsave 0x1e20
#define MN_xsave (MN_fxsave + 1)
-#define MN_fxsave 0x1e10
+#define MN_fxsave 0x1e27
#define MN_cmove (MN_fcmove + 1)
-#define MN_fcmove 0x1e17
-#define MN_serialize 0x1e1e
-#define MN_vmxoff 0x1e28
-#define MN_lahf 0x1e2f
-#define MN_sahf 0x1e34
-#define MN_pushf 0x1e39
-#define MN_ccmpf 0x1e3f
-#define MN_popf 0x1e45
-#define MN_bsf 0x1e4a
-#define MN_retf 0x1e4e
-#define MN_ctestf 0x1e53
-#define MN_neg 0x1e5a
-#define MN_ldtilecfg 0x1e5e
-#define MN_sttilecfg 0x1e68
+#define MN_fcmove (MN_cfcmove + 1)
+#define MN_cfcmove 0x1e2e
+#define MN_serialize 0x1e36
+#define MN_vmxoff 0x1e40
+#define MN_lahf 0x1e47
+#define MN_sahf 0x1e4c
+#define MN_pushf 0x1e51
+#define MN_ccmpf 0x1e57
+#define MN_popf 0x1e5d
+#define MN_bsf 0x1e62
+#define MN_retf 0x1e66
+#define MN_ctestf 0x1e6b
+#define MN_neg 0x1e72
+#define MN_ldtilecfg 0x1e76
+#define MN_sttilecfg 0x1e80
#define MN_xchg (MN_cmpxchg + 3)
-#define MN_cmpxchg 0x1e72
-#define MN_pconfig 0x1e7a
-#define MN_jg 0x1e82
-#define MN_jng 0x1e85
-#define MN_ccmpng 0x1e89
-#define MN_xstore_rng 0x1e90
-#define MN_xstorerng 0x1e9b
-#define MN_setng 0x1ea5
-#define MN_ctestng 0x1eab
-#define MN_setzung 0x1eb3
-#define MN_cmovng 0x1ebb
-#define MN_invlpg 0x1ec2
-#define MN_ccmpg 0x1ec9
-#define MN_setg 0x1ecf
-#define MN_ctestg 0x1ed4
-#define MN_setzug 0x1edb
-#define MN_cmovg 0x1ee2
-#define MN_vmlaunch 0x1ee8
-#define MN_prefetch 0x1ef1
-#define MN_fxch 0x1efa
-#define MN_vfmaddsub231ph 0x1eff
-#define MN_vfmsub231ph 0x1f0e
-#define MN_vfnmsub231ph 0x1f1a
-#define MN_vfmsubadd231ph 0x1f27
-#define MN_vfmadd231ph 0x1f36
-#define MN_vfnmadd231ph 0x1f42
-#define MN_vfmaddsub132ph 0x1f4f
-#define MN_vfmsub132ph 0x1f5e
-#define MN_vfnmsub132ph 0x1f6a
-#define MN_vfmsubadd132ph 0x1f77
-#define MN_vfmadd132ph 0x1f86
-#define MN_vfnmadd132ph 0x1f92
-#define MN_vcvtpd2ph 0x1f9f
-#define MN_vcvtdq2ph 0x1fa9
-#define MN_vcvtudq2ph 0x1fb3
-#define MN_vcvtqq2ph 0x1fbe
-#define MN_vcvtuqq2ph 0x1fc8
-#define MN_vcvtps2ph 0x1fd3
-#define MN_vcvtw2ph 0x1fdd
-#define MN_vcvtuw2ph 0x1fe6
-#define MN_vfmaddsub213ph 0x1ff0
-#define MN_vfmsub213ph 0x1fff
-#define MN_vfnmsub213ph 0x200b
-#define MN_vfmsubadd213ph 0x2018
-#define MN_vfmadd213ph 0x2027
-#define MN_vfnmadd213ph 0x2033
-#define MN_vsubph 0x2040
-#define MN_vfcmaddcph 0x2047
-#define MN_vfmaddcph 0x2052
-#define MN_vfcmulcph 0x205c
-#define MN_vfmulcph 0x2066
-#define MN_vaddph 0x206f
-#define MN_vcmpunordph 0x2076
-#define MN_vcmpordph 0x2082
-#define MN_vreduceph 0x208c
-#define MN_vcmpngeph 0x2096
-#define MN_vcmpgeph 0x20a0
-#define MN_vrndscaleph 0x20a9
-#define MN_vcmpnleph 0x20b5
-#define MN_vcmpleph 0x20bf
-#define MN_vcmpfalseph 0x20c8
-#define MN_vcmptrueph 0x20d4
-#define MN_vscalefph 0x20df
-#define MN_vmulph 0x20e9
-#define MN_vminph 0x20f0
-#define MN_vrcpph 0x20f7
-#define MN_vcmpph 0x20fe
-#define MN_vgetexpph 0x2105
-#define MN_vcmpunord_qph 0x210f
-#define MN_vcmpord_qph 0x211d
-#define MN_vcmpneqph 0x2129
-#define MN_vcmpeqph 0x2133
-#define MN_vcmpge_oqph 0x213c
-#define MN_vcmple_oqph 0x2148
-#define MN_vcmpfalse_oqph 0x2154
-#define MN_vcmpneq_oqph 0x2163
-#define MN_vcmpeq_oqph 0x2170
-#define MN_vcmpgt_oqph 0x217c
-#define MN_vcmplt_oqph 0x2188
-#define MN_vcmpnge_uqph 0x2194
-#define MN_vcmpnle_uqph 0x21a1
-#define MN_vcmptrue_uqph 0x21ae
-#define MN_vcmpneq_uqph 0x21bc
-#define MN_vcmpeq_uqph 0x21c9
-#define MN_vcmpngt_uqph 0x21d5
-#define MN_vcmpnlt_uqph 0x21e2
-#define MN_vcmpunord_sph 0x21ef
-#define MN_vcmpord_sph 0x21fd
-#define MN_vcmpge_osph 0x2209
-#define MN_vcmple_osph 0x2215
-#define MN_vcmpfalse_osph 0x2221
-#define MN_vcmpneq_osph 0x2230
-#define MN_vcmpeq_osph 0x223d
-#define MN_vcmpgt_osph 0x2249
-#define MN_vcmplt_osph 0x2255
-#define MN_vfpclassph 0x2261
-#define MN_vcmpnge_usph 0x226c
-#define MN_vcmpnle_usph 0x2279
-#define MN_vcmptrue_usph 0x2286
-#define MN_vcmpneq_usph 0x2294
-#define MN_vcmpeq_usph 0x22a1
-#define MN_vcmpngt_usph 0x22ad
-#define MN_vcmpnlt_usph 0x22ba
-#define MN_vcmpngtph 0x22c7
-#define MN_vcmpgtph 0x22d1
-#define MN_vcmpnltph 0x22da
-#define MN_vcmpltph 0x22e4
-#define MN_vgetmantph 0x22ed
-#define MN_vrsqrtph 0x22f8
-#define MN_vsqrtph 0x2301
-#define MN_vdivph 0x2309
-#define MN_vmaxph 0x2310
-#define MN_vpmacsdqh 0x2317
-#define MN_vpmacssdqh 0x2321
-#define MN_vfmsub231sh 0x232c
-#define MN_vfnmsub231sh 0x2338
-#define MN_vfmadd231sh 0x2345
-#define MN_vfnmadd231sh 0x2351
-#define MN_vfmsub132sh 0x235e
-#define MN_vfnmsub132sh 0x236a
-#define MN_vfmadd132sh 0x2377
-#define MN_vfnmadd132sh 0x2383
-#define MN_vcvtsd2sh 0x2390
-#define MN_vcvtsi2sh 0x239a
-#define MN_vcvtusi2sh 0x23a4
-#define MN_vcvtss2sh 0x23af
-#define MN_vfmsub213sh 0x23b9
-#define MN_vfnmsub213sh 0x23c5
-#define MN_vfmadd213sh 0x23d2
-#define MN_vfnmadd213sh 0x23de
-#define MN_psmash 0x23eb
-#define MN_vsubsh 0x23f2
-#define MN_vfcmaddcsh 0x23f9
-#define MN_vfmaddcsh 0x2404
-#define MN_vfcmulcsh 0x240e
-#define MN_vfmulcsh 0x2418
-#define MN_vaddsh 0x2421
-#define MN_vcmpunordsh 0x2428
-#define MN_vcmpordsh 0x2434
-#define MN_vreducesh 0x243e
-#define MN_vcmpngesh 0x2448
-#define MN_vcmpgesh 0x2452
-#define MN_vrndscalesh 0x245b
-#define MN_vcmpnlesh 0x2467
-#define MN_vcmplesh 0x2471
-#define MN_vcmpfalsesh 0x247a
-#define MN_vcmptruesh 0x2486
-#define MN_vscalefsh 0x2491
-#define MN_vucomish 0x249b
-#define MN_vcomish 0x24a4
-#define MN_vmulsh 0x24ac
-#define MN_vminsh 0x24b3
-#define MN_vrcpsh 0x24ba
-#define MN_vcmpsh 0x24c1
-#define MN_vgetexpsh 0x24c8
-#define MN_vcmpunord_qsh 0x24d2
-#define MN_vcmpord_qsh 0x24e0
-#define MN_vcmpneqsh 0x24ec
-#define MN_vcmpeqsh 0x24f6
-#define MN_vcmpge_oqsh 0x24ff
-#define MN_vcmple_oqsh 0x250b
-#define MN_vcmpfalse_oqsh 0x2517
-#define MN_vcmpneq_oqsh 0x2526
-#define MN_vcmpeq_oqsh 0x2533
-#define MN_vcmpgt_oqsh 0x253f
-#define MN_vcmplt_oqsh 0x254b
-#define MN_vcmpnge_uqsh 0x2557
-#define MN_vcmpnle_uqsh 0x2564
-#define MN_vcmptrue_uqsh 0x2571
-#define MN_vcmpneq_uqsh 0x257f
-#define MN_vcmpeq_uqsh 0x258c
-#define MN_vcmpngt_uqsh 0x2598
-#define MN_vcmpnlt_uqsh 0x25a5
-#define MN_vcmpunord_ssh 0x25b2
-#define MN_vcmpord_ssh 0x25c0
-#define MN_vcmpge_ossh 0x25cc
-#define MN_vcmple_ossh 0x25d8
-#define MN_vcmpfalse_ossh 0x25e4
-#define MN_vcmpneq_ossh 0x25f3
-#define MN_vcmpeq_ossh 0x2600
-#define MN_vcmpgt_ossh 0x260c
-#define MN_vcmplt_ossh 0x2618
-#define MN_vfpclasssh 0x2624
-#define MN_vcmpnge_ussh 0x262f
-#define MN_vcmpnle_ussh 0x263c
-#define MN_vcmptrue_ussh 0x2649
-#define MN_vcmpneq_ussh 0x2657
-#define MN_vcmpeq_ussh 0x2664
-#define MN_vcmpngt_ussh 0x2670
-#define MN_vcmpnlt_ussh 0x267d
-#define MN_vcmpngtsh 0x268a
-#define MN_vcmpgtsh 0x2694
-#define MN_vcmpnltsh 0x269d
-#define MN_vcmpltsh 0x26a7
-#define MN_vgetmantsh 0x26b0
-#define MN_vrsqrtsh 0x26bb
-#define MN_vsqrtsh 0x26c4
-#define MN_clflush 0x26cc
-#define MN_push 0x26d4
-#define MN_vdivsh 0x26d9
-#define MN_vmovsh 0x26e0
-#define MN_vmaxsh 0x26e7
-#define MN_blci 0x26ee
-#define MN_clgi 0x26f3
-#define MN_stgi 0x26f8
-#define MN_bzhi 0x26fd
-#define MN_cli 0x2702
-#define MN_fcomi 0x2706
-#define MN_fucomi 0x270c
-#define MN_feni 0x2713
-#define MN_fneni 0x2718
-#define MN_cvttpd2pi 0x271e
-#define MN_cvtpd2pi 0x2728
-#define MN_cvttps2pi 0x2731
-#define MN_cvtps2pi 0x273b
-#define MN_fldpi 0x2744
-#define MN_senduipi 0x274a
-#define MN_fcompi 0x2753
-#define MN_fucompi 0x275a
-#define MN_movdiri 0x2762
+#define MN_cmpxchg 0x1e8a
+#define MN_pconfig 0x1e92
+#define MN_jg 0x1e9a
+#define MN_jng 0x1e9d
+#define MN_ccmpng 0x1ea1
+#define MN_xstore_rng 0x1ea8
+#define MN_xstorerng 0x1eb3
+#define MN_setng 0x1ebd
+#define MN_ctestng 0x1ec3
+#define MN_setzung 0x1ecb
+#define MN_cmovng (MN_cfcmovng + 2)
+#define MN_cfcmovng 0x1ed3
+#define MN_invlpg 0x1edc
+#define MN_ccmpg 0x1ee3
+#define MN_setg 0x1ee9
+#define MN_ctestg 0x1eee
+#define MN_setzug 0x1ef5
+#define MN_cmovg (MN_cfcmovg + 2)
+#define MN_cfcmovg 0x1efc
+#define MN_vmlaunch 0x1f04
+#define MN_prefetch 0x1f0d
+#define MN_fxch 0x1f16
+#define MN_vfmaddsub231ph 0x1f1b
+#define MN_vfmsub231ph 0x1f2a
+#define MN_vfnmsub231ph 0x1f36
+#define MN_vfmsubadd231ph 0x1f43
+#define MN_vfmadd231ph 0x1f52
+#define MN_vfnmadd231ph 0x1f5e
+#define MN_vfmaddsub132ph 0x1f6b
+#define MN_vfmsub132ph 0x1f7a
+#define MN_vfnmsub132ph 0x1f86
+#define MN_vfmsubadd132ph 0x1f93
+#define MN_vfmadd132ph 0x1fa2
+#define MN_vfnmadd132ph 0x1fae
+#define MN_vcvtpd2ph 0x1fbb
+#define MN_vcvtdq2ph 0x1fc5
+#define MN_vcvtudq2ph 0x1fcf
+#define MN_vcvtqq2ph 0x1fda
+#define MN_vcvtuqq2ph 0x1fe4
+#define MN_vcvtps2ph 0x1fef
+#define MN_vcvtw2ph 0x1ff9
+#define MN_vcvtuw2ph 0x2002
+#define MN_vfmaddsub213ph 0x200c
+#define MN_vfmsub213ph 0x201b
+#define MN_vfnmsub213ph 0x2027
+#define MN_vfmsubadd213ph 0x2034
+#define MN_vfmadd213ph 0x2043
+#define MN_vfnmadd213ph 0x204f
+#define MN_vsubph 0x205c
+#define MN_vfcmaddcph 0x2063
+#define MN_vfmaddcph 0x206e
+#define MN_vfcmulcph 0x2078
+#define MN_vfmulcph 0x2082
+#define MN_vaddph 0x208b
+#define MN_vcmpunordph 0x2092
+#define MN_vcmpordph 0x209e
+#define MN_vreduceph 0x20a8
+#define MN_vcmpngeph 0x20b2
+#define MN_vcmpgeph 0x20bc
+#define MN_vrndscaleph 0x20c5
+#define MN_vcmpnleph 0x20d1
+#define MN_vcmpleph 0x20db
+#define MN_vcmpfalseph 0x20e4
+#define MN_vcmptrueph 0x20f0
+#define MN_vscalefph 0x20fb
+#define MN_vmulph 0x2105
+#define MN_vminph 0x210c
+#define MN_vrcpph 0x2113
+#define MN_vcmpph 0x211a
+#define MN_vgetexpph 0x2121
+#define MN_vcmpunord_qph 0x212b
+#define MN_vcmpord_qph 0x2139
+#define MN_vcmpneqph 0x2145
+#define MN_vcmpeqph 0x214f
+#define MN_vcmpge_oqph 0x2158
+#define MN_vcmple_oqph 0x2164
+#define MN_vcmpfalse_oqph 0x2170
+#define MN_vcmpneq_oqph 0x217f
+#define MN_vcmpeq_oqph 0x218c
+#define MN_vcmpgt_oqph 0x2198
+#define MN_vcmplt_oqph 0x21a4
+#define MN_vcmpnge_uqph 0x21b0
+#define MN_vcmpnle_uqph 0x21bd
+#define MN_vcmptrue_uqph 0x21ca
+#define MN_vcmpneq_uqph 0x21d8
+#define MN_vcmpeq_uqph 0x21e5
+#define MN_vcmpngt_uqph 0x21f1
+#define MN_vcmpnlt_uqph 0x21fe
+#define MN_vcmpunord_sph 0x220b
+#define MN_vcmpord_sph 0x2219
+#define MN_vcmpge_osph 0x2225
+#define MN_vcmple_osph 0x2231
+#define MN_vcmpfalse_osph 0x223d
+#define MN_vcmpneq_osph 0x224c
+#define MN_vcmpeq_osph 0x2259
+#define MN_vcmpgt_osph 0x2265
+#define MN_vcmplt_osph 0x2271
+#define MN_vfpclassph 0x227d
+#define MN_vcmpnge_usph 0x2288
+#define MN_vcmpnle_usph 0x2295
+#define MN_vcmptrue_usph 0x22a2
+#define MN_vcmpneq_usph 0x22b0
+#define MN_vcmpeq_usph 0x22bd
+#define MN_vcmpngt_usph 0x22c9
+#define MN_vcmpnlt_usph 0x22d6
+#define MN_vcmpngtph 0x22e3
+#define MN_vcmpgtph 0x22ed
+#define MN_vcmpnltph 0x22f6
+#define MN_vcmpltph 0x2300
+#define MN_vgetmantph 0x2309
+#define MN_vrsqrtph 0x2314
+#define MN_vsqrtph 0x231d
+#define MN_vdivph 0x2325
+#define MN_vmaxph 0x232c
+#define MN_vpmacsdqh 0x2333
+#define MN_vpmacssdqh 0x233d
+#define MN_vfmsub231sh 0x2348
+#define MN_vfnmsub231sh 0x2354
+#define MN_vfmadd231sh 0x2361
+#define MN_vfnmadd231sh 0x236d
+#define MN_vfmsub132sh 0x237a
+#define MN_vfnmsub132sh 0x2386
+#define MN_vfmadd132sh 0x2393
+#define MN_vfnmadd132sh 0x239f
+#define MN_vcvtsd2sh 0x23ac
+#define MN_vcvtsi2sh 0x23b6
+#define MN_vcvtusi2sh 0x23c0
+#define MN_vcvtss2sh 0x23cb
+#define MN_vfmsub213sh 0x23d5
+#define MN_vfnmsub213sh 0x23e1
+#define MN_vfmadd213sh 0x23ee
+#define MN_vfnmadd213sh 0x23fa
+#define MN_psmash 0x2407
+#define MN_vsubsh 0x240e
+#define MN_vfcmaddcsh 0x2415
+#define MN_vfmaddcsh 0x2420
+#define MN_vfcmulcsh 0x242a
+#define MN_vfmulcsh 0x2434
+#define MN_vaddsh 0x243d
+#define MN_vcmpunordsh 0x2444
+#define MN_vcmpordsh 0x2450
+#define MN_vreducesh 0x245a
+#define MN_vcmpngesh 0x2464
+#define MN_vcmpgesh 0x246e
+#define MN_vrndscalesh 0x2477
+#define MN_vcmpnlesh 0x2483
+#define MN_vcmplesh 0x248d
+#define MN_vcmpfalsesh 0x2496
+#define MN_vcmptruesh 0x24a2
+#define MN_vscalefsh 0x24ad
+#define MN_vucomish 0x24b7
+#define MN_vcomish 0x24c0
+#define MN_vmulsh 0x24c8
+#define MN_vminsh 0x24cf
+#define MN_vrcpsh 0x24d6
+#define MN_vcmpsh 0x24dd
+#define MN_vgetexpsh 0x24e4
+#define MN_vcmpunord_qsh 0x24ee
+#define MN_vcmpord_qsh 0x24fc
+#define MN_vcmpneqsh 0x2508
+#define MN_vcmpeqsh 0x2512
+#define MN_vcmpge_oqsh 0x251b
+#define MN_vcmple_oqsh 0x2527
+#define MN_vcmpfalse_oqsh 0x2533
+#define MN_vcmpneq_oqsh 0x2542
+#define MN_vcmpeq_oqsh 0x254f
+#define MN_vcmpgt_oqsh 0x255b
+#define MN_vcmplt_oqsh 0x2567
+#define MN_vcmpnge_uqsh 0x2573
+#define MN_vcmpnle_uqsh 0x2580
+#define MN_vcmptrue_uqsh 0x258d
+#define MN_vcmpneq_uqsh 0x259b
+#define MN_vcmpeq_uqsh 0x25a8
+#define MN_vcmpngt_uqsh 0x25b4
+#define MN_vcmpnlt_uqsh 0x25c1
+#define MN_vcmpunord_ssh 0x25ce
+#define MN_vcmpord_ssh 0x25dc
+#define MN_vcmpge_ossh 0x25e8
+#define MN_vcmple_ossh 0x25f4
+#define MN_vcmpfalse_ossh 0x2600
+#define MN_vcmpneq_ossh 0x260f
+#define MN_vcmpeq_ossh 0x261c
+#define MN_vcmpgt_ossh 0x2628
+#define MN_vcmplt_ossh 0x2634
+#define MN_vfpclasssh 0x2640
+#define MN_vcmpnge_ussh 0x264b
+#define MN_vcmpnle_ussh 0x2658
+#define MN_vcmptrue_ussh 0x2665
+#define MN_vcmpneq_ussh 0x2673
+#define MN_vcmpeq_ussh 0x2680
+#define MN_vcmpngt_ussh 0x268c
+#define MN_vcmpnlt_ussh 0x2699
+#define MN_vcmpngtsh 0x26a6
+#define MN_vcmpgtsh 0x26b0
+#define MN_vcmpnltsh 0x26b9
+#define MN_vcmpltsh 0x26c3
+#define MN_vgetmantsh 0x26cc
+#define MN_vrsqrtsh 0x26d7
+#define MN_vsqrtsh 0x26e0
+#define MN_clflush 0x26e8
+#define MN_push 0x26f0
+#define MN_vdivsh 0x26f5
+#define MN_vmovsh 0x26fc
+#define MN_vmaxsh 0x2703
+#define MN_blci 0x270a
+#define MN_clgi 0x270f
+#define MN_stgi 0x2714
+#define MN_bzhi 0x2719
+#define MN_cli 0x271e
+#define MN_fcomi 0x2722
+#define MN_fucomi 0x2728
+#define MN_feni 0x272f
+#define MN_fneni 0x2734
+#define MN_cvttpd2pi 0x273a
+#define MN_cvtpd2pi 0x2744
+#define MN_cvttps2pi 0x274d
+#define MN_cvtps2pi 0x2757
+#define MN_fldpi 0x2760
+#define MN_senduipi 0x2766
+#define MN_fcompi 0x276f
+#define MN_fucompi 0x2776
+#define MN_movdiri 0x277e
#define MN_pcmpestri (MN_vpcmpestri + 1)
-#define MN_vpcmpestri 0x276a
+#define MN_vpcmpestri 0x2786
#define MN_pcmpistri (MN_vpcmpistri + 1)
-#define MN_vpcmpistri 0x2775
+#define MN_vpcmpistri 0x2791
#define MN_cvttsd2si (MN_vcvttsd2si + 1)
-#define MN_vcvttsd2si 0x2780
+#define MN_vcvttsd2si 0x279c
#define MN_cvtsd2si (MN_vcvtsd2si + 1)
-#define MN_vcvtsd2si 0x278b
-#define MN_vcvttsh2si 0x2795
-#define MN_vcvtsh2si 0x27a0
+#define MN_vcvtsd2si 0x27a7
+#define MN_vcvttsh2si 0x27b1
+#define MN_vcvtsh2si 0x27bc
#define MN_cvttss2si (MN_vcvttss2si + 1)
-#define MN_vcvttss2si 0x27aa
+#define MN_vcvttss2si 0x27c6
#define MN_cvtss2si (MN_vcvtss2si + 1)
-#define MN_vcvtss2si 0x27b5
-#define MN_fdisi 0x27bf
-#define MN_fndisi 0x27c5
-#define MN_blsi 0x27cc
-#define MN_vcvttsd2usi 0x27d1
-#define MN_vcvtsd2usi 0x27dd
-#define MN_vcvttsh2usi 0x27e8
-#define MN_vcvtsh2usi 0x27f4
-#define MN_vcvttss2usi 0x27ff
-#define MN_vcvtss2usi 0x280b
-#define MN_movnti 0x2816
-#define MN_sti 0x281d
-#define MN_clui 0x2821
+#define MN_vcvtss2si 0x27d1
+#define MN_fdisi 0x27db
+#define MN_fndisi 0x27e1
+#define MN_blsi 0x27e8
+#define MN_vcvttsd2usi 0x27ed
+#define MN_vcvtsd2usi 0x27f9
+#define MN_vcvttsh2usi 0x2804
+#define MN_vcvtsh2usi 0x2810
+#define MN_vcvttss2usi 0x281b
+#define MN_vcvtss2usi 0x2827
+#define MN_movnti 0x2832
+#define MN_sti 0x2839
+#define MN_clui 0x283d
#define MN_stui (MN_testui + 2)
-#define MN_testui 0x2826
-#define MN_notrack 0x282d
-#define MN_lock 0x2835
-#define MN_bndmk 0x283a
-#define MN_xresldtrk 0x2840
-#define MN_xsusldtrk 0x284a
-#define MN_blcmsk 0x2854
-#define MN_blsmsk 0x285b
-#define MN_tzmsk 0x2862
-#define MN_sal 0x2868
-#define MN_lwpval 0x286c
-#define MN_bndcl 0x2873
-#define MN_rcl 0x2879
-#define MN_shl 0x287d
-#define MN_jl 0x2881
-#define MN_aesdec256kl 0x2884
-#define MN_aesenc256kl 0x2890
-#define MN_aesdecwide256kl 0x289c
-#define MN_aesencwide256kl 0x28ac
-#define MN_aesdec128kl 0x28bc
-#define MN_aesenc128kl 0x28c8
-#define MN_aesdecwide128kl 0x28d4
-#define MN_aesencwide128kl 0x28e4
+#define MN_testui 0x2842
+#define MN_notrack 0x2849
+#define MN_lock 0x2851
+#define MN_bndmk 0x2856
+#define MN_xresldtrk 0x285c
+#define MN_xsusldtrk 0x2866
+#define MN_blcmsk 0x2870
+#define MN_blsmsk 0x2877
+#define MN_tzmsk 0x287e
+#define MN_sal 0x2884
+#define MN_lwpval 0x2888
+#define MN_bndcl 0x288f
+#define MN_rcl 0x2895
+#define MN_shl 0x2899
+#define MN_jl 0x289d
+#define MN_aesdec256kl 0x28a0
+#define MN_aesenc256kl 0x28ac
+#define MN_aesdecwide256kl 0x28b8
+#define MN_aesencwide256kl 0x28c8
+#define MN_aesdec128kl 0x28d8
+#define MN_aesenc128kl 0x28e4
+#define MN_aesdecwide128kl 0x28f0
+#define MN_aesencwide128kl 0x2900
#define MN_call (MN_tdcall + 2)
-#define MN_tdcall 0x28f4
-#define MN_lcall 0x28fb
-#define MN_seamcall 0x2901
-#define MN_vmmcall 0x290a
-#define MN_vmcall 0x2912
-#define MN_syscall 0x2919
-#define MN_vzeroall 0x2921
-#define MN_fildll 0x292a
-#define MN_blcfill 0x2931
-#define MN_blsfill 0x2939
-#define MN_fistpll 0x2941
-#define MN_fisttpll 0x2949
-#define MN_jnl 0x2952
-#define MN_ccmpnl 0x2956
-#define MN_setnl 0x295d
-#define MN_ctestnl 0x2963
-#define MN_setzunl 0x296b
-#define MN_cmovnl 0x2973
-#define MN_rol 0x297a
-#define MN_ccmpl 0x297e
-#define MN_arpl 0x2984
-#define MN_vpmacsdql 0x2989
-#define MN_vpmacssdql 0x2993
-#define MN_lsl 0x299e
-#define MN_movsl 0x29a2
-#define MN_setl 0x29a8
-#define MN_ctestl 0x29ad
-#define MN_cwtl 0x29b4
+#define MN_tdcall 0x2910
+#define MN_lcall 0x2917
+#define MN_seamcall 0x291d
+#define MN_vmmcall 0x2926
+#define MN_vmcall 0x292e
+#define MN_syscall 0x2935
+#define MN_vzeroall 0x293d
+#define MN_fildll 0x2946
+#define MN_blcfill 0x294d
+#define MN_blsfill 0x2955
+#define MN_fistpll 0x295d
+#define MN_fisttpll 0x2965
+#define MN_jnl 0x296e
+#define MN_ccmpnl 0x2972
+#define MN_setnl 0x2979
+#define MN_ctestnl 0x297f
+#define MN_setzunl 0x2987
+#define MN_cmovnl (MN_cfcmovnl + 2)
+#define MN_cfcmovnl 0x298f
+#define MN_rol 0x2998
+#define MN_ccmpl 0x299c
+#define MN_arpl 0x29a2
+#define MN_vpmacsdql 0x29a7
+#define MN_vpmacssdql 0x29b1
+#define MN_lsl 0x29bc
+#define MN_movsl 0x29c0
+#define MN_setl 0x29c6
+#define MN_ctestl 0x29cb
+#define MN_cwtl 0x29d2
#define MN_mul (MN_fmul + 1)
#define MN_fmul (MN_pfmul + 1)
-#define MN_pfmul 0x29b9
+#define MN_pfmul 0x29d7
#define MN_imul (MN_fimul + 1)
-#define MN_fimul 0x29bf
-#define MN_montmul 0x29c5
-#define MN_setzul 0x29cd
-#define MN_cmovl 0x29d4
-#define MN_vpmovb2m 0x29da
-#define MN_vpmovd2m 0x29e3
-#define MN_vpmovq2m 0x29ec
-#define MN_vpmovw2m 0x29f5
-#define MN_aam 0x29fe
-#define MN_fxam 0x2a02
-#define MN_fprem 0x2a07
-#define MN_fcom 0x2a0d
-#define MN_ficom 0x2a12
-#define MN_fucom 0x2a18
-#define MN_fsetpm 0x2a1e
-#define MN_fnsetpm 0x2a25
-#define MN_frstpm 0x2a2d
-#define MN_vpperm 0x2a34
+#define MN_fimul 0x29dd
+#define MN_montmul 0x29e3
+#define MN_setzul 0x29eb
+#define MN_cmovl (MN_cfcmovl + 2)
+#define MN_cfcmovl 0x29f2
+#define MN_vpmovb2m 0x29fa
+#define MN_vpmovd2m 0x2a03
+#define MN_vpmovq2m 0x2a0c
+#define MN_vpmovw2m 0x2a15
+#define MN_aam 0x2a1e
+#define MN_fxam 0x2a22
+#define MN_fprem 0x2a27
+#define MN_fcom 0x2a2d
+#define MN_ficom 0x2a32
+#define MN_fucom 0x2a38
+#define MN_fsetpm 0x2a3e
+#define MN_fnsetpm 0x2a45
+#define MN_frstpm 0x2a4d
+#define MN_vpperm 0x2a54
#define MN_pcmpestrm (MN_vpcmpestrm + 1)
-#define MN_vpcmpestrm 0x2a3b
+#define MN_vpcmpestrm 0x2a5b
#define MN_pcmpistrm (MN_vpcmpistrm + 1)
-#define MN_vpcmpistrm 0x2a46
-#define MN_rsm 0x2a51
-#define MN_fpatan 0x2a55
-#define MN_fptan 0x2a5c
-#define MN_bndcn 0x2a62
+#define MN_vpcmpistrm 0x2a66
+#define MN_rsm 0x2a71
+#define MN_fpatan 0x2a75
+#define MN_fptan 0x2a7c
+#define MN_bndcn 0x2a82
#define MN_andn (MN_pandn + 1)
#define MN_pandn (MN_vpandn + 1)
-#define MN_vpandn 0x2a68
+#define MN_vpandn 0x2a88
#define MN_in (MN_xbegin + 4)
-#define MN_xbegin 0x2a6f
-#define MN_pfmin 0x2a76
-#define MN_fsin 0x2a7c
-#define MN_vmxon 0x2a81
-#define MN_vmrun 0x2a87
-#define MN_jo 0x2a8d
-#define MN_jno 0x2a90
-#define MN_ccmpno 0x2a94
-#define MN_setno 0x2a9b
-#define MN_ctestno 0x2aa1
-#define MN_setzuno 0x2aa9
-#define MN_cmovno 0x2ab1
-#define MN_jpo 0x2ab8
-#define MN_ccmpo 0x2abc
-#define MN_setpo 0x2ac2
-#define MN_setzupo 0x2ac8
-#define MN_cmovpo 0x2ad0
-#define MN_cqo 0x2ad7
-#define MN_tilezero 0x2adb
-#define MN_clzero 0x2ae4
-#define MN_seto 0x2aeb
-#define MN_into 0x2af0
-#define MN_cqto 0x2af5
-#define MN_ctesto 0x2afa
-#define MN_ssto 0x2b01
-#define MN_setzuo 0x2b06
-#define MN_cmovo 0x2b0d
-#define MN_push2p 0x2b13
-#define MN_pop2p 0x2b1a
-#define MN_bswap 0x2b20
-#define MN_fsubp 0x2b26
-#define MN_pfrcp 0x2b2c
-#define MN_rdtscp 0x2b32
-#define MN_faddp 0x2b39
-#define MN_pdep 0x2b3f
-#define MN_ffreep 0x2b44
-#define MN_rep 0x2b4b
-#define MN_pushp 0x2b4f
-#define MN_fcomip 0x2b55
-#define MN_fucomip 0x2b5c
-#define MN_jp 0x2b64
-#define MN_fmulp 0x2b67
+#define MN_xbegin 0x2a8f
+#define MN_pfmin 0x2a96
+#define MN_fsin 0x2a9c
+#define MN_vmxon 0x2aa1
+#define MN_vmrun 0x2aa7
+#define MN_jo 0x2aad
+#define MN_jno 0x2ab0
+#define MN_ccmpno 0x2ab4
+#define MN_setno 0x2abb
+#define MN_ctestno 0x2ac1
+#define MN_setzuno 0x2ac9
+#define MN_cmovno (MN_cfcmovno + 2)
+#define MN_cfcmovno 0x2ad1
+#define MN_jpo 0x2ada
+#define MN_ccmpo 0x2ade
+#define MN_setpo 0x2ae4
+#define MN_setzupo 0x2aea
+#define MN_cmovpo (MN_cfcmovpo + 2)
+#define MN_cfcmovpo 0x2af2
+#define MN_cqo 0x2afb
+#define MN_tilezero 0x2aff
+#define MN_clzero 0x2b08
+#define MN_seto 0x2b0f
+#define MN_into 0x2b14
+#define MN_cqto 0x2b19
+#define MN_ctesto 0x2b1e
+#define MN_ssto 0x2b25
+#define MN_setzuo 0x2b2a
+#define MN_cmovo (MN_cfcmovo + 2)
+#define MN_cfcmovo 0x2b31
+#define MN_push2p 0x2b39
+#define MN_pop2p 0x2b40
+#define MN_bswap 0x2b46
+#define MN_fsubp 0x2b4c
+#define MN_pfrcp 0x2b52
+#define MN_rdtscp 0x2b58
+#define MN_faddp 0x2b5f
+#define MN_pdep 0x2b65
+#define MN_ffreep 0x2b6a
+#define MN_rep 0x2b71
+#define MN_pushp 0x2b75
+#define MN_fcomip 0x2b7b
+#define MN_fucomip 0x2b82
+#define MN_jp 0x2b8a
+#define MN_fmulp 0x2b8d
#define MN_cmp (MN_scmp + 1)
-#define MN_scmp 0x2b6d
+#define MN_scmp 0x2b93
#define MN_jmp (MN_ljmp + 1)
-#define MN_ljmp 0x2b72
-#define MN_fcomp 0x2b77
-#define MN_ficomp 0x2b7d
-#define MN_fucomp 0x2b84
-#define MN_jnp 0x2b8b
-#define MN_setnp 0x2b8f
-#define MN_setzunp 0x2b95
-#define MN_cmovnp 0x2b9d
+#define MN_ljmp 0x2b98
+#define MN_fcomp 0x2b9d
+#define MN_ficomp 0x2ba3
+#define MN_fucomp 0x2baa
+#define MN_jnp 0x2bb1
+#define MN_setnp 0x2bb5
+#define MN_setzunp 0x2bbb
+#define MN_cmovnp (MN_cfcmovnp + 2)
+#define MN_cfcmovnp 0x2bc3
#define MN_nop (MN_fnop + 1)
-#define MN_fnop 0x2ba4
-#define MN_loop 0x2ba9
-#define MN_pop 0x2bae
-#define MN_fcompp 0x2bb2
-#define MN_fucompp 0x2bb9
-#define MN_popp 0x2bc1
-#define MN_fsubrp 0x2bc6
-#define MN_fdivrp 0x2bcd
-#define MN_rstorssp 0x2bd4
-#define MN_saveprevssp 0x2bdd
-#define MN_setp 0x2be9
-#define MN_fbstp 0x2bee
-#define MN_fdecstp 0x2bf4
-#define MN_fincstp 0x2bfc
-#define MN_fstp 0x2c04
-#define MN_fistp 0x2c09
-#define MN_fisttp 0x2c0f
+#define MN_fnop 0x2bcc
+#define MN_loop 0x2bd1
+#define MN_pop 0x2bd6
+#define MN_fcompp 0x2bda
+#define MN_fucompp 0x2be1
+#define MN_popp 0x2be9
+#define MN_fsubrp 0x2bee
+#define MN_fdivrp 0x2bf5
+#define MN_rstorssp 0x2bfc
+#define MN_saveprevssp 0x2c05
+#define MN_setp 0x2c11
+#define MN_fbstp 0x2c16
+#define MN_fdecstp 0x2c1c
+#define MN_fincstp 0x2c24
+#define MN_fstp 0x2c2c
+#define MN_fistp 0x2c31
+#define MN_fisttp 0x2c37
#define MN_movddup (MN_vmovddup + 1)
-#define MN_vmovddup 0x2c16
+#define MN_vmovddup 0x2c3e
#define MN_movshdup (MN_vmovshdup + 1)
-#define MN_vmovshdup 0x2c1f
+#define MN_vmovshdup 0x2c47
#define MN_movsldup (MN_vmovsldup + 1)
-#define MN_vmovsldup 0x2c29
-#define MN_setzup 0x2c33
-#define MN_fdivp 0x2c3a
-#define MN_cmovp 0x2c40
-#define MN_vpbroadcastmb2q 0x2c46
-#define MN_vpermi2q 0x2c56
-#define MN_vpmovm2q 0x2c5f
-#define MN_movdq2q 0x2c68
-#define MN_vpermt2q 0x2c70
-#define MN_vpshaq 0x2c79
-#define MN_vpsraq 0x2c80
-#define MN_vphaddbq 0x2c87
-#define MN_vphaddubq 0x2c90
+#define MN_vmovsldup 0x2c51
+#define MN_setzup 0x2c5b
+#define MN_fdivp 0x2c62
+#define MN_cmovp (MN_cfcmovp + 2)
+#define MN_cfcmovp 0x2c68
+#define MN_vpbroadcastmb2q 0x2c70
+#define MN_vpermi2q 0x2c80
+#define MN_vpmovm2q 0x2c89
+#define MN_movdq2q 0x2c92
+#define MN_vpermt2q 0x2c9a
+#define MN_vpshaq 0x2ca3
+#define MN_vpsraq 0x2caa
+#define MN_vphaddbq 0x2cb1
+#define MN_vphaddubq 0x2cba
#define MN_psubq (MN_vpsubq + 1)
-#define MN_vpsubq 0x2c9a
+#define MN_vpsubq 0x2cc4
#define MN_pmovsxbq (MN_vpmovsxbq + 1)
-#define MN_vpmovsxbq 0x2ca1
+#define MN_vpmovsxbq 0x2ccb
#define MN_pmovzxbq (MN_vpmovzxbq + 1)
-#define MN_vpmovzxbq 0x2cab
+#define MN_vpmovzxbq 0x2cd5
#define MN_cvttpd2dq (MN_vcvttpd2dq + 1)
-#define MN_vcvttpd2dq 0x2cb5
+#define MN_vcvttpd2dq 0x2cdf
#define MN_cvtpd2dq (MN_vcvtpd2dq + 1)
-#define MN_vcvtpd2dq 0x2cc0
-#define MN_vcvttph2dq 0x2cca
-#define MN_vcvtph2dq 0x2cd5
-#define MN_movq2dq 0x2cdf
+#define MN_vcvtpd2dq 0x2cea
+#define MN_vcvttph2dq 0x2cf4
+#define MN_vcvtph2dq 0x2cff
+#define MN_movq2dq 0x2d09
#define MN_cvttps2dq (MN_vcvttps2dq + 1)
-#define MN_vcvttps2dq 0x2ce7
+#define MN_vcvttps2dq 0x2d11
#define MN_cvtps2dq (MN_vcvtps2dq + 1)
-#define MN_vcvtps2dq 0x2cf2
-#define MN_vphsubdq 0x2cfc
-#define MN_cdq 0x2d05
-#define MN_kaddq 0x2d09
+#define MN_vcvtps2dq 0x2d1c
+#define MN_vphsubdq 0x2d26
+#define MN_cdq 0x2d2f
+#define MN_kaddq 0x2d33
#define MN_paddq (MN_vpaddq + 1)
-#define MN_vpaddq 0x2d0f
-#define MN_vphadddq 0x2d16
+#define MN_vpaddq 0x2d39
+#define MN_vphadddq 0x2d40
#define MN_punpckhdq (MN_vpunpckhdq + 1)
-#define MN_vpunpckhdq 0x2d1f
-#define MN_kunpckdq 0x2d2a
-#define MN_vpshldq 0x2d33
+#define MN_vpunpckhdq 0x2d49
+#define MN_kunpckdq 0x2d54
+#define MN_vpshldq 0x2d5d
#define MN_punpckldq (MN_vpunpckldq + 1)
-#define MN_vpunpckldq 0x2d3b
+#define MN_vpunpckldq 0x2d65
#define MN_pslldq (MN_vpslldq + 1)
-#define MN_vpslldq 0x2d46
+#define MN_vpslldq 0x2d70
#define MN_psrldq (MN_vpsrldq + 1)
-#define MN_vpsrldq 0x2d4e
+#define MN_vpsrldq 0x2d78
#define MN_pmuldq (MN_vpmuldq + 1)
-#define MN_vpmuldq 0x2d56
-#define MN_kandq 0x2d5e
-#define MN_vpandq 0x2d64
-#define MN_vpexpandq 0x2d6b
+#define MN_vpmuldq 0x2d80
+#define MN_kandq 0x2d88
+#define MN_vpandq 0x2d8e
+#define MN_vpexpandq 0x2d95
#define MN_punpckhqdq (MN_vpunpckhqdq + 1)
-#define MN_vpunpckhqdq 0x2d75
+#define MN_vpunpckhqdq 0x2d9f
#define MN_pclmulhqhqdq (MN_vpclmulhqhqdq + 1)
-#define MN_vpclmulhqhqdq 0x2d81
+#define MN_vpclmulhqhqdq 0x2dab
#define MN_pclmullqhqdq (MN_vpclmullqhqdq + 1)
-#define MN_vpclmullqhqdq 0x2d8f
+#define MN_vpclmullqhqdq 0x2db9
#define MN_punpcklqdq (MN_vpunpcklqdq + 1)
-#define MN_vpunpcklqdq 0x2d9d
+#define MN_vpunpcklqdq 0x2dc7
#define MN_pclmulhqlqdq (MN_vpclmulhqlqdq + 1)
-#define MN_vpclmulhqlqdq 0x2da9
+#define MN_vpclmulhqlqdq 0x2dd3
#define MN_pclmullqlqdq (MN_vpclmullqlqdq + 1)
-#define MN_vpclmullqlqdq 0x2db7
+#define MN_vpclmullqlqdq 0x2de1
#define MN_pclmulqdq (MN_vpclmulqdq + 1)
-#define MN_vpclmulqdq 0x2dc5
-#define MN_vpgatherdq 0x2dd0
-#define MN_vpscatterdq 0x2ddb
-#define MN_vpshrdq 0x2de7
+#define MN_vpclmulqdq 0x2def
+#define MN_vpgatherdq 0x2dfa
+#define MN_vpscatterdq 0x2e05
+#define MN_vpshrdq 0x2e11
#define MN_movntdq (MN_vmovntdq + 1)
-#define MN_vmovntdq 0x2def
-#define MN_vcvttpd2udq 0x2df8
-#define MN_vcvtpd2udq 0x2e04
-#define MN_vcvttph2udq 0x2e0f
-#define MN_vcvtph2udq 0x2e1b
-#define MN_vcvttps2udq 0x2e26
-#define MN_vcvtps2udq 0x2e32
-#define MN_vphaddudq 0x2e3d
+#define MN_vmovntdq 0x2e19
+#define MN_vcvttpd2udq 0x2e22
+#define MN_vcvtpd2udq 0x2e2e
+#define MN_vcvttph2udq 0x2e39
+#define MN_vcvtph2udq 0x2e45
+#define MN_vcvttps2udq 0x2e50
+#define MN_vcvtps2udq 0x2e5c
+#define MN_vphaddudq 0x2e67
#define MN_pmuludq (MN_vpmuludq + 1)
-#define MN_vpmuludq 0x2e47
+#define MN_vpmuludq 0x2e71
#define MN_pmovsxdq (MN_vpmovsxdq + 1)
-#define MN_vpmovsxdq 0x2e50
+#define MN_vpmovsxdq 0x2e7a
#define MN_pmovzxdq (MN_vpmovzxdq + 1)
-#define MN_vpmovzxdq 0x2e5a
-#define MN_vpcomgeq 0x2e64
-#define MN_vpcomleq 0x2e6d
-#define MN_vpcmpnleq 0x2e76
-#define MN_vpcmpleq 0x2e80
-#define MN_pfcmpeq 0x2e89
-#define MN_vpcomfalseq 0x2e91
-#define MN_vpcomtrueq 0x2e9d
-#define MN_vpternlogq 0x2ea8
-#define MN_vpshlq 0x2eb3
+#define MN_vpmovzxdq 0x2e84
+#define MN_vpcomgeq 0x2e8e
+#define MN_vpcomleq 0x2e97
+#define MN_vpcmpnleq 0x2ea0
+#define MN_vpcmpleq 0x2eaa
+#define MN_pfcmpeq 0x2eb3
+#define MN_vpcomfalseq 0x2ebb
+#define MN_vpcomtrueq 0x2ec7
+#define MN_vpternlogq 0x2ed2
+#define MN_vpshlq 0x2edd
#define MN_psllq (MN_vpsllq + 1)
-#define MN_vpsllq 0x2eba
-#define MN_vpmullq 0x2ec1
-#define MN_vprolq 0x2ec9
+#define MN_vpsllq 0x2ee4
+#define MN_vpmullq 0x2eeb
+#define MN_vprolq 0x2ef3
#define MN_psrlq (MN_vpsrlq + 1)
-#define MN_vpsrlq 0x2ed0
-#define MN_kshiftlq 0x2ed7
-#define MN_vpblendmq 0x2ee0
-#define MN_vptestnmq 0x2eea
-#define MN_vpcomq 0x2ef4
-#define MN_vpermq 0x2efb
-#define MN_vptestmq 0x2f02
-#define MN_kandnq 0x2f0b
-#define MN_vpandnq 0x2f12
-#define MN_valignq 0x2f1a
-#define MN_vpcmpq 0x2f22
-#define MN_incsspq 0x2f29
-#define MN_rdsspq 0x2f31
-#define MN_vcvttpd2qq 0x2f38
-#define MN_vcvtpd2qq 0x2f43
-#define MN_vcvttph2qq 0x2f4d
-#define MN_vcvtph2qq 0x2f58
-#define MN_vcvttps2qq 0x2f62
-#define MN_vcvtps2qq 0x2f6d
-#define MN_vpcomeqq 0x2f77
-#define MN_vpcomneqq 0x2f80
-#define MN_vpcmpneqq 0x2f8a
+#define MN_vpsrlq 0x2efa
+#define MN_kshiftlq 0x2f01
+#define MN_vpblendmq 0x2f0a
+#define MN_vptestnmq 0x2f14
+#define MN_vpcomq 0x2f1e
+#define MN_vpermq 0x2f25
+#define MN_vptestmq 0x2f2c
+#define MN_kandnq 0x2f35
+#define MN_vpandnq 0x2f3c
+#define MN_valignq 0x2f44
+#define MN_vpcmpq 0x2f4c
+#define MN_incsspq 0x2f53
+#define MN_rdsspq 0x2f5b
+#define MN_vcvttpd2qq 0x2f62
+#define MN_vcvtpd2qq 0x2f6d
+#define MN_vcvttph2qq 0x2f77
+#define MN_vcvtph2qq 0x2f82
+#define MN_vcvttps2qq 0x2f8c
+#define MN_vcvtps2qq 0x2f97
+#define MN_vpcomeqq 0x2fa1
+#define MN_vpcomneqq 0x2faa
+#define MN_vpcmpneqq 0x2fb4
#define MN_pcmpeqq (MN_vpcmpeqq + 1)
-#define MN_vpcmpeqq 0x2f94
-#define MN_vpgatherqq 0x2f9d
-#define MN_vpscatterqq 0x2fa8
-#define MN_vcvttpd2uqq 0x2fb4
-#define MN_vcvtpd2uqq 0x2fc0
-#define MN_vcvttph2uqq 0x2fcb
-#define MN_vcvtph2uqq 0x2fd7
-#define MN_vcvttps2uqq 0x2fe2
-#define MN_vcvtps2uqq 0x2fee
-#define MN_korq 0x2ff9
-#define MN_kxnorq 0x2ffe
-#define MN_vporq 0x3005
-#define MN_vprorq 0x300b
-#define MN_kxorq 0x3012
-#define MN_vpxorq 0x3018
+#define MN_vpcmpeqq 0x2fbe
+#define MN_vpgatherqq 0x2fc7
+#define MN_vpscatterqq 0x2fd2
+#define MN_vcvttpd2uqq 0x2fde
+#define MN_vcvtpd2uqq 0x2fea
+#define MN_vcvttph2uqq 0x2ff5
+#define MN_vcvtph2uqq 0x3001
+#define MN_vcvttps2uqq 0x300c
+#define MN_vcvtps2uqq 0x3018
+#define MN_korq 0x3023
+#define MN_kxnorq 0x3028
+#define MN_vporq 0x302f
+#define MN_vprorq 0x3035
+#define MN_kxorq 0x303c
+#define MN_vpxorq 0x3042
#define MN_pinsrq (MN_vpinsrq + 1)
-#define MN_vpinsrq 0x301f
-#define MN_kshiftrq 0x3027
+#define MN_vpinsrq 0x3049
+#define MN_kshiftrq 0x3051
#define MN_extrq (MN_pextrq + 1)
#define MN_pextrq (MN_vpextrq + 1)
-#define MN_vpextrq 0x3030
-#define MN_vpabsq 0x3038
-#define MN_vpminsq 0x303f
-#define MN_vpcompressq 0x3047
-#define MN_wrssq 0x3053
-#define MN_wrussq 0x3059
-#define MN_vpmaxsq 0x3060
-#define MN_vp2intersectq 0x3068
-#define MN_vpconflictq 0x3076
-#define MN_vpcomgtq 0x3082
+#define MN_vpextrq 0x305a
+#define MN_vpabsq 0x3062
+#define MN_vpminsq 0x3069
+#define MN_vpcompressq 0x3071
+#define MN_wrssq 0x307d
+#define MN_wrussq 0x3083
+#define MN_vpmaxsq 0x308a
+#define MN_vp2intersectq 0x3092
+#define MN_vpconflictq 0x30a0
+#define MN_vpcomgtq 0x30ac
#define MN_pcmpgtq (MN_vpcmpgtq + 1)
-#define MN_vpcmpgtq 0x308b
-#define MN_cltq 0x3094
-#define MN_vpcomltq 0x3099
-#define MN_vpcmpnltq 0x30a2
-#define MN_vpcmpltq 0x30ac
-#define MN_vpopcntq 0x30b5
-#define MN_vplzcntq 0x30be
-#define MN_movntq 0x30c7
-#define MN_knotq 0x30ce
-#define MN_vprotq 0x30d4
-#define MN_insertq 0x30db
-#define MN_vpbroadcastq 0x30e3
-#define MN_ktestq 0x30f0
-#define MN_kortestq 0x30f7
-#define MN_vpcomgeuq 0x3100
-#define MN_vpcomleuq 0x310a
-#define MN_vpcmpnleuq 0x3114
-#define MN_vpcmpleuq 0x311f
-#define MN_vpcomfalseuq 0x3129
-#define MN_vpcomtrueuq 0x3136
-#define MN_vpmadd52huq 0x3142
-#define MN_vpmadd52luq 0x314e
-#define MN_vpcomuq 0x315a
-#define MN_vpminuq 0x3162
-#define MN_vpcmpuq 0x316a
-#define MN_vpcomequq 0x3172
-#define MN_vpcomnequq 0x317c
-#define MN_vpcmpnequq 0x3187
-#define MN_vpcmpequq 0x3192
-#define MN_vpcomgtuq 0x319c
-#define MN_vpcomltuq 0x31a6
-#define MN_vpcmpnltuq 0x31b0
-#define MN_vpcmpltuq 0x31bb
-#define MN_vpmaxuq 0x31c5
-#define MN_vpsravq 0x31cd
-#define MN_vpshldvq 0x31d5
-#define MN_vpshrdvq 0x31de
-#define MN_vpsllvq 0x31e7
-#define MN_vprolvq 0x31ef
-#define MN_vpsrlvq 0x31f7
+#define MN_vpcmpgtq 0x30b5
+#define MN_cltq 0x30be
+#define MN_vpcomltq 0x30c3
+#define MN_vpcmpnltq 0x30cc
+#define MN_vpcmpltq 0x30d6
+#define MN_vpopcntq 0x30df
+#define MN_vplzcntq 0x30e8
+#define MN_movntq 0x30f1
+#define MN_knotq 0x30f8
+#define MN_vprotq 0x30fe
+#define MN_insertq 0x3105
+#define MN_vpbroadcastq 0x310d
+#define MN_ktestq 0x311a
+#define MN_kortestq 0x3121
+#define MN_vpcomgeuq 0x312a
+#define MN_vpcomleuq 0x3134
+#define MN_vpcmpnleuq 0x313e
+#define MN_vpcmpleuq 0x3149
+#define MN_vpcomfalseuq 0x3153
+#define MN_vpcomtrueuq 0x3160
+#define MN_vpmadd52huq 0x316c
+#define MN_vpmadd52luq 0x3178
+#define MN_vpcomuq 0x3184
+#define MN_vpminuq 0x318c
+#define MN_vpcmpuq 0x3194
+#define MN_vpcomequq 0x319c
+#define MN_vpcomnequq 0x31a6
+#define MN_vpcmpnequq 0x31b1
+#define MN_vpcmpequq 0x31bc
+#define MN_vpcomgtuq 0x31c6
+#define MN_vpcomltuq 0x31d0
+#define MN_vpcmpnltuq 0x31da
+#define MN_vpcmpltuq 0x31e5
+#define MN_vpmaxuq 0x31ef
+#define MN_vpsravq 0x31f7
+#define MN_vpshldvq 0x31ff
+#define MN_vpshrdvq 0x3208
+#define MN_vpsllvq 0x3211
+#define MN_vprolvq 0x3219
+#define MN_vpsrlvq 0x3221
#define MN_movq (MN_kmovq + 1)
#define MN_kmovq (MN_maskmovq + 3)
#define MN_maskmovq (MN_vpmaskmovq + 2)
-#define MN_vpmaskmovq 0x31ff
-#define MN_vmovq 0x320a
-#define MN_vprorvq 0x3210
-#define MN_vphaddwq 0x3218
-#define MN_vphadduwq 0x3221
+#define MN_vpmaskmovq 0x3229
+#define MN_vmovq 0x3234
+#define MN_vprorvq 0x323a
+#define MN_vphaddwq 0x3242
+#define MN_vphadduwq 0x324b
#define MN_pmovsxwq (MN_vpmovsxwq + 1)
-#define MN_vpmovsxwq 0x322b
+#define MN_vpmovsxwq 0x3255
#define MN_pmovzxwq (MN_vpmovzxwq + 1)
-#define MN_vpmovzxwq 0x3235
-#define MN_rex_r 0x323f
-#define MN_vmclear 0x3245
-#define MN_lar 0x324d
-#define MN_sar 0x3251
+#define MN_vpmovzxwq 0x325f
+#define MN_rex_r 0x3269
+#define MN_vmclear 0x326f
+#define MN_lar 0x3277
+#define MN_sar 0x327b
#define MN_fsubr (MN_pfsubr + 1)
-#define MN_pfsubr 0x3255
-#define MN_fisubr 0x325c
-#define MN_rcr 0x3263
-#define MN_vzeroupper 0x3267
+#define MN_pfsubr 0x327f
+#define MN_fisubr 0x3286
+#define MN_rcr 0x328d
+#define MN_vzeroupper 0x3291
#define MN_enter (MN_sysenter + 3)
-#define MN_sysenter 0x3272
-#define MN_shr 0x327b
-#define MN_clr 0x327f
+#define MN_sysenter 0x329c
+#define MN_shr 0x32a5
+#define MN_clr 0x32a9
#define MN_palignr (MN_vpalignr + 1)
-#define MN_vpalignr 0x3283
+#define MN_vpalignr 0x32ad
#define MN_or (MN_aor + 1)
-#define MN_aor 0x328c
+#define MN_aor 0x32b6
#define MN_por (MN_vpor + 1)
-#define MN_vpor 0x3290
-#define MN_ror 0x3295
+#define MN_vpor 0x32ba
+#define MN_ror 0x32bf
#define MN_monitor (MN_umonitor + 1)
-#define MN_umonitor 0x3299
-#define MN_frstor 0x32a2
+#define MN_umonitor 0x32c3
+#define MN_frstor 0x32cc
#define MN_xrstor (MN_fxrstor + 1)
-#define MN_fxrstor 0x32a9
+#define MN_fxrstor 0x32d3
#define MN_xor (MN_axor + 1)
-#define MN_axor 0x32b1
+#define MN_axor 0x32db
#define MN_pxor (MN_vpxor + 1)
-#define MN_vpxor 0x32b6
-#define MN_verr 0x32bc
-#define MN_bsr 0x32c1
+#define MN_vpxor 0x32e0
+#define MN_verr 0x32e6
+#define MN_bsr 0x32eb
#define MN_ldmxcsr (MN_vldmxcsr + 1)
-#define MN_vldmxcsr 0x32c5
+#define MN_vldmxcsr 0x32ef
#define MN_stmxcsr (MN_vstmxcsr + 1)
-#define MN_vstmxcsr 0x32ce
-#define MN_blsr 0x32d7
+#define MN_vstmxcsr 0x32f8
+#define MN_blsr 0x3301
#define MN_rdmsr (MN_urdmsr + 1)
-#define MN_urdmsr 0x32dc
+#define MN_urdmsr 0x3306
#define MN_wrmsr (MN_uwrmsr + 1)
-#define MN_uwrmsr 0x32e3
-#define MN_btr 0x32ea
-#define MN_xcrypt_ctr 0x32ee
-#define MN_xcryptctr 0x32f9
-#define MN_ltr 0x3303
-#define MN_str 0x3307
-#define MN_bextr 0x330b
-#define MN_fdivr 0x3311
-#define MN_fidivr 0x3317
-#define MN_rex_wr 0x331e
-#define MN_aas 0x3325
-#define MN_scas 0x3329
-#define MN_das 0x332e
-#define MN_fabs 0x3332
-#define MN_movabs 0x3337
+#define MN_uwrmsr 0x330d
+#define MN_btr 0x3314
+#define MN_xcrypt_ctr 0x3318
+#define MN_xcryptctr 0x3323
+#define MN_ltr 0x332d
+#define MN_str 0x3331
+#define MN_bextr 0x3335
+#define MN_fdivr 0x333b
+#define MN_fidivr 0x3341
+#define MN_rex_wr 0x3348
+#define MN_aas 0x334f
+#define MN_scas 0x3353
+#define MN_das 0x3358
+#define MN_fabs 0x335c
+#define MN_movabs 0x3361
#define MN_cs (MN_blcs + 2)
-#define MN_blcs 0x333e
+#define MN_blcs 0x3368
#define MN_ds (MN_lds + 1)
-#define MN_lds 0x3343
-#define MN_enqcmds 0x3347
-#define MN_lods 0x334f
-#define MN_vpdpbssds 0x3354
-#define MN_vp4dpwssds 0x335e
-#define MN_vpdpwssds 0x3369
-#define MN_vpdpbusds 0x3373
-#define MN_vpdpwusds 0x337d
-#define MN_vpdpbsuds 0x3387
-#define MN_vpdpwsuds 0x3391
-#define MN_vpdpbuuds 0x339b
-#define MN_vpdpwuuds 0x33a5
+#define MN_lds 0x336d
+#define MN_enqcmds 0x3371
+#define MN_lods 0x3379
+#define MN_vpdpbssds 0x337e
+#define MN_vp4dpwssds 0x3388
+#define MN_vpdpwssds 0x3393
+#define MN_vpdpbusds 0x339d
+#define MN_vpdpwusds 0x33a7
+#define MN_vpdpbsuds 0x33b1
+#define MN_vpdpwsuds 0x33bb
+#define MN_vpdpbuuds 0x33c5
+#define MN_vpdpwuuds 0x33cf
#define MN_es (MN_les + 1)
-#define MN_les 0x33af
-#define MN_xsaves 0x33b3
+#define MN_les 0x33d9
+#define MN_xsaves 0x33dd
#define MN_fs (MN_lfs + 1)
-#define MN_lfs 0x33ba
+#define MN_lfs 0x33e4
#define MN_gs (MN_lkgs + 2)
-#define MN_lkgs 0x33be
-#define MN_lgs 0x33c3
-#define MN_swapgs 0x33c7
-#define MN_fchs 0x33ce
-#define MN_js 0x33d3
-#define MN_encls 0x33d6
+#define MN_lkgs 0x33e8
+#define MN_lgs 0x33ed
+#define MN_swapgs 0x33f1
+#define MN_fchs 0x33f8
+#define MN_js 0x33fd
+#define MN_encls 0x3400
#define MN_emms (MN_femms + 1)
-#define MN_femms 0x33dc
+#define MN_femms 0x3406
#define MN_ins (MN_lwpins + 3)
-#define MN_lwpins 0x33e2
-#define MN_jns 0x33e9
-#define MN_ccmpns 0x33ed
-#define MN_wrmsrns 0x33f4
-#define MN_setns 0x33fc
-#define MN_ctestns 0x3402
-#define MN_setzuns 0x340a
-#define MN_cmovns 0x3412
-#define MN_fcos 0x3419
-#define MN_fsincos 0x341e
-#define MN_stos 0x3426
-#define MN_vfmaddsub231ps 0x342b
-#define MN_vfmsub231ps 0x343a
-#define MN_vfnmsub231ps 0x3446
-#define MN_vfmsubadd231ps 0x3453
-#define MN_vfmadd231ps 0x3462
-#define MN_vfnmadd231ps 0x346e
-#define MN_vfmaddsub132ps 0x347b
-#define MN_vfmsub132ps 0x348a
-#define MN_vfnmsub132ps 0x3496
-#define MN_vfmsubadd132ps 0x34a3
-#define MN_vfmadd132ps 0x34b2
-#define MN_vfnmadd132ps 0x34be
-#define MN_vcvtneebf162ps 0x34cb
-#define MN_vbcstnebf162ps 0x34da
-#define MN_vcvtneobf162ps 0x34e9
+#define MN_lwpins 0x340c
+#define MN_jns 0x3413
+#define MN_ccmpns 0x3417
+#define MN_wrmsrns 0x341e
+#define MN_setns 0x3426
+#define MN_ctestns 0x342c
+#define MN_setzuns 0x3434
+#define MN_cmovns (MN_cfcmovns + 2)
+#define MN_cfcmovns 0x343c
+#define MN_fcos 0x3445
+#define MN_fsincos 0x344a
+#define MN_stos 0x3452
+#define MN_vfmaddsub231ps 0x3457
+#define MN_vfmsub231ps 0x3466
+#define MN_vfnmsub231ps 0x3472
+#define MN_vfmsubadd231ps 0x347f
+#define MN_vfmadd231ps 0x348e
+#define MN_vfnmadd231ps 0x349a
+#define MN_vfmaddsub132ps 0x34a7
+#define MN_vfmsub132ps 0x34b6
+#define MN_vfnmsub132ps 0x34c2
+#define MN_vfmsubadd132ps 0x34cf
+#define MN_vfmadd132ps 0x34de
+#define MN_vfnmadd132ps 0x34ea
+#define MN_vcvtneebf162ps 0x34f7
+#define MN_vbcstnebf162ps 0x3506
+#define MN_vcvtneobf162ps 0x3515
#define MN_cvtpd2ps (MN_vcvtpd2ps + 1)
-#define MN_vcvtpd2ps 0x34f8
-#define MN_vcvtneeph2ps 0x3502
-#define MN_vcvtneoph2ps 0x350f
-#define MN_vcvtph2ps 0x351c
-#define MN_vbcstnesh2ps 0x3526
-#define MN_vpermi2ps 0x3533
-#define MN_cvtpi2ps 0x353d
-#define MN_vpermil2ps 0x3546
-#define MN_vexp2ps 0x3551
+#define MN_vcvtpd2ps 0x3524
+#define MN_vcvtneeph2ps 0x352e
+#define MN_vcvtneoph2ps 0x353b
+#define MN_vcvtph2ps 0x3548
+#define MN_vbcstnesh2ps 0x3552
+#define MN_vpermi2ps 0x355f
+#define MN_cvtpi2ps 0x3569
+#define MN_vpermil2ps 0x3572
+#define MN_vexp2ps 0x357d
#define MN_cvtdq2ps (MN_vcvtdq2ps + 1)
-#define MN_vcvtdq2ps 0x3559
-#define MN_vcvtudq2ps 0x3563
-#define MN_vcvtqq2ps 0x356e
-#define MN_vcvtuqq2ps 0x3578
-#define MN_vpermt2ps 0x3583
-#define MN_vfmaddsub213ps 0x358d
-#define MN_vfmsub213ps 0x359c
-#define MN_vfnmsub213ps 0x35a8
-#define MN_vfmsubadd213ps 0x35b5
-#define MN_vfmadd213ps 0x35c4
-#define MN_vfnmadd213ps 0x35d0
-#define MN_vrcp14ps 0x35dd
-#define MN_vrsqrt14ps 0x35e6
-#define MN_tdpbf16ps 0x35f1
-#define MN_vdpbf16ps 0x35fb
-#define MN_tcmmrlfp16ps 0x3605
-#define MN_tcmmimfp16ps 0x3612
-#define MN_tdpfp16ps 0x361f
-#define MN_vrcp28ps 0x3629
-#define MN_vrsqrt28ps 0x3632
+#define MN_vcvtdq2ps 0x3585
+#define MN_vcvtudq2ps 0x358f
+#define MN_vcvtqq2ps 0x359a
+#define MN_vcvtuqq2ps 0x35a4
+#define MN_vpermt2ps 0x35af
+#define MN_vfmaddsub213ps 0x35b9
+#define MN_vfmsub213ps 0x35c8
+#define MN_vfnmsub213ps 0x35d4
+#define MN_vfmsubadd213ps 0x35e1
+#define MN_vfmadd213ps 0x35f0
+#define MN_vfnmadd213ps 0x35fc
+#define MN_vrcp14ps 0x3609
+#define MN_vrsqrt14ps 0x3612
+#define MN_tdpbf16ps 0x361d
+#define MN_vdpbf16ps 0x3627
+#define MN_tcmmrlfp16ps 0x3631
+#define MN_tcmmimfp16ps 0x363e
+#define MN_tdpfp16ps 0x364b
+#define MN_vrcp28ps 0x3655
+#define MN_vrsqrt28ps 0x365e
#define MN_movaps (MN_vmovaps + 1)
-#define MN_vmovaps 0x363d
+#define MN_vmovaps 0x3669
#define MN_subps (MN_addsubps + 3)
#define MN_addsubps (MN_vfmaddsubps + 3)
-#define MN_vfmaddsubps 0x3645
-#define MN_vaddsubps 0x3651
+#define MN_vfmaddsubps 0x3671
+#define MN_vaddsubps 0x367d
#define MN_hsubps (MN_vhsubps + 1)
-#define MN_vhsubps 0x365b
-#define MN_vfmsubps 0x3663
-#define MN_vfnmsubps 0x366c
-#define MN_vsubps 0x3676
-#define MN_vgatherpf0dps 0x367d
-#define MN_vscatterpf0dps 0x368b
-#define MN_vgatherpf1dps 0x369a
-#define MN_vscatterpf1dps 0x36a8
+#define MN_vhsubps 0x3687
+#define MN_vfmsubps 0x368f
+#define MN_vfnmsubps 0x3698
+#define MN_vsubps 0x36a2
+#define MN_vgatherpf0dps 0x36a9
+#define MN_vscatterpf0dps 0x36b7
+#define MN_vgatherpf1dps 0x36c6
+#define MN_vscatterpf1dps 0x36d4
#define MN_addps (MN_vfmsubaddps + 6)
-#define MN_vfmsubaddps 0x36b7
+#define MN_vfmsubaddps 0x36e3
#define MN_haddps (MN_vhaddps + 1)
-#define MN_vhaddps 0x36c3
-#define MN_v4fmaddps 0x36cb
-#define MN_vfmaddps 0x36d5
-#define MN_v4fnmaddps 0x36de
-#define MN_vfnmaddps 0x36e9
-#define MN_vaddps 0x36f3
+#define MN_vhaddps 0x36ef
+#define MN_v4fmaddps 0x36f7
+#define MN_vfmaddps 0x3701
+#define MN_v4fnmaddps 0x370a
+#define MN_vfnmaddps 0x3715
+#define MN_vaddps 0x371f
#define MN_andps (MN_vexpandps + 4)
-#define MN_vexpandps 0x36fa
-#define MN_vandps 0x3704
+#define MN_vexpandps 0x3726
+#define MN_vandps 0x3730
#define MN_blendps (MN_vblendps + 1)
-#define MN_vblendps 0x370b
+#define MN_vblendps 0x3737
#define MN_roundps (MN_vroundps + 1)
-#define MN_vroundps 0x3714
-#define MN_vgatherdps 0x371d
-#define MN_vscatterdps 0x3728
+#define MN_vroundps 0x3740
+#define MN_vgatherdps 0x3749
+#define MN_vscatterdps 0x3754
#define MN_cmpunordps (MN_vcmpunordps + 1)
-#define MN_vcmpunordps 0x3734
+#define MN_vcmpunordps 0x3760
#define MN_cmpordps (MN_vcmpordps + 1)
-#define MN_vcmpordps 0x3740
-#define MN_vreduceps 0x374a
-#define MN_vrangeps 0x3754
-#define MN_vcmpngeps 0x375d
-#define MN_vcmpgeps 0x3767
-#define MN_vrndscaleps 0x3770
+#define MN_vcmpordps 0x376c
+#define MN_vreduceps 0x3776
+#define MN_vrangeps 0x3780
+#define MN_vcmpngeps 0x3789
+#define MN_vcmpgeps 0x3793
+#define MN_vrndscaleps 0x379c
#define MN_cmpnleps (MN_vcmpnleps + 1)
-#define MN_vcmpnleps 0x377c
+#define MN_vcmpnleps 0x37a8
#define MN_cmpleps (MN_vcmpleps + 1)
-#define MN_vcmpleps 0x3786
-#define MN_vcmpfalseps 0x378f
-#define MN_vcmptrueps 0x379b
-#define MN_vscalefps 0x37a6
+#define MN_vcmpleps 0x37b2
+#define MN_vcmpfalseps 0x37bb
+#define MN_vcmptrueps 0x37c7
+#define MN_vscalefps 0x37d2
#define MN_shufps (MN_vshufps + 1)
-#define MN_vshufps 0x37b0
+#define MN_vshufps 0x37dc
#define MN_unpckhps (MN_vunpckhps + 1)
-#define MN_vunpckhps 0x37b8
+#define MN_vunpckhps 0x37e4
#define MN_movlhps (MN_vmovlhps + 1)
-#define MN_vmovlhps 0x37c2
+#define MN_vmovlhps 0x37ee
#define MN_movhps (MN_vmovhps + 1)
-#define MN_vmovhps 0x37cb
+#define MN_vmovhps 0x37f7
#define MN_movmskps (MN_vmovmskps + 1)
-#define MN_vmovmskps 0x37d3
+#define MN_vmovmskps 0x37ff
#define MN_movhlps (MN_vmovhlps + 1)
-#define MN_vmovhlps 0x37dd
-#define MN_vpermilps 0x37e6
+#define MN_vmovhlps 0x3809
+#define MN_vpermilps 0x3812
#define MN_unpcklps (MN_vunpcklps + 1)
-#define MN_vunpcklps 0x37f0
+#define MN_vunpcklps 0x381c
#define MN_mulps (MN_vmulps + 1)
-#define MN_vmulps 0x37fa
+#define MN_vmulps 0x3826
#define MN_movlps (MN_vmovlps + 1)
-#define MN_vmovlps 0x3801
+#define MN_vmovlps 0x382d
#define MN_cmps (MN_ccmps + 1)
-#define MN_ccmps 0x3809
-#define MN_vblendmps 0x380f
-#define MN_vfixupimmps 0x3819
-#define MN_vpermps 0x3825
+#define MN_ccmps 0x3835
+#define MN_vblendmps 0x383b
+#define MN_vfixupimmps 0x3845
+#define MN_vpermps 0x3851
#define MN_andnps (MN_vandnps + 1)
-#define MN_vandnps 0x382d
+#define MN_vandnps 0x3859
#define MN_minps (MN_vminps + 1)
-#define MN_vminps 0x3835
-#define MN_seamops 0x383c
+#define MN_vminps 0x3861
+#define MN_seamops 0x3868
#define MN_rcpps (MN_vrcpps + 1)
-#define MN_vrcpps 0x3844
+#define MN_vrcpps 0x3870
#define MN_dpps (MN_vdpps + 1)
-#define MN_vdpps 0x384b
+#define MN_vdpps 0x3877
#define MN_cmpps (MN_vcmpps + 1)
-#define MN_vcmpps 0x3851
-#define MN_vgetexpps 0x3858
-#define MN_vgatherpf0qps 0x3862
-#define MN_vscatterpf0qps 0x3870
-#define MN_vgatherpf1qps 0x387f
-#define MN_vscatterpf1qps 0x388d
-#define MN_vcmpunord_qps 0x389c
-#define MN_vcmpord_qps 0x38aa
+#define MN_vcmpps 0x387d
+#define MN_vgetexpps 0x3884
+#define MN_vgatherpf0qps 0x388e
+#define MN_vscatterpf0qps 0x389c
+#define MN_vgatherpf1qps 0x38ab
+#define MN_vscatterpf1qps 0x38b9
+#define MN_vcmpunord_qps 0x38c8
+#define MN_vcmpord_qps 0x38d6
#define MN_cmpneqps (MN_vcmpneqps + 1)
-#define MN_vcmpneqps 0x38b6
+#define MN_vcmpneqps 0x38e2
#define MN_cmpeqps (MN_vcmpeqps + 1)
-#define MN_vcmpeqps 0x38c0
-#define MN_vcmpge_oqps 0x38c9
-#define MN_vcmple_oqps 0x38d5
-#define MN_vcmpfalse_oqps 0x38e1
-#define MN_vcmpneq_oqps 0x38f0
-#define MN_vcmpeq_oqps 0x38fd
-#define MN_vcmpgt_oqps 0x3909
-#define MN_vcmplt_oqps 0x3915
-#define MN_vgatherqps 0x3921
-#define MN_vscatterqps 0x392c
-#define MN_vcmpnge_uqps 0x3938
-#define MN_vcmpnle_uqps 0x3945
-#define MN_vcmptrue_uqps 0x3952
-#define MN_vcmpneq_uqps 0x3960
-#define MN_vcmpeq_uqps 0x396d
-#define MN_vcmpngt_uqps 0x3979
-#define MN_vcmpnlt_uqps 0x3986
+#define MN_vcmpeqps 0x38ec
+#define MN_vcmpge_oqps 0x38f5
+#define MN_vcmple_oqps 0x3901
+#define MN_vcmpfalse_oqps 0x390d
+#define MN_vcmpneq_oqps 0x391c
+#define MN_vcmpeq_oqps 0x3929
+#define MN_vcmpgt_oqps 0x3935
+#define MN_vcmplt_oqps 0x3941
+#define MN_vgatherqps 0x394d
+#define MN_vscatterqps 0x3958
+#define MN_vcmpnge_uqps 0x3964
+#define MN_vcmpnle_uqps 0x3971
+#define MN_vcmptrue_uqps 0x397e
+#define MN_vcmpneq_uqps 0x398c
+#define MN_vcmpeq_uqps 0x3999
+#define MN_vcmpngt_uqps 0x39a5
+#define MN_vcmpnlt_uqps 0x39b2
#define MN_orps (MN_vorps + 1)
-#define MN_vorps 0x3993
+#define MN_vorps 0x39bf
#define MN_xorps (MN_vxorps + 1)
-#define MN_vxorps 0x3999
-#define MN_vcmpunord_sps 0x39a0
-#define MN_vcmpord_sps 0x39ae
-#define MN_vcmpge_osps 0x39ba
-#define MN_vcmple_osps 0x39c6
-#define MN_vcmpfalse_osps 0x39d2
-#define MN_vcmpneq_osps 0x39e1
-#define MN_vcmpeq_osps 0x39ee
-#define MN_vcmpgt_osps 0x39fa
-#define MN_vcmplt_osps 0x3a06
-#define MN_vfpclassps 0x3a12
-#define MN_vcompressps 0x3a1d
-#define MN_vcmpnge_usps 0x3a29
-#define MN_vcmpnle_usps 0x3a36
-#define MN_vcmptrue_usps 0x3a43
-#define MN_vcmpneq_usps 0x3a51
-#define MN_vcmpeq_usps 0x3a5e
-#define MN_vcmpngt_usps 0x3a6a
-#define MN_vcmpnlt_usps 0x3a77
+#define MN_vxorps 0x39c5
+#define MN_vcmpunord_sps 0x39cc
+#define MN_vcmpord_sps 0x39da
+#define MN_vcmpge_osps 0x39e6
+#define MN_vcmple_osps 0x39f2
+#define MN_vcmpfalse_osps 0x39fe
+#define MN_vcmpneq_osps 0x3a0d
+#define MN_vcmpeq_osps 0x3a1a
+#define MN_vcmpgt_osps 0x3a26
+#define MN_vcmplt_osps 0x3a32
+#define MN_vfpclassps 0x3a3e
+#define MN_vcompressps 0x3a49
+#define MN_vcmpnge_usps 0x3a55
+#define MN_vcmpnle_usps 0x3a62
+#define MN_vcmptrue_usps 0x3a6f
+#define MN_vcmpneq_usps 0x3a7d
+#define MN_vcmpeq_usps 0x3a8a
+#define MN_vcmpngt_usps 0x3a96
+#define MN_vcmpnlt_usps 0x3aa3
#define MN_extractps (MN_vextractps + 1)
-#define MN_vextractps 0x3a84
-#define MN_vcmpngtps 0x3a8f
-#define MN_vcmpgtps 0x3a99
+#define MN_vextractps 0x3ab0
+#define MN_vcmpngtps 0x3abb
+#define MN_vcmpgtps 0x3ac5
#define MN_cmpnltps (MN_vcmpnltps + 1)
-#define MN_vcmpnltps 0x3aa2
+#define MN_vcmpnltps 0x3ace
#define MN_cmpltps (MN_vcmpltps + 1)
-#define MN_vcmpltps 0x3aac
-#define MN_vgetmantps 0x3ab5
+#define MN_vcmpltps 0x3ad8
+#define MN_vgetmantps 0x3ae1
#define MN_movntps (MN_vmovntps + 1)
-#define MN_vmovntps 0x3ac0
+#define MN_vmovntps 0x3aec
#define MN_insertps (MN_vinsertps + 1)
-#define MN_vinsertps 0x3ac9
+#define MN_vinsertps 0x3af5
#define MN_sqrtps (MN_rsqrtps + 1)
#define MN_rsqrtps (MN_vrsqrtps + 1)
-#define MN_vrsqrtps 0x3ad3
-#define MN_vsqrtps 0x3adc
-#define MN_vtestps 0x3ae4
+#define MN_vrsqrtps 0x3aff
+#define MN_vsqrtps 0x3b08
+#define MN_vtestps 0x3b10
#define MN_movups (MN_vmovups + 1)
-#define MN_vmovups 0x3aec
+#define MN_vmovups 0x3b18
#define MN_blendvps (MN_vblendvps + 1)
-#define MN_vblendvps 0x3af4
+#define MN_vblendvps 0x3b20
#define MN_divps (MN_vdivps + 1)
-#define MN_vdivps 0x3afe
-#define MN_vmaskmovps 0x3b05
+#define MN_vdivps 0x3b2a
+#define MN_vmaskmovps 0x3b31
#define MN_maxps (MN_vmaxps + 1)
-#define MN_vmaxps 0x3b10
-#define MN_vfrczps 0x3b17
-#define MN_xrstors 0x3b1f
+#define MN_vmaxps 0x3b3c
+#define MN_vfrczps 0x3b43
+#define MN_xrstors 0x3b4b
#define MN_ss (MN_vfmsub231ss + 9)
-#define MN_vfmsub231ss 0x3b27
-#define MN_vfnmsub231ss 0x3b33
-#define MN_vfmadd231ss 0x3b40
-#define MN_vfnmadd231ss 0x3b4c
-#define MN_vfmsub132ss 0x3b59
-#define MN_vfnmsub132ss 0x3b65
-#define MN_vfmadd132ss 0x3b72
-#define MN_vfnmadd132ss 0x3b7e
+#define MN_vfmsub231ss 0x3b53
+#define MN_vfnmsub231ss 0x3b5f
+#define MN_vfmadd231ss 0x3b6c
+#define MN_vfnmadd231ss 0x3b78
+#define MN_vfmsub132ss 0x3b85
+#define MN_vfnmsub132ss 0x3b91
+#define MN_vfmadd132ss 0x3b9e
+#define MN_vfnmadd132ss 0x3baa
#define MN_cvtsd2ss (MN_vcvtsd2ss + 1)
-#define MN_vcvtsd2ss 0x3b8b
-#define MN_vcvtsh2ss 0x3b95
+#define MN_vcvtsd2ss 0x3bb7
+#define MN_vcvtsh2ss 0x3bc1
#define MN_cvtsi2ss (MN_vcvtsi2ss + 1)
-#define MN_vcvtsi2ss 0x3b9f
-#define MN_vcvtusi2ss 0x3ba9
-#define MN_vfmsub213ss 0x3bb4
-#define MN_vfnmsub213ss 0x3bc0
-#define MN_vfmadd213ss 0x3bcd
-#define MN_vfnmadd213ss 0x3bd9
-#define MN_vrcp14ss 0x3be6
-#define MN_vrsqrt14ss 0x3bef
-#define MN_vrcp28ss 0x3bfa
-#define MN_vrsqrt28ss 0x3c03
+#define MN_vcvtsi2ss 0x3bcb
+#define MN_vcvtusi2ss 0x3bd5
+#define MN_vfmsub213ss 0x3be0
+#define MN_vfnmsub213ss 0x3bec
+#define MN_vfmadd213ss 0x3bf9
+#define MN_vfnmadd213ss 0x3c05
+#define MN_vrcp14ss 0x3c12
+#define MN_vrsqrt14ss 0x3c1b
+#define MN_vrcp28ss 0x3c26
+#define MN_vrsqrt28ss 0x3c2f
#define MN_subss (MN_vfmsubss + 3)
-#define MN_vfmsubss 0x3c0e
-#define MN_vfnmsubss 0x3c17
-#define MN_vsubss 0x3c21
+#define MN_vfmsubss 0x3c3a
+#define MN_vfnmsubss 0x3c43
+#define MN_vsubss 0x3c4d
#define MN_addss (MN_v4fmaddss + 4)
-#define MN_v4fmaddss 0x3c28
-#define MN_vfmaddss 0x3c32
-#define MN_v4fnmaddss 0x3c3b
-#define MN_vfnmaddss 0x3c46
-#define MN_vaddss 0x3c50
+#define MN_v4fmaddss 0x3c54
+#define MN_vfmaddss 0x3c5e
+#define MN_v4fnmaddss 0x3c67
+#define MN_vfnmaddss 0x3c72
+#define MN_vaddss 0x3c7c
#define MN_roundss (MN_vroundss + 1)
-#define MN_vroundss 0x3c57
+#define MN_vroundss 0x3c83
#define MN_cmpunordss (MN_vcmpunordss + 1)
-#define MN_vcmpunordss 0x3c60
+#define MN_vcmpunordss 0x3c8c
#define MN_cmpordss (MN_vcmpordss + 1)
-#define MN_vcmpordss 0x3c6c
-#define MN_vreducess 0x3c76
-#define MN_vrangess 0x3c80
-#define MN_vcmpngess 0x3c89
-#define MN_vcmpgess 0x3c93
-#define MN_vrndscaless 0x3c9c
+#define MN_vcmpordss 0x3c98
+#define MN_vreducess 0x3ca2
+#define MN_vrangess 0x3cac
+#define MN_vcmpngess 0x3cb5
+#define MN_vcmpgess 0x3cbf
+#define MN_vrndscaless 0x3cc8
#define MN_cmpnless (MN_vcmpnless + 1)
-#define MN_vcmpnless 0x3ca8
+#define MN_vcmpnless 0x3cd4
#define MN_cmpless (MN_vcmpless + 1)
-#define MN_vcmpless 0x3cb2
-#define MN_vcmpfalsess 0x3cbb
-#define MN_vcmptruess 0x3cc7
-#define MN_vscalefss 0x3cd2
+#define MN_vcmpless 0x3cde
+#define MN_vcmpfalsess 0x3ce7
+#define MN_vcmptruess 0x3cf3
+#define MN_vscalefss 0x3cfe
#define MN_comiss (MN_ucomiss + 1)
#define MN_ucomiss (MN_vucomiss + 1)
-#define MN_vucomiss 0x3cdc
-#define MN_vcomiss 0x3ce5
+#define MN_vucomiss 0x3d08
+#define MN_vcomiss 0x3d11
#define MN_lss (MN_mulss + 2)
#define MN_mulss (MN_vmulss + 1)
-#define MN_vmulss 0x3ced
-#define MN_vfixupimmss 0x3cf4
+#define MN_vmulss 0x3d19
+#define MN_vfixupimmss 0x3d20
#define MN_minss (MN_vminss + 1)
-#define MN_vminss 0x3d00
+#define MN_vminss 0x3d2c
#define MN_rcpss (MN_vrcpss + 1)
-#define MN_vrcpss 0x3d07
+#define MN_vrcpss 0x3d33
#define MN_cmpss (MN_vcmpss + 1)
-#define MN_vcmpss 0x3d0e
-#define MN_vgetexpss 0x3d15
-#define MN_vcmpunord_qss 0x3d1f
-#define MN_vcmpord_qss 0x3d2d
+#define MN_vcmpss 0x3d3a
+#define MN_vgetexpss 0x3d41
+#define MN_vcmpunord_qss 0x3d4b
+#define MN_vcmpord_qss 0x3d59
#define MN_cmpneqss (MN_vcmpneqss + 1)
-#define MN_vcmpneqss 0x3d39
+#define MN_vcmpneqss 0x3d65
#define MN_cmpeqss (MN_vcmpeqss + 1)
-#define MN_vcmpeqss 0x3d43
-#define MN_vcmpge_oqss 0x3d4c
-#define MN_vcmple_oqss 0x3d58
-#define MN_vcmpfalse_oqss 0x3d64
-#define MN_vcmpneq_oqss 0x3d73
-#define MN_vcmpeq_oqss 0x3d80
-#define MN_vcmpgt_oqss 0x3d8c
-#define MN_vcmplt_oqss 0x3d98
-#define MN_vcmpnge_uqss 0x3da4
-#define MN_vcmpnle_uqss 0x3db1
-#define MN_vcmptrue_uqss 0x3dbe
-#define MN_vcmpneq_uqss 0x3dcc
-#define MN_vcmpeq_uqss 0x3dd9
-#define MN_vcmpngt_uqss 0x3de5
-#define MN_vcmpnlt_uqss 0x3df2
-#define MN_vcmpunord_sss 0x3dff
-#define MN_vcmpord_sss 0x3e0d
-#define MN_vcmpge_osss 0x3e19
-#define MN_vcmple_osss 0x3e25
-#define MN_vcmpfalse_osss 0x3e31
-#define MN_vcmpneq_osss 0x3e40
-#define MN_vcmpeq_osss 0x3e4d
-#define MN_vcmpgt_osss 0x3e59
-#define MN_vcmplt_osss 0x3e65
-#define MN_vfpclassss 0x3e71
-#define MN_vcmpnge_usss 0x3e7c
-#define MN_vcmpnle_usss 0x3e89
-#define MN_vcmptrue_usss 0x3e96
-#define MN_vcmpneq_usss 0x3ea4
-#define MN_vcmpeq_usss 0x3eb1
-#define MN_vcmpngt_usss 0x3ebd
-#define MN_vcmpnlt_usss 0x3eca
-#define MN_vcmpngtss 0x3ed7
-#define MN_vcmpgtss 0x3ee1
+#define MN_vcmpeqss 0x3d6f
+#define MN_vcmpge_oqss 0x3d78
+#define MN_vcmple_oqss 0x3d84
+#define MN_vcmpfalse_oqss 0x3d90
+#define MN_vcmpneq_oqss 0x3d9f
+#define MN_vcmpeq_oqss 0x3dac
+#define MN_vcmpgt_oqss 0x3db8
+#define MN_vcmplt_oqss 0x3dc4
+#define MN_vcmpnge_uqss 0x3dd0
+#define MN_vcmpnle_uqss 0x3ddd
+#define MN_vcmptrue_uqss 0x3dea
+#define MN_vcmpneq_uqss 0x3df8
+#define MN_vcmpeq_uqss 0x3e05
+#define MN_vcmpngt_uqss 0x3e11
+#define MN_vcmpnlt_uqss 0x3e1e
+#define MN_vcmpunord_sss 0x3e2b
+#define MN_vcmpord_sss 0x3e39
+#define MN_vcmpge_osss 0x3e45
+#define MN_vcmple_osss 0x3e51
+#define MN_vcmpfalse_osss 0x3e5d
+#define MN_vcmpneq_osss 0x3e6c
+#define MN_vcmpeq_osss 0x3e79
+#define MN_vcmpgt_osss 0x3e85
+#define MN_vcmplt_osss 0x3e91
+#define MN_vfpclassss 0x3e9d
+#define MN_vcmpnge_usss 0x3ea8
+#define MN_vcmpnle_usss 0x3eb5
+#define MN_vcmptrue_usss 0x3ec2
+#define MN_vcmpneq_usss 0x3ed0
+#define MN_vcmpeq_usss 0x3edd
+#define MN_vcmpngt_usss 0x3ee9
+#define MN_vcmpnlt_usss 0x3ef6
+#define MN_vcmpngtss 0x3f03
+#define MN_vcmpgtss 0x3f0d
#define MN_cmpnltss (MN_vcmpnltss + 1)
-#define MN_vcmpnltss 0x3eea
+#define MN_vcmpnltss 0x3f16
#define MN_cmpltss (MN_vcmpltss + 1)
-#define MN_vcmpltss 0x3ef4
-#define MN_vgetmantss 0x3efd
-#define MN_movntss 0x3f08
+#define MN_vcmpltss 0x3f20
+#define MN_vgetmantss 0x3f29
+#define MN_movntss 0x3f34
#define MN_sqrtss (MN_rsqrtss + 1)
#define MN_rsqrtss (MN_vrsqrtss + 1)
-#define MN_vrsqrtss 0x3f10
-#define MN_vsqrtss 0x3f19
-#define MN_vbroadcastss 0x3f21
+#define MN_vrsqrtss 0x3f3c
+#define MN_vsqrtss 0x3f45
+#define MN_vbroadcastss 0x3f4d
#define MN_divss (MN_vdivss + 1)
-#define MN_vdivss 0x3f2e
+#define MN_vdivss 0x3f5a
#define MN_movss (MN_vmovss + 1)
-#define MN_vmovss 0x3f35
+#define MN_vmovss 0x3f61
#define MN_maxss (MN_vmaxss + 1)
-#define MN_vmaxss 0x3f3c
-#define MN_vfrczss 0x3f43
-#define MN_bts 0x3f4b
-#define MN_erets 0x3f4f
-#define MN_sets 0x3f55
-#define MN_clts 0x3f5a
-#define MN_ctests 0x3f5f
-#define MN_outs 0x3f66
-#define MN_setzus 0x3f6b
+#define MN_vmaxss 0x3f68
+#define MN_vfrczss 0x3f6f
+#define MN_bts 0x3f77
+#define MN_erets 0x3f7b
+#define MN_sets 0x3f81
+#define MN_clts 0x3f86
+#define MN_ctests 0x3f8b
+#define MN_outs 0x3f92
+#define MN_setzus 0x3f97
#define MN_movs (MN_cmovs + 1)
-#define MN_cmovs 0x3f72
-#define MN_fldl2t 0x3f78
-#define MN_xlat 0x3f7f
-#define MN_bt 0x3f84
-#define MN_fxtract 0x3f87
-#define MN_lgdt 0x3f8f
-#define MN_sgdt 0x3f94
-#define MN_lidt 0x3f99
-#define MN_sidt 0x3f9e
-#define MN_fldt 0x3fa3
-#define MN_lldt 0x3fa8
-#define MN_sldt 0x3fad
+#define MN_cmovs (MN_cfcmovs + 2)
+#define MN_cfcmovs 0x3f9e
+#define MN_fldl2t 0x3fa6
+#define MN_xlat 0x3fad
+#define MN_bt 0x3fb2
+#define MN_fxtract 0x3fb5
+#define MN_lgdt 0x3fbd
+#define MN_sgdt 0x3fc2
+#define MN_lidt 0x3fc7
+#define MN_sidt 0x3fcc
+#define MN_fldt 0x3fd1
+#define MN_lldt 0x3fd6
+#define MN_sldt 0x3fdb
#define MN_ret (MN_iret + 1)
#define MN_iret (MN_uiret + 1)
-#define MN_uiret 0x3fb2
-#define MN_lret 0x3fb8
-#define MN_seamret 0x3fbd
-#define MN_sysret 0x3fc5
-#define MN_hreset 0x3fcc
-#define MN_pfcmpgt 0x3fd3
-#define MN_ht 0x3fdb
+#define MN_uiret 0x3fe0
+#define MN_lret 0x3fe6
+#define MN_seamret 0x3feb
+#define MN_sysret 0x3ff3
+#define MN_hreset 0x3ffa
+#define MN_pfcmpgt 0x4001
+#define MN_ht 0x4009
#define MN_wait (MN_fwait + 1)
-#define MN_fwait 0x3fde
+#define MN_fwait 0x400c
#define MN_mwait (MN_umwait + 1)
-#define MN_umwait 0x3fe4
-#define MN_mcommit 0x3feb
-#define MN_finit 0x3ff3
-#define MN_skinit 0x3ff9
-#define MN_fninit 0x4000
-#define MN_vmgexit 0x4007
-#define MN_sysexit 0x400f
-#define MN_hlt 0x4017
-#define MN_popcnt 0x401b
-#define MN_lzcnt 0x4022
-#define MN_tzcnt 0x4028
-#define MN_hnt 0x402e
+#define MN_umwait 0x4012
+#define MN_mcommit 0x4019
+#define MN_finit 0x4021
+#define MN_skinit 0x4027
+#define MN_fninit 0x402e
+#define MN_vmgexit 0x4035
+#define MN_sysexit 0x403d
+#define MN_hlt 0x4045
+#define MN_popcnt 0x4049
+#define MN_lzcnt 0x4050
+#define MN_tzcnt 0x4056
+#define MN_hnt 0x405c
#define MN_int (MN_frndint + 4)
-#define MN_frndint 0x4032
-#define MN_not 0x403a
-#define MN_invept 0x403e
-#define MN_ccmpt 0x4045
-#define MN_xsaveopt 0x404b
-#define MN_clflushopt 0x4054
-#define MN_fstpt 0x405f
-#define MN_xabort 0x4065
-#define MN_fsqrt 0x406c
-#define MN_pfrsqrt 0x4072
+#define MN_frndint 0x4060
+#define MN_not 0x4068
+#define MN_invept 0x406c
+#define MN_ccmpt 0x4073
+#define MN_xsaveopt 0x4079
+#define MN_clflushopt 0x4082
+#define MN_fstpt 0x408d
+#define MN_xabort 0x4093
+#define MN_fsqrt 0x409a
+#define MN_pfrsqrt 0x40a0
#define MN_aesdeclast (MN_vaesdeclast + 1)
-#define MN_vaesdeclast 0x407a
+#define MN_vaesdeclast 0x40a8
#define MN_aesenclast (MN_vaesenclast + 1)
-#define MN_vaesenclast 0x4086
+#define MN_vaesenclast 0x40b4
#define MN_test (MN_ptest + 1)
#define MN_ptest (MN_vptest + 1)
-#define MN_vptest 0x4092
-#define MN_xtest 0x4099
-#define MN_fst 0x409f
-#define MN_fist 0x40a3
-#define MN_rdmsrlist 0x40a8
-#define MN_wrmsrlist 0x40b2
+#define MN_vptest 0x40c0
+#define MN_xtest 0x40c7
+#define MN_fst 0x40cd
+#define MN_fist 0x40d1
+#define MN_rdmsrlist 0x40d6
+#define MN_wrmsrlist 0x40e0
#define MN_aeskeygenassist (MN_vaeskeygenassist + 1)
-#define MN_vaeskeygenassist 0x40bc
-#define MN_vmptrst 0x40cd
-#define MN_ftst 0x40d5
-#define MN_rmpadjust 0x40da
-#define MN_ctestt 0x40e4
-#define MN_out 0x40eb
-#define MN_pext 0x40ef
-#define MN_bndcu 0x40f4
-#define MN_enclu 0x40fa
-#define MN_fcmovnu 0x4100
+#define MN_vaeskeygenassist 0x40ea
+#define MN_vmptrst 0x40fb
+#define MN_ftst 0x4103
+#define MN_rmpadjust 0x4108
+#define MN_ctestt 0x4112
+#define MN_out 0x4119
+#define MN_pext 0x411d
+#define MN_bndcu 0x4122
+#define MN_enclu 0x4128
+#define MN_fcmovnu 0x412e
#define MN_lddqu (MN_vlddqu + 1)
-#define MN_vlddqu 0x4108
+#define MN_vlddqu 0x4136
#define MN_movdqu (MN_maskmovdqu + 4)
#define MN_maskmovdqu (MN_vmaskmovdqu + 1)
-#define MN_vmaskmovdqu 0x410f
-#define MN_vmovdqu 0x411b
-#define MN_rdpkru 0x4123
-#define MN_wrpkru 0x412a
-#define MN_rdpru 0x4131
-#define MN_eretu 0x4137
-#define MN_fcmovu 0x413d
-#define MN_imulzu 0x4144
-#define MN_xgetbv 0x414b
-#define MN_xsetbv 0x4152
+#define MN_vmaskmovdqu 0x413d
+#define MN_vmovdqu 0x4149
+#define MN_rdpkru 0x4151
+#define MN_wrpkru 0x4158
+#define MN_rdpru 0x415f
+#define MN_eretu 0x4165
+#define MN_fcmovu 0x416b
+#define MN_imulzu 0x4172
+#define MN_xgetbv 0x4179
+#define MN_xsetbv 0x4180
#define MN_div (MN_fdiv + 1)
-#define MN_fdiv 0x4159
+#define MN_fdiv 0x4187
#define MN_idiv (MN_fidiv + 1)
-#define MN_fidiv 0x415e
-#define MN_enclv 0x4164
-#define MN_fldenv 0x416a
-#define MN_fstenv 0x4171
-#define MN_fnstenv 0x4178
+#define MN_fidiv 0x418c
+#define MN_enclv 0x4192
+#define MN_fldenv 0x4198
+#define MN_fstenv 0x419f
+#define MN_fnstenv 0x41a6
#define MN_mov (MN_vpcmov + 3)
-#define MN_vpcmov 0x4180
-#define MN_bndmov 0x4187
-#define MN_smov 0x418e
-#define MN_rex_w 0x4193
-#define MN_vcvttph2w 0x4199
-#define MN_vcvtph2w 0x41a3
-#define MN_vpermi2w 0x41ac
-#define MN_vpmovm2w 0x41b5
-#define MN_vpermt2w 0x41be
-#define MN_vpshaw 0x41c7
+#define MN_vpcmov 0x41ae
+#define MN_bndmov 0x41b5
+#define MN_smov 0x41bc
+#define MN_rex_w 0x41c1
+#define MN_vcvttph2w 0x41c7
+#define MN_vcvtph2w 0x41d1
+#define MN_vpermi2w 0x41da
+#define MN_vpmovm2w 0x41e3
+#define MN_vpermt2w 0x41ec
+#define MN_vpshaw 0x41f5
#define MN_psraw (MN_vpsraw + 1)
-#define MN_vpsraw 0x41ce
-#define MN_vphsubbw 0x41d5
-#define MN_cbw 0x41de
+#define MN_vpsraw 0x41fc
+#define MN_vphsubbw 0x4203
+#define MN_cbw 0x420c
#define MN_psadbw (MN_vdbpsadbw + 3)
-#define MN_vdbpsadbw 0x41e2
+#define MN_vdbpsadbw 0x4210
#define MN_mpsadbw (MN_vmpsadbw + 1)
-#define MN_vmpsadbw 0x41ec
-#define MN_vpsadbw 0x41f5
-#define MN_vphaddbw 0x41fd
+#define MN_vmpsadbw 0x421a
+#define MN_vpsadbw 0x4223
+#define MN_vphaddbw 0x422b
#define MN_punpckhbw (MN_vpunpckhbw + 1)
-#define MN_vpunpckhbw 0x4206
-#define MN_kunpckbw 0x4211
+#define MN_vpunpckhbw 0x4234
+#define MN_kunpckbw 0x423f
#define MN_punpcklbw (MN_vpunpcklbw + 1)
-#define MN_vpunpcklbw 0x421a
-#define MN_vphaddubw 0x4225
+#define MN_vpunpcklbw 0x4248
+#define MN_vphaddubw 0x4253
#define MN_phsubw (MN_vphsubw + 1)
-#define MN_vphsubw 0x422f
+#define MN_vphsubw 0x425d
#define MN_psubw (MN_vpsubw + 1)
-#define MN_vpsubw 0x4237
+#define MN_vpsubw 0x4265
#define MN_pmovsxbw (MN_vpmovsxbw + 1)
-#define MN_vpmovsxbw 0x423e
+#define MN_vpmovsxbw 0x426c
#define MN_pmovzxbw (MN_vpmovzxbw + 1)
-#define MN_vpmovzxbw 0x4248
-#define MN_fldcw 0x4252
-#define MN_fstcw 0x4258
-#define MN_fnstcw 0x425e
+#define MN_vpmovzxbw 0x4276
+#define MN_fldcw 0x4280
+#define MN_fstcw 0x4286
+#define MN_fnstcw 0x428c
#define MN_phaddw (MN_vphaddw + 1)
-#define MN_vphaddw 0x4265
-#define MN_kaddw 0x426d
+#define MN_vphaddw 0x4293
+#define MN_kaddw 0x429b
#define MN_paddw (MN_vpaddw + 1)
-#define MN_vpaddw 0x4273
-#define MN_vpshldw 0x427a
-#define MN_kandw 0x4282
-#define MN_vpexpandw 0x4288
+#define MN_vpaddw 0x42a1
+#define MN_vpshldw 0x42a8
+#define MN_kandw 0x42b0
+#define MN_vpexpandw 0x42b6
#define MN_pblendw (MN_vpblendw + 1)
-#define MN_vpblendw 0x4292
-#define MN_vpshrdw 0x429b
+#define MN_vpblendw 0x42c0
+#define MN_vpshrdw 0x42c9
#define MN_packssdw (MN_vpackssdw + 1)
-#define MN_vpackssdw 0x42a3
+#define MN_vpackssdw 0x42d1
#define MN_packusdw (MN_vpackusdw + 1)
-#define MN_vpackusdw 0x42ad
-#define MN_vpmovusdw 0x42b7
-#define MN_vpmovsdw 0x42c1
-#define MN_vpmovdw 0x42ca
-#define MN_vpcomgew 0x42d2
-#define MN_vpcomlew 0x42db
-#define MN_vpcmpnlew 0x42e4
-#define MN_vpcmplew 0x42ee
-#define MN_vpcomfalsew 0x42f7
-#define MN_vpcomtruew 0x4303
-#define MN_pi2fw 0x430e
-#define MN_pshufw 0x4314
+#define MN_vpackusdw 0x42db
+#define MN_vpmovusdw 0x42e5
+#define MN_vpmovsdw 0x42ef
+#define MN_vpmovdw 0x42f8
+#define MN_vpcomgew 0x4300
+#define MN_vpcomlew 0x4309
+#define MN_vpcmpnlew 0x4312
+#define MN_vpcmplew 0x431c
+#define MN_vpcomfalsew 0x4325
+#define MN_vpcomtruew 0x4331
+#define MN_pi2fw 0x433c
+#define MN_pshufw 0x4342
#define MN_pavgw (MN_vpavgw + 1)
-#define MN_vpavgw 0x431b
-#define MN_prefetchw 0x4322
+#define MN_vpavgw 0x4349
+#define MN_prefetchw 0x4350
#define MN_pshufhw (MN_vpshufhw + 1)
-#define MN_vpshufhw 0x432c
+#define MN_vpshufhw 0x435a
#define MN_pmulhw (MN_vpmulhw + 1)
-#define MN_vpmulhw 0x4335
-#define MN_pf2iw 0x433d
+#define MN_vpmulhw 0x4363
+#define MN_pf2iw 0x436b
#define MN_pshuflw (MN_vpshuflw + 1)
-#define MN_vpshuflw 0x4343
-#define MN_vpshlw 0x434c
+#define MN_vpshuflw 0x4371
+#define MN_vpshlw 0x437a
#define MN_psllw (MN_vpsllw + 1)
-#define MN_vpsllw 0x4353
+#define MN_vpsllw 0x4381
#define MN_pmullw (MN_vpmullw + 1)
-#define MN_vpmullw 0x435a
+#define MN_vpmullw 0x4388
#define MN_psrlw (MN_vpsrlw + 1)
-#define MN_vpsrlw 0x4362
-#define MN_kshiftlw 0x4369
-#define MN_vpblendmw 0x4372
-#define MN_vptestnmw 0x437c
-#define MN_vpcomw 0x4386
-#define MN_vpermw 0x438d
-#define MN_vptestmw 0x4394
-#define MN_kandnw 0x439d
+#define MN_vpsrlw 0x4390
+#define MN_kshiftlw 0x4397
+#define MN_vpblendmw 0x43a0
+#define MN_vptestnmw 0x43aa
+#define MN_vpcomw 0x43b4
+#define MN_vpermw 0x43bb
+#define MN_vptestmw 0x43c2
+#define MN_kandnw 0x43cb
#define MN_psignw (MN_vpsignw + 1)
-#define MN_vpsignw 0x43a4
-#define MN_vpcmpw 0x43ac
-#define MN_vpcomeqw 0x43b3
-#define MN_vpcomneqw 0x43bc
-#define MN_vpcmpneqw 0x43c6
+#define MN_vpsignw 0x43d2
+#define MN_vpcmpw 0x43da
+#define MN_vpcomeqw 0x43e1
+#define MN_vpcomneqw 0x43ea
+#define MN_vpcmpneqw 0x43f4
#define MN_pcmpeqw (MN_vpcmpeqw + 1)
-#define MN_vpcmpeqw 0x43d0
-#define MN_vpmovusqw 0x43d9
-#define MN_vpmovsqw 0x43e3
-#define MN_vpmovqw 0x43ec
-#define MN_verw 0x43f4
-#define MN_pmulhrw 0x43f9
-#define MN_korw 0x4401
-#define MN_kxnorw 0x4406
-#define MN_kxorw 0x440d
+#define MN_vpcmpeqw 0x43fe
+#define MN_vpmovusqw 0x4407
+#define MN_vpmovsqw 0x4411
+#define MN_vpmovqw 0x441a
+#define MN_verw 0x4422
+#define MN_pmulhrw 0x4427
+#define MN_korw 0x442f
+#define MN_kxnorw 0x4434
+#define MN_kxorw 0x443b
#define MN_pinsrw (MN_vpinsrw + 1)
-#define MN_vpinsrw 0x4413
-#define MN_kshiftrw 0x441b
+#define MN_vpinsrw 0x4441
+#define MN_kshiftrw 0x4449
#define MN_pextrw (MN_vpextrw + 1)
-#define MN_vpextrw 0x4424
+#define MN_vpextrw 0x4452
#define MN_pabsw (MN_vpabsw + 1)
-#define MN_vpabsw 0x442c
+#define MN_vpabsw 0x445a
#define MN_pmaddubsw (MN_vpmaddubsw + 1)
-#define MN_vpmaddubsw 0x4433
+#define MN_vpmaddubsw 0x4461
#define MN_phsubsw (MN_vphsubsw + 1)
-#define MN_vphsubsw 0x443e
+#define MN_vphsubsw 0x446c
#define MN_psubsw (MN_vpsubsw + 1)
-#define MN_vpsubsw 0x4447
+#define MN_vpsubsw 0x4475
#define MN_phaddsw (MN_vphaddsw + 1)
-#define MN_vphaddsw 0x444f
+#define MN_vphaddsw 0x447d
#define MN_paddsw (MN_vpaddsw + 1)
-#define MN_vpaddsw 0x4458
-#define MN_lmsw 0x4460
-#define MN_smsw 0x4465
+#define MN_vpaddsw 0x4486
+#define MN_lmsw 0x448e
+#define MN_smsw 0x4493
#define MN_pminsw (MN_vpminsw + 1)
-#define MN_vpminsw 0x446a
+#define MN_vpminsw 0x4498
#define MN_pmulhrsw (MN_vpmulhrsw + 1)
-#define MN_vpmulhrsw 0x4472
-#define MN_vpcompressw 0x447c
-#define MN_fstsw 0x4488
-#define MN_fnstsw 0x448e
+#define MN_vpmulhrsw 0x44a0
+#define MN_vpcompressw 0x44aa
+#define MN_fstsw 0x44b6
+#define MN_fnstsw 0x44bc
#define MN_psubusw (MN_vpsubusw + 1)
-#define MN_vpsubusw 0x4495
+#define MN_vpsubusw 0x44c3
#define MN_paddusw (MN_vpaddusw + 1)
-#define MN_vpaddusw 0x449e
-#define MN_movsw 0x44a7
+#define MN_vpaddusw 0x44cc
+#define MN_movsw 0x44d5
#define MN_pmaxsw (MN_vpmaxsw + 1)
-#define MN_vpmaxsw 0x44ad
-#define MN_cbtw 0x44b5
-#define MN_vpcomgtw 0x44ba
+#define MN_vpmaxsw 0x44db
+#define MN_cbtw 0x44e3
+#define MN_vpcomgtw 0x44e8
#define MN_pcmpgtw (MN_vpcmpgtw + 1)
-#define MN_vpcmpgtw 0x44c3
-#define MN_vpcomltw 0x44cc
-#define MN_vpcmpnltw 0x44d5
-#define MN_vpcmpltw 0x44df
-#define MN_vpopcntw 0x44e8
-#define MN_knotw 0x44f1
-#define MN_vprotw 0x44f7
-#define MN_vpbroadcastw 0x44fe
-#define MN_ktestw 0x450b
-#define MN_kortestw 0x4512
-#define MN_vcvttph2uw 0x451b
-#define MN_vcvtph2uw 0x4526
-#define MN_vpcomgeuw 0x4530
-#define MN_vpcomleuw 0x453a
-#define MN_vpcmpnleuw 0x4544
-#define MN_vpcmpleuw 0x454f
-#define MN_vpcomfalseuw 0x4559
-#define MN_vpcomtrueuw 0x4566
+#define MN_vpcmpgtw 0x44f1
+#define MN_vpcomltw 0x44fa
+#define MN_vpcmpnltw 0x4503
+#define MN_vpcmpltw 0x450d
+#define MN_vpopcntw 0x4516
+#define MN_knotw 0x451f
+#define MN_vprotw 0x4525
+#define MN_vpbroadcastw 0x452c
+#define MN_ktestw 0x4539
+#define MN_kortestw 0x4540
+#define MN_vcvttph2uw 0x4549
+#define MN_vcvtph2uw 0x4554
+#define MN_vpcomgeuw 0x455e
+#define MN_vpcomleuw 0x4568
+#define MN_vpcmpnleuw 0x4572
+#define MN_vpcmpleuw 0x457d
+#define MN_vpcomfalseuw 0x4587
+#define MN_vpcomtrueuw 0x4594
#define MN_pmulhuw (MN_vpmulhuw + 1)
-#define MN_vpmulhuw 0x4572
-#define MN_vpcomuw 0x457b
+#define MN_vpmulhuw 0x45a0
+#define MN_vpcomuw 0x45a9
#define MN_pminuw (MN_vpminuw + 1)
-#define MN_vpminuw 0x4583
-#define MN_vpcmpuw 0x458b
-#define MN_vpcomequw 0x4593
-#define MN_vpcomnequw 0x459d
-#define MN_vpcmpnequw 0x45a8
-#define MN_vpcmpequw 0x45b3
+#define MN_vpminuw 0x45b1
+#define MN_vpcmpuw 0x45b9
+#define MN_vpcomequw 0x45c1
+#define MN_vpcomnequw 0x45cb
+#define MN_vpcmpnequw 0x45d6
+#define MN_vpcmpequw 0x45e1
#define MN_phminposuw (MN_vphminposuw + 1)
-#define MN_vphminposuw 0x45bd
-#define MN_vpcomgtuw 0x45c9
-#define MN_vpcomltuw 0x45d3
-#define MN_vpcmpnltuw 0x45dd
-#define MN_vpcmpltuw 0x45e8
+#define MN_vphminposuw 0x45eb
+#define MN_vpcomgtuw 0x45f7
+#define MN_vpcomltuw 0x4601
+#define MN_vpcmpnltuw 0x460b
+#define MN_vpcmpltuw 0x4616
#define MN_pmaxuw (MN_vpmaxuw + 1)
-#define MN_vpmaxuw 0x45f2
-#define MN_vpsravw 0x45fa
-#define MN_vpshldvw 0x4602
-#define MN_vpshrdvw 0x460b
-#define MN_vpsllvw 0x4614
-#define MN_vpsrlvw 0x461c
-#define MN_kmovw 0x4624
-#define MN_vmovw 0x462a
-#define MN_vpmacsww 0x4630
-#define MN_vpmacssww 0x4639
-#define MN_movzw 0x4643
-#define MN_rex_x 0x4649
-#define MN_fyl2x 0x464f
-#define MN_rex64x 0x4655
-#define MN_vcvtneps2bf16x 0x465c
-#define MN_pfmax 0x466b
-#define MN_adcx 0x4671
-#define MN_bndldx 0x4676
-#define MN_vfpclasspdx 0x467d
-#define MN_fclex 0x4689
-#define MN_fnclex 0x468f
-#define MN_rex 0x4696
-#define MN_vcvtpd2phx 0x469a
-#define MN_vcvtdq2phx 0x46a5
-#define MN_vcvtudq2phx 0x46b0
-#define MN_vcvtqq2phx 0x46bc
-#define MN_vcvtuqq2phx 0x46c7
-#define MN_vcvtps2phx 0x46d3
-#define MN_vfpclassphx 0x46de
-#define MN_shlx 0x46ea
-#define MN_mulx 0x46ef
-#define MN_adox 0x46f4
-#define MN_vcvttpd2dqx 0x46f9
-#define MN_vcvtpd2dqx 0x4705
-#define MN_vcvttpd2udqx 0x4710
-#define MN_vcvtpd2udqx 0x471d
-#define MN_rex_rx 0x4729
-#define MN_sarx 0x4730
-#define MN_shrx 0x4735
-#define MN_rorx 0x473a
-#define MN_monitorx 0x473f
-#define MN_rex_wrx 0x4748
-#define MN_vcvtpd2psx 0x4750
-#define MN_vcvtph2psx 0x475b
-#define MN_vcvtqq2psx 0x4766
-#define MN_vcvtuqq2psx 0x4771
-#define MN_vfpclasspsx 0x477d
-#define MN_movsx 0x4789
-#define MN_mwaitx 0x478f
-#define MN_bndstx 0x4796
-#define MN_rex_wx 0x479d
-#define MN_rexx 0x47a4
-#define MN_vcvtps2phxx 0x47a9
-#define MN_movzx 0x47b5
-#define MN_rex64y 0x47bb
-#define MN_vcvtneps2bf16y 0x47c2
-#define MN_vfpclasspdy 0x47d1
-#define MN_loadiwkey 0x47dd
-#define MN_vcvtpd2phy 0x47e7
-#define MN_vcvtdq2phy 0x47f2
-#define MN_vcvtudq2phy 0x47fd
-#define MN_vcvtqq2phy 0x4809
-#define MN_vcvtuqq2phy 0x4814
-#define MN_vfpclassphy 0x4820
-#define MN_vcvttpd2dqy 0x482c
-#define MN_vcvtpd2dqy 0x4838
-#define MN_vcvttpd2udqy 0x4843
-#define MN_vcvtpd2udqy 0x4850
-#define MN_rmpquery 0x485c
-#define MN_clrssbsy 0x4865
-#define MN_setssbsy 0x486e
-#define MN_vcvtpd2psy 0x4877
-#define MN_vcvtqq2psy 0x4882
-#define MN_vcvtuqq2psy 0x488d
-#define MN_vfpclasspsy 0x4899
-#define MN_rex64xy 0x48a5
-#define MN_rexy 0x48ad
-#define MN_vcvtps2phxy 0x48b2
-#define MN_rexxy 0x48be
-#define MN_rex64z 0x48c4
-#define MN_fldz 0x48cb
-#define MN_vfpclasspdz 0x48d0
-#define MN_vcvtpd2phz 0x48dc
-#define MN_vcvtqq2phz 0x48e7
-#define MN_vcvtuqq2phz 0x48f2
-#define MN_vfpclassphz 0x48fe
-#define MN_jz 0x490a
-#define MN_jnz 0x490d
-#define MN_repnz 0x4911
-#define MN_ccmpnz 0x4917
-#define MN_loopnz 0x491e
-#define MN_setnz 0x4925
-#define MN_ctestnz 0x492b
-#define MN_setzunz 0x4933
-#define MN_cmovnz 0x493b
-#define MN_repz 0x4942
-#define MN_ccmpz 0x4947
-#define MN_loopz 0x494d
-#define MN_vfpclasspsz 0x4953
-#define MN_setz 0x495f
-#define MN_ctestz 0x4964
-#define MN_setzuz 0x496b
-#define MN_cmovz 0x4972
-#define MN_rex64xz 0x4978
-#define MN_jecxz 0x4980
-#define MN_jcxz 0x4986
-#define MN_jrcxz 0x498b
-#define MN_rexz 0x4991
-#define MN_rexxz 0x4996
-#define MN_rex64yz 0x499c
-#define MN_rex64xyz 0x49a4
-#define MN_rexyz 0x49ad
-#define MN_rexxyz 0x49b3
-#define MN__disp32_ 0x49ba
-#define MN__rex2_ 0x49c3
-#define MN__vex2_ 0x49ca
-#define MN__vex3_ 0x49d1
-#define MN__disp16_ 0x49d8
-#define MN__disp8_ 0x49e1
-#define MN__load_ 0x49e9
-#define MN__store_ 0x49f0
-#define MN__nooptimize_ 0x49f8
-#define MN__nf_ 0x4a05
-#define MN__rex_ 0x4a0a
-#define MN__evex_ 0x4a10
-#define MN__vex_ 0x4a17
-#define MN__insn 0x4a1d
+#define MN_vpmaxuw 0x4620
+#define MN_vpsravw 0x4628
+#define MN_vpshldvw 0x4630
+#define MN_vpshrdvw 0x4639
+#define MN_vpsllvw 0x4642
+#define MN_vpsrlvw 0x464a
+#define MN_kmovw 0x4652
+#define MN_vmovw 0x4658
+#define MN_vpmacsww 0x465e
+#define MN_vpmacssww 0x4667
+#define MN_movzw 0x4671
+#define MN_rex_x 0x4677
+#define MN_fyl2x 0x467d
+#define MN_rex64x 0x4683
+#define MN_vcvtneps2bf16x 0x468a
+#define MN_pfmax 0x4699
+#define MN_adcx 0x469f
+#define MN_bndldx 0x46a4
+#define MN_vfpclasspdx 0x46ab
+#define MN_fclex 0x46b7
+#define MN_fnclex 0x46bd
+#define MN_rex 0x46c4
+#define MN_vcvtpd2phx 0x46c8
+#define MN_vcvtdq2phx 0x46d3
+#define MN_vcvtudq2phx 0x46de
+#define MN_vcvtqq2phx 0x46ea
+#define MN_vcvtuqq2phx 0x46f5
+#define MN_vcvtps2phx 0x4701
+#define MN_vfpclassphx 0x470c
+#define MN_shlx 0x4718
+#define MN_mulx 0x471d
+#define MN_adox 0x4722
+#define MN_vcvttpd2dqx 0x4727
+#define MN_vcvtpd2dqx 0x4733
+#define MN_vcvttpd2udqx 0x473e
+#define MN_vcvtpd2udqx 0x474b
+#define MN_rex_rx 0x4757
+#define MN_sarx 0x475e
+#define MN_shrx 0x4763
+#define MN_rorx 0x4768
+#define MN_monitorx 0x476d
+#define MN_rex_wrx 0x4776
+#define MN_vcvtpd2psx 0x477e
+#define MN_vcvtph2psx 0x4789
+#define MN_vcvtqq2psx 0x4794
+#define MN_vcvtuqq2psx 0x479f
+#define MN_vfpclasspsx 0x47ab
+#define MN_movsx 0x47b7
+#define MN_mwaitx 0x47bd
+#define MN_bndstx 0x47c4
+#define MN_rex_wx 0x47cb
+#define MN_rexx 0x47d2
+#define MN_vcvtps2phxx 0x47d7
+#define MN_movzx 0x47e3
+#define MN_rex64y 0x47e9
+#define MN_vcvtneps2bf16y 0x47f0
+#define MN_vfpclasspdy 0x47ff
+#define MN_loadiwkey 0x480b
+#define MN_vcvtpd2phy 0x4815
+#define MN_vcvtdq2phy 0x4820
+#define MN_vcvtudq2phy 0x482b
+#define MN_vcvtqq2phy 0x4837
+#define MN_vcvtuqq2phy 0x4842
+#define MN_vfpclassphy 0x484e
+#define MN_vcvttpd2dqy 0x485a
+#define MN_vcvtpd2dqy 0x4866
+#define MN_vcvttpd2udqy 0x4871
+#define MN_vcvtpd2udqy 0x487e
+#define MN_rmpquery 0x488a
+#define MN_clrssbsy 0x4893
+#define MN_setssbsy 0x489c
+#define MN_vcvtpd2psy 0x48a5
+#define MN_vcvtqq2psy 0x48b0
+#define MN_vcvtuqq2psy 0x48bb
+#define MN_vfpclasspsy 0x48c7
+#define MN_rex64xy 0x48d3
+#define MN_rexy 0x48db
+#define MN_vcvtps2phxy 0x48e0
+#define MN_rexxy 0x48ec
+#define MN_rex64z 0x48f2
+#define MN_fldz 0x48f9
+#define MN_vfpclasspdz 0x48fe
+#define MN_vcvtpd2phz 0x490a
+#define MN_vcvtqq2phz 0x4915
+#define MN_vcvtuqq2phz 0x4920
+#define MN_vfpclassphz 0x492c
+#define MN_jz 0x4938
+#define MN_jnz 0x493b
+#define MN_repnz 0x493f
+#define MN_ccmpnz 0x4945
+#define MN_loopnz 0x494c
+#define MN_setnz 0x4953
+#define MN_ctestnz 0x4959
+#define MN_setzunz 0x4961
+#define MN_cmovnz (MN_cfcmovnz + 2)
+#define MN_cfcmovnz 0x4969
+#define MN_repz 0x4972
+#define MN_ccmpz 0x4977
+#define MN_loopz 0x497d
+#define MN_vfpclasspsz 0x4983
+#define MN_setz 0x498f
+#define MN_ctestz 0x4994
+#define MN_setzuz 0x499b
+#define MN_cmovz (MN_cfcmovz + 2)
+#define MN_cfcmovz 0x49a2
+#define MN_rex64xz 0x49aa
+#define MN_jecxz 0x49b2
+#define MN_jcxz 0x49b8
+#define MN_jrcxz 0x49bd
+#define MN_rexz 0x49c3
+#define MN_rexxz 0x49c8
+#define MN_rex64yz 0x49ce
+#define MN_rex64xyz 0x49d6
+#define MN_rexyz 0x49df
+#define MN_rexxyz 0x49e5
+#define MN__disp32_ 0x49ec
+#define MN__rex2_ 0x49f5
+#define MN__vex2_ 0x49fc
+#define MN__vex3_ 0x4a03
+#define MN__disp16_ 0x4a0a
+#define MN__disp8_ 0x4a13
+#define MN__load_ 0x4a1b
+#define MN__store_ 0x4a22
+#define MN__nooptimize_ 0x4a2a
+#define MN__nf_ 0x4a37
+#define MN__rex_ 0x4a3c
+#define MN__evex_ 0x4a42
+#define MN__vex_ 0x4a49
+#define MN__insn 0x4a4f
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 7400428..db5ca36 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -583,6 +583,8 @@ enum
#define ZERO_UPPER 10
/* Instruction support SCC. */
#define SCC 11
+ /* Instruction requires EVEX.NF to be 1. */
+#define EVEX_NF 12
OperandConstraint,
/* instruction ignores operand size prefix and in Intel mode ignores
mnemonic size suffix check. */
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index 0373488..8c0d934 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -87,6 +87,7 @@
#define ImplicitStackOp OperandConstraint=IMPLICIT_STACK_OP
#define ZU OperandConstraint=ZERO_UPPER
#define Scc OperandConstraint=SCC
+#define EVexNF OperandConstraint=EVEX_NF
#define ATTSyntax Dialect=ATT_SYNTAX
#define ATTMnemonic Dialect=ATT_MNEMONIC
@@ -991,6 +992,10 @@ ud0, 0xfff, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Un
cmov<cc>, 0x4<cc:opc>, CMOV&APX_F, C|Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|Optimize, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
cmov<cc>, 0xf4<cc:opc>, CMOV, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|DstVVVV|EVexMap4|EVexNF, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64, Reg16|Reg32|Reg64 }
+cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Load|Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+cfcmov<cc>, 0x4<cc:opc>, CMOV&APX_F, Modrm|CheckOperandSize|No_bSuf|No_sSuf|EVexMap4|EVexNF, { Reg16|Reg32|Reg64, Reg16|Reg32|Reg64|Unspecified|BaseIndex }
+
fcmovb, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
fcmovnae, 0xda/0, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
fcmove, 0xda/1, i687, Modrm|NoSuf, { FloatReg, FloatAcc }
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index 4d2c28e..0e5e603 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -9626,6 +9626,966 @@ static const insn_template i386_optab[] =
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_cfcmovo, 0x40, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovo, 0x40, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovo, 0x40, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovno, 0x41, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovno, 0x41, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovno, 0x41, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovb, 0x42, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovb, 0x42, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovb, 0x42, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovc, 0x42, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovc, 0x42, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovc, 0x42, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnae, 0x42, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnae, 0x42, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnae, 0x42, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnb, 0x43, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnb, 0x43, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnb, 0x43, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnc, 0x43, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnc, 0x43, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnc, 0x43, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovae, 0x43, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovae, 0x43, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovae, 0x43, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmove, 0x44, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmove, 0x44, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmove, 0x44, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovz, 0x44, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovz, 0x44, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovz, 0x44, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovne, 0x45, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovne, 0x45, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovne, 0x45, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnz, 0x45, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnz, 0x45, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnz, 0x45, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovbe, 0x46, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovbe, 0x46, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovbe, 0x46, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovna, 0x46, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovna, 0x46, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovna, 0x46, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnbe, 0x47, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnbe, 0x47, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnbe, 0x47, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmova, 0x47, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmova, 0x47, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmova, 0x47, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovs, 0x48, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovs, 0x48, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovs, 0x48, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovns, 0x49, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovns, 0x49, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovns, 0x49, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovp, 0x4a, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovp, 0x4a, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovp, 0x4a, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovpe, 0x4a, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovpe, 0x4a, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovpe, 0x4a, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnp, 0x4b, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnp, 0x4b, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnp, 0x4b, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovpo, 0x4b, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovpo, 0x4b, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovpo, 0x4b, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovl, 0x4c, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovl, 0x4c, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovl, 0x4c, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnge, 0x4c, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnge, 0x4c, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnge, 0x4c, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnl, 0x4d, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnl, 0x4d, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnl, 0x4d, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovge, 0x4d, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovge, 0x4d, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovge, 0x4d, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovle, 0x4e, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovle, 0x4e, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovle, 0x4e, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovng, 0x4e, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovng, 0x4e, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovng, 0x4e, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovnle, 0x4f, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovnle, 0x4f, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovnle, 0x4f, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
+ { MN_cfcmovg, 0x4f, 3, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 7, 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, 1, 0, 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 } },
+ { { 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_cfcmovg, 0x4f, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 1, 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 },
+ { { 7, 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, 1, 0, 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_cfcmovg, 0x4f, 2, SPACE_EVEXMAP4, None,
+ { 0, 0, 0, 1, 0, 0, 0, 1, 12, 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 },
+ { { 7, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0 } },
+ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
+ 0, 0, 0, 0, 1, 0 } } } },
{ MN_fcmovb, 0xda, 2, SPACE_BASE, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -45308,248 +46268,252 @@ static const i386_op_off_t i386_op_sets[] =
1007, 1009, 1011, 1013, 1015, 1017, 1019, 1021,
1023, 1025, 1027, 1029, 1031, 1033, 1035, 1037,
1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053,
- 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
- 1062, 1063, 1064, 1065, 1068, 1071, 1074, 1077,
- 1080, 1083, 1084, 1085, 1086, 1087, 1088, 1089,
- 1095, 1105, 1109, 1113, 1117, 1121, 1125, 1128,
- 1132, 1136, 1140, 1144, 1148, 1151, 1154, 1157,
- 1160, 1163, 1166, 1169, 1172, 1176, 1180, 1184,
- 1187, 1195, 1201, 1209, 1217, 1223, 1231, 1237,
- 1245, 1249, 1253, 1256, 1260, 1264, 1268, 1272,
- 1276, 1280, 1284, 1287, 1291, 1295, 1298, 1301,
- 1303, 1305, 1308, 1311, 1313, 1315, 1317, 1319,
- 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335,
- 1337, 1339, 1341, 1343, 1345, 1347, 1349, 1350,
- 1351, 1357, 1359, 1360, 1362, 1364, 1366, 1368,
- 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1384,
- 1386, 1389, 1391, 1393, 1394, 1396, 1399, 1401,
- 1403, 1405, 1408, 1412, 1416, 1425, 1431, 1435,
- 1439, 1443, 1447, 1450, 1454, 1455, 1456, 1457,
- 1458, 1462, 1463, 1466, 1469, 1472, 1475, 1476,
- 1478, 1480, 1482, 1484, 1486, 1488, 1490, 1492,
- 1494, 1497, 1500, 1503, 1506, 1509, 1511, 1513,
- 1515, 1517, 1519, 1521, 1523, 1525, 1527, 1529,
- 1531, 1533, 1535, 1537, 1539, 1541, 1543, 1545,
- 1548, 1551, 1557, 1560, 1563, 1566, 1569, 1572,
- 1575, 1578, 1583, 1588, 1590, 1593, 1598, 1601,
- 1604, 1607, 1610, 1613, 1616, 1619, 1622, 1625,
- 1628, 1631, 1634, 1637, 1639, 1642, 1644, 1645,
- 1648, 1650, 1652, 1654, 1657, 1659, 1660, 1662,
- 1665, 1667, 1669, 1671, 1673, 1674, 1675, 1679,
- 1681, 1684, 1687, 1690, 1693, 1696, 1699, 1701,
- 1703, 1705, 1707, 1709, 1711, 1714, 1717, 1719,
- 1721, 1723, 1724, 1725, 1728, 1730, 1731, 1732,
- 1733, 1734, 1735, 1736, 1738, 1740, 1741, 1742,
- 1743, 1744, 1747, 1750, 1753, 1756, 1759, 1762,
- 1765, 1768, 1771, 1775, 1779, 1783, 1786, 1789,
- 1792, 1796, 1800, 1804, 1807, 1809, 1811, 1815,
- 1819, 1821, 1823, 1827, 1829, 1831, 1833, 1836,
- 1840, 1842, 1844, 1850, 1853, 1856, 1858, 1864,
- 1867, 1870, 1873, 1875, 1877, 1880, 1883, 1885,
- 1887, 1890, 1893, 1895, 1897, 1899, 1901, 1903,
- 1906, 1908, 1910, 1912, 1914, 1916, 1919, 1921,
- 1923, 1926, 1928, 1931, 1933, 1935, 1939, 1943,
- 1945, 1947, 1951, 1952, 1953, 1954, 1955, 1956,
- 1957, 1958, 1959, 1961, 1963, 1965, 1967, 1969,
- 1971, 1973, 1975, 1977, 1979, 1981, 1983, 1985,
- 1987, 1989, 1991, 1993, 1995, 1996, 1997, 1999,
- 2001, 2003, 2005, 2006, 2007, 2008, 2009, 2011,
- 2014, 2016, 2018, 2020, 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, 2100, 2102, 2104, 2106, 2108,
- 2110, 2112, 2114, 2116, 2118, 2120, 2122, 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,
- 2401, 2403, 2408, 2410, 2412, 2417, 2419, 2421,
- 2423, 2428, 2430, 2432, 2434, 2438, 2444, 2446,
- 2451, 2453, 2455, 2457, 2459, 2461, 2463, 2465,
- 2467, 2469, 2470, 2471, 2473, 2475, 2476, 2477,
- 2478, 2479, 2481, 2483, 2484, 2485, 2486, 2488,
- 2490, 2492, 2494, 2496, 2498, 2500, 2502, 2504,
- 2506, 2508, 2510, 2512, 2516, 2517, 2518, 2520,
- 2524, 2528, 2530, 2534, 2538, 2539, 2540, 2542,
- 2544, 2546, 2548, 2553, 2557, 2561, 2563, 2565,
- 2567, 2569, 2570, 2572, 2574, 2576, 2578, 2580,
- 2582, 2584, 2586, 2588, 2590, 2592, 2594, 2596,
- 2598, 2600, 2602, 2604, 2606, 2608, 2610, 2612,
- 2614, 2615, 2616, 2618, 2620, 2621, 2622, 2625,
- 2628, 2631, 2634, 2636, 2638, 2640, 2642, 2644,
- 2646, 2647, 2648, 2649, 2651, 2655, 2657, 2659,
- 2665, 2669, 2670, 2671, 2672, 2673, 2674, 2675,
- 2676, 2680, 2682, 2684, 2688, 2690, 2692, 2694,
- 2696, 2698, 2700, 2702, 2704, 2706, 2708, 2710,
- 2712, 2714, 2716, 2717, 2720, 2723, 2728, 2733,
- 2736, 2739, 2742, 2745, 2750, 2755, 2758, 2761,
- 2763, 2765, 2767, 2769, 2771, 2773, 2775, 2776,
- 2778, 2780, 2782, 2784, 2786, 2787, 2788, 2789,
- 2793, 2797, 2799, 2803, 2807, 2811, 2815, 2819,
- 2821, 2825, 2827, 2829, 2831, 2833, 2835, 2837,
- 2839, 2841, 2842, 2844, 2846, 2848, 2850, 2852,
- 2854, 2856, 2858, 2859, 2860, 2861, 2863, 2865,
- 2867, 2869, 2870, 2871, 2873, 2875, 2877, 2879,
- 2881, 2883, 2884, 2886, 2888, 2890, 2892, 2893,
- 2894, 2896, 2898, 2900, 2902, 2904, 2906, 2908,
- 2910, 2911, 2912, 2914, 2915, 2918, 2921, 2923,
- 2926, 2927, 2928, 2930, 2931, 2933, 2935, 2937,
- 2939, 2941, 2942, 2943, 2944, 2945, 2946, 2949,
- 2954, 2959, 2964, 2969, 2972, 2977, 2982, 2984,
- 2986, 2988, 2990, 2991, 2992, 2994, 2996, 2998,
- 3000, 3002, 3004, 3006, 3007, 3008, 3009, 3010,
- 3011, 3012, 3017, 3022, 3023, 3024, 3025, 3026,
- 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034,
- 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042,
- 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050,
- 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058,
- 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066,
- 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074,
- 3075, 3076, 3077, 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, 3225, 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, 3257, 3259, 3261, 3263, 3264,
- 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272,
- 3273, 3274, 3275, 3276, 3278, 3279, 3280, 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, 3312, 3313, 3314,
- 3315, 3316, 3317, 3318, 3319, 3320, 3321, 3322,
- 3323, 3324, 3326, 3328, 3329, 3330, 3332, 3333,
- 3335, 3337, 3338, 3339, 3341, 3343, 3345, 3347,
- 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355,
- 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363,
- 3366, 3369, 3370, 3371, 3372, 3373, 3374, 3375,
- 3377, 3379, 3381, 3382, 3383, 3384, 3385, 3386,
- 3387, 3389, 3390, 3391, 3392, 3393, 3394, 3395,
- 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403,
- 3404, 3405, 3406, 3407, 3408, 3409, 3412, 3415,
- 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423,
- 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431,
- 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439,
+ 1056, 1059, 1062, 1065, 1068, 1071, 1074, 1077,
+ 1080, 1083, 1086, 1089, 1092, 1095, 1098, 1101,
+ 1104, 1107, 1110, 1113, 1116, 1119, 1122, 1125,
+ 1128, 1131, 1134, 1137, 1140, 1143, 1144, 1145,
+ 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
+ 1154, 1155, 1158, 1161, 1164, 1167, 1170, 1173,
+ 1174, 1175, 1176, 1177, 1178, 1179, 1185, 1195,
+ 1199, 1203, 1207, 1211, 1215, 1218, 1222, 1226,
+ 1230, 1234, 1238, 1241, 1244, 1247, 1250, 1253,
+ 1256, 1259, 1262, 1266, 1270, 1274, 1277, 1285,
+ 1291, 1299, 1307, 1313, 1321, 1327, 1335, 1339,
+ 1343, 1346, 1350, 1354, 1358, 1362, 1366, 1370,
+ 1374, 1377, 1381, 1385, 1388, 1391, 1393, 1395,
+ 1398, 1401, 1403, 1405, 1407, 1409, 1411, 1413,
+ 1415, 1417, 1419, 1421, 1423, 1425, 1427, 1429,
+ 1431, 1433, 1435, 1437, 1439, 1440, 1441, 1447,
+ 1449, 1450, 1452, 1454, 1456, 1458, 1459, 1461,
+ 1463, 1465, 1467, 1469, 1471, 1474, 1476, 1479,
+ 1481, 1483, 1484, 1486, 1489, 1491, 1493, 1495,
+ 1498, 1502, 1506, 1515, 1521, 1525, 1529, 1533,
+ 1537, 1540, 1544, 1545, 1546, 1547, 1548, 1552,
+ 1553, 1556, 1559, 1562, 1565, 1566, 1568, 1570,
+ 1572, 1574, 1576, 1578, 1580, 1582, 1584, 1587,
+ 1590, 1593, 1596, 1599, 1601, 1603, 1605, 1607,
+ 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623,
+ 1625, 1627, 1629, 1631, 1633, 1635, 1638, 1641,
+ 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668,
+ 1673, 1678, 1680, 1683, 1688, 1691, 1694, 1697,
+ 1700, 1703, 1706, 1709, 1712, 1715, 1718, 1721,
+ 1724, 1727, 1729, 1732, 1734, 1735, 1738, 1740,
+ 1742, 1744, 1747, 1749, 1750, 1752, 1755, 1757,
+ 1759, 1761, 1763, 1764, 1765, 1769, 1771, 1774,
+ 1777, 1780, 1783, 1786, 1789, 1791, 1793, 1795,
+ 1797, 1799, 1801, 1804, 1807, 1809, 1811, 1813,
+ 1814, 1815, 1818, 1820, 1821, 1822, 1823, 1824,
+ 1825, 1826, 1828, 1830, 1831, 1832, 1833, 1834,
+ 1837, 1840, 1843, 1846, 1849, 1852, 1855, 1858,
+ 1861, 1865, 1869, 1873, 1876, 1879, 1882, 1886,
+ 1890, 1894, 1897, 1899, 1901, 1905, 1909, 1911,
+ 1913, 1917, 1919, 1921, 1923, 1926, 1930, 1932,
+ 1934, 1940, 1943, 1946, 1948, 1954, 1957, 1960,
+ 1963, 1965, 1967, 1970, 1973, 1975, 1977, 1980,
+ 1983, 1985, 1987, 1989, 1991, 1993, 1996, 1998,
+ 2000, 2002, 2004, 2006, 2009, 2011, 2013, 2016,
+ 2018, 2021, 2023, 2025, 2029, 2033, 2035, 2037,
+ 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
+ 2049, 2051, 2053, 2055, 2057, 2059, 2061, 2063,
+ 2065, 2067, 2069, 2071, 2073, 2075, 2077, 2079,
+ 2081, 2083, 2085, 2086, 2087, 2089, 2091, 2093,
+ 2095, 2096, 2097, 2098, 2099, 2101, 2104, 2106,
+ 2108, 2110, 2112, 2114, 2116, 2118, 2120, 2122,
+ 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, 2491, 2493,
+ 2498, 2500, 2502, 2507, 2509, 2511, 2513, 2518,
+ 2520, 2522, 2524, 2528, 2534, 2536, 2541, 2543,
+ 2545, 2547, 2549, 2551, 2553, 2555, 2557, 2559,
+ 2560, 2561, 2563, 2565, 2566, 2567, 2568, 2569,
+ 2571, 2573, 2574, 2575, 2576, 2578, 2580, 2582,
+ 2584, 2586, 2588, 2590, 2592, 2594, 2596, 2598,
+ 2600, 2602, 2606, 2607, 2608, 2610, 2614, 2618,
+ 2620, 2624, 2628, 2629, 2630, 2632, 2634, 2636,
+ 2638, 2643, 2647, 2651, 2653, 2655, 2657, 2659,
+ 2660, 2662, 2664, 2666, 2668, 2670, 2672, 2674,
+ 2676, 2678, 2680, 2682, 2684, 2686, 2688, 2690,
+ 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2705,
+ 2706, 2708, 2710, 2711, 2712, 2715, 2718, 2721,
+ 2724, 2726, 2728, 2730, 2732, 2734, 2736, 2737,
+ 2738, 2739, 2741, 2745, 2747, 2749, 2755, 2759,
+ 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2770,
+ 2772, 2774, 2778, 2780, 2782, 2784, 2786, 2788,
+ 2790, 2792, 2794, 2796, 2798, 2800, 2802, 2804,
+ 2806, 2807, 2810, 2813, 2818, 2823, 2826, 2829,
+ 2832, 2835, 2840, 2845, 2848, 2851, 2853, 2855,
+ 2857, 2859, 2861, 2863, 2865, 2866, 2868, 2870,
+ 2872, 2874, 2876, 2877, 2878, 2879, 2883, 2887,
+ 2889, 2893, 2897, 2901, 2905, 2909, 2911, 2915,
+ 2917, 2919, 2921, 2923, 2925, 2927, 2929, 2931,
+ 2932, 2934, 2936, 2938, 2940, 2942, 2944, 2946,
+ 2948, 2949, 2950, 2951, 2953, 2955, 2957, 2959,
+ 2960, 2961, 2963, 2965, 2967, 2969, 2971, 2973,
+ 2974, 2976, 2978, 2980, 2982, 2983, 2984, 2986,
+ 2988, 2990, 2992, 2994, 2996, 2998, 3000, 3001,
+ 3002, 3004, 3005, 3008, 3011, 3013, 3016, 3017,
+ 3018, 3020, 3021, 3023, 3025, 3027, 3029, 3031,
+ 3032, 3033, 3034, 3035, 3036, 3039, 3044, 3049,
+ 3054, 3059, 3062, 3067, 3072, 3074, 3076, 3078,
+ 3080, 3081, 3082, 3084, 3086, 3088, 3090, 3092,
+ 3094, 3096, 3097, 3098, 3099, 3100, 3101, 3102,
+ 3107, 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, 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, 3312, 3313, 3315, 3317, 3318, 3319, 3320,
+ 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328,
+ 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336,
+ 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3344,
+ 3345, 3347, 3349, 3351, 3353, 3354, 3355, 3356,
+ 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364,
+ 3365, 3366, 3368, 3369, 3370, 3371, 3373, 3374,
+ 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382,
+ 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390,
+ 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398,
+ 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406,
+ 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414,
+ 3416, 3418, 3419, 3420, 3422, 3423, 3425, 3427,
+ 3428, 3429, 3431, 3433, 3435, 3437, 3438, 3439,
3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447,
- 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455,
- 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463,
- 3464, 3465, 3466, 3467, 3468, 3469, 3472, 3474,
- 3477, 3480, 3482, 3485, 3488, 3491, 3494, 3495,
- 3498, 3499, 3500, 3501, 3502, 3503, 3507, 3509,
- 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,
- 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551,
- 3552, 3553, 3554, 3555, 3556, 3557, 3558, 3559,
- 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567,
- 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576,
- 3577, 3578, 3579, 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,
- 3611, 3614, 3617, 3620, 3623, 3626, 3629, 3632,
- 3635, 3638, 3641, 3644, 3647, 3650, 3653, 3654,
- 3655, 3656, 3657, 3659, 3660, 3661, 3662, 3663,
- 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671,
- 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679,
- 3680, 3681, 3682, 3683, 3684, 3685, 3686, 3687,
- 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695,
- 3696, 3697, 3698, 3699, 3700, 3701, 3702, 3703,
- 3704, 3705, 3706, 3707, 3708, 3709, 3710, 3711,
- 3712, 3713, 3714, 3715, 3716, 3717, 3718, 3719,
- 3720, 3723, 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,
+ 3448, 3449, 3450, 3451, 3452, 3453, 3456, 3459,
+ 3460, 3461, 3462, 3463, 3464, 3465, 3467, 3469,
+ 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3479,
+ 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487,
+ 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495,
+ 3496, 3497, 3498, 3499, 3502, 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, 3544, 3545, 3546, 3547,
+ 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555,
+ 3556, 3557, 3558, 3559, 3562, 3564, 3567, 3570,
+ 3572, 3575, 3578, 3581, 3584, 3585, 3588, 3589,
+ 3590, 3591, 3592, 3593, 3597, 3599, 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, 3638, 3639, 3640, 3641, 3642, 3643,
+ 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651,
+ 3652, 3653, 3654, 3655, 3656, 3657, 3659, 3660,
+ 3661, 3662, 3663, 3664, 3665, 3666, 3667, 3668,
+ 3669, 3670, 3671, 3672, 3673, 3674, 3675, 3676,
+ 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684,
+ 3685, 3686, 3687, 3688, 3689, 3690, 3691, 3692,
+ 3693, 3694, 3695, 3696, 3697, 3698, 3701, 3704,
+ 3707, 3710, 3713, 3716, 3719, 3722, 3725, 3728,
+ 3731, 3734, 3737, 3740, 3743, 3744, 3745, 3746,
+ 3747, 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, 3791, 3794, 3797, 3798, 3799, 3800, 3801,
- 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809,
- 3810, 3811, 3812, 3813, 3816, 3819, 3820, 3821,
- 3824, 3825, 3826, 3827, 3828, 3831, 3834, 3837,
- 3838, 3839, 3840, 3841, 3842, 3843, 3844, 3845,
- 3846, 3847, 3849, 3851, 3852, 3853, 3854, 3855,
+ 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795,
+ 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803,
+ 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3813,
+ 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, 3859, 3860, 3861, 3862, 3863,
3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871,
- 3872, 3873, 3874, 3875, 3876, 3878, 3880, 3881,
- 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889,
- 3890, 3891, 3892, 3893, 3894, 3895, 3896, 3897,
- 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905,
- 3907, 3909, 3911, 3913, 3914, 3915, 3916, 3917,
- 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925,
- 3926, 3927, 3928, 3930, 3931, 3933, 3936, 3938,
- 3939, 3940, 3942, 3944, 3945, 3946, 3947, 3948,
- 3949, 3950, 3952, 3954, 3956, 3958, 3959, 3960,
- 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3969,
- 3971, 3972, 3974, 3976, 3977, 3982, 3984, 3986,
- 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3995,
- 3997, 3998, 3999, 4000, 4002, 4005, 4008, 4011,
- 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020,
- 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028,
- 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036,
- 4037, 4038, 4039, 4040, 4041, 4042, 4043, 4044,
- 4045, 4046, 4047, 4048, 4049, 4050, 4051, 4052,
- 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060,
- 4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068,
- 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4076,
- 4077, 4078, 4079, 4080, 4081, 4082, 4083, 4084,
- 4085, 4086, 4087, 4088, 4089, 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, 4134, 4135, 4136, 4137, 4138, 4139, 4140,
- 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148,
- 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4158,
- 4159, 4160, 4163, 4164, 4165, 4167, 4168, 4169,
- 4170, 4172, 4173, 4174, 4175, 4177, 4178, 4179,
- 4180, 4183, 4184, 4185, 4186, 4187, 4190, 4193,
- 4196, 4199, 4202, 4203, 4204, 4205, 4206, 4208,
- 4210, 4211, 4212, 4213, 4216, 4219, 4222, 4225,
- 4228, 4229, 4230, 4231, 4233, 4234, 4235, 4236,
- 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, 4275, 4276, 4277,
- 4279, 4281, 4283, 4285, 4287, 4288, 4289, 4292,
- 4295, 4296, 4297, 4298, 4299
+ 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3881,
+ 3884, 3887, 3888, 3889, 3890, 3891, 3892, 3893,
+ 3894, 3895, 3896, 3897, 3898, 3899, 3900, 3901,
+ 3902, 3903, 3906, 3909, 3910, 3911, 3914, 3915,
+ 3916, 3917, 3918, 3921, 3924, 3927, 3928, 3929,
+ 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937,
+ 3939, 3941, 3942, 3943, 3944, 3945, 3946, 3947,
+ 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955,
+ 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963,
+ 3964, 3965, 3966, 3968, 3970, 3971, 3972, 3973,
+ 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981,
+ 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989,
+ 3990, 3991, 3992, 3993, 3994, 3995, 3997, 3999,
+ 4001, 4003, 4004, 4005, 4006, 4007, 4008, 4009,
+ 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017,
+ 4018, 4020, 4021, 4023, 4026, 4028, 4029, 4030,
+ 4032, 4034, 4035, 4036, 4037, 4038, 4039, 4040,
+ 4042, 4044, 4046, 4048, 4049, 4050, 4051, 4052,
+ 4053, 4054, 4055, 4056, 4057, 4059, 4061, 4062,
+ 4064, 4066, 4067, 4072, 4074, 4076, 4077, 4078,
+ 4079, 4080, 4081, 4082, 4083, 4085, 4087, 4088,
+ 4089, 4090, 4092, 4095, 4098, 4101, 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, 4140, 4141, 4142, 4143, 4144,
+ 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, 4248, 4249, 4250,
+ 4253, 4254, 4255, 4257, 4258, 4259, 4260, 4262,
+ 4263, 4264, 4265, 4267, 4268, 4269, 4270, 4273,
+ 4274, 4275, 4276, 4277, 4280, 4283, 4286, 4289,
+ 4292, 4293, 4294, 4295, 4296, 4298, 4300, 4301,
+ 4302, 4303, 4306, 4309, 4312, 4315, 4318, 4319,
+ 4320, 4321, 4323, 4324, 4325, 4326, 4328, 4329,
+ 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337,
+ 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345,
+ 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353,
+ 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361,
+ 4362, 4363, 4364, 4365, 4366, 4367, 4369, 4371,
+ 4373, 4375, 4377, 4378, 4379, 4382, 4385, 4386,
+ 4387, 4388, 4389
};
/* i386 mnemonics table. */
@@ -45669,7 +46633,7 @@ const char i386_mnemonics[] =
"\0""setna"
"\0""ctestna"
"\0""setzuna"
- "\0""fcmovna"
+ "\0""cfcmovna"
"\0""ccmpa"
"\0""popa"
"\0""vmovntdqa"
@@ -45678,7 +46642,7 @@ const char i386_mnemonics[] =
"\0""prefetchnta"
"\0""ctesta"
"\0""setzua"
- "\0""fcmova"
+ "\0""cfcmova"
"\0""rex.b"
"\0""ud2b"
"\0""vpermi2b"
@@ -45733,7 +46697,7 @@ const char i386_mnemonics[] =
"\0""setnb"
"\0""ctestnb"
"\0""setzunb"
- "\0""fcmovnb"
+ "\0""cfcmovnb"
"\0""ccmpb"
"\0""vpcmpb"
"\0""vpcomeqb"
@@ -45799,7 +46763,7 @@ const char i386_mnemonics[] =
"\0""vpmaxub"
"\0""setzub"
"\0""vpblendvb"
- "\0""fcmovb"
+ "\0""cfcmovb"
"\0""kmovb"
"\0""rex.wb"
"\0""clwb"
@@ -45840,7 +46804,7 @@ const char i386_mnemonics[] =
"\0""ctestnc"
"\0""vmfunc"
"\0""setzunc"
- "\0""cmovnc"
+ "\0""cfcmovnc"
"\0""tlbsync"
"\0""ccmpc"
"\0""rdtsc"
@@ -45848,7 +46812,7 @@ const char i386_mnemonics[] =
"\0""setc"
"\0""ctestc"
"\0""setzuc"
- "\0""cmovc"
+ "\0""cfcmovc"
"\0""vpermi2d"
"\0""vpmovm2d"
"\0""vpermt2d"
@@ -46300,24 +47264,24 @@ const char i386_mnemonics[] =
"\0""setnae"
"\0""ctestnae"
"\0""setzunae"
- "\0""fcmovnae"
+ "\0""cfcmovnae"
"\0""ccmpae"
"\0""setae"
"\0""ctestae"
"\0""setzuae"
- "\0""fcmovae"
+ "\0""cfcmovae"
"\0""jbe"
"\0""jnbe"
"\0""ccmpnbe"
"\0""setnbe"
"\0""ctestnbe"
"\0""setzunbe"
- "\0""fcmovnbe"
+ "\0""cfcmovnbe"
"\0""ccmpbe"
"\0""setbe"
"\0""ctestbe"
"\0""setzube"
- "\0""fcmovbe"
+ "\0""cfcmovbe"
"\0""lfence"
"\0""mfence"
"\0""sfence"
@@ -46329,13 +47293,13 @@ const char i386_mnemonics[] =
"\0""setnge"
"\0""ctestnge"
"\0""setzunge"
- "\0""cmovnge"
+ "\0""cfcmovnge"
"\0""ccmpge"
"\0""pfcmpge"
"\0""setge"
"\0""ctestge"
"\0""setzuge"
- "\0""cmovge"
+ "\0""cfcmovge"
"\0""je"
"\0""fscale"
"\0""jle"
@@ -46344,12 +47308,12 @@ const char i386_mnemonics[] =
"\0""setnle"
"\0""ctestnle"
"\0""setzunle"
- "\0""cmovnle"
+ "\0""cfcmovnle"
"\0""ccmple"
"\0""setle"
"\0""ctestle"
"\0""setzule"
- "\0""cmovle"
+ "\0""cfcmovle"
"\0""vmresume"
"\0""jne"
"\0""repne"
@@ -46358,14 +47322,14 @@ const char i386_mnemonics[] =
"\0""setne"
"\0""ctestne"
"\0""setzune"
- "\0""fcmovne"
+ "\0""cfcmovne"
"\0""repe"
"\0""jpe"
"\0""ccmpe"
"\0""loope"
"\0""setpe"
"\0""setzupe"
- "\0""cmovpe"
+ "\0""cfcmovpe"
"\0""cdqe"
"\0""xacquire"
"\0""xstore"
@@ -46390,7 +47354,7 @@ const char i386_mnemonics[] =
"\0""vmsave"
"\0""fnsave"
"\0""fxsave"
- "\0""fcmove"
+ "\0""cfcmove"
"\0""serialize"
"\0""vmxoff"
"\0""lahf"
@@ -46414,13 +47378,13 @@ const char i386_mnemonics[] =
"\0""setng"
"\0""ctestng"
"\0""setzung"
- "\0""cmovng"
+ "\0""cfcmovng"
"\0""invlpg"
"\0""ccmpg"
"\0""setg"
"\0""ctestg"
"\0""setzug"
- "\0""cmovg"
+ "\0""cfcmovg"
"\0""vmlaunch"
"\0""prefetch"
"\0""fxch"
@@ -46684,7 +47648,7 @@ const char i386_mnemonics[] =
"\0""setnl"
"\0""ctestnl"
"\0""setzunl"
- "\0""cmovnl"
+ "\0""cfcmovnl"
"\0""rol"
"\0""ccmpl"
"\0""arpl"
@@ -46699,7 +47663,7 @@ const char i386_mnemonics[] =
"\0""fimul"
"\0""montmul"
"\0""setzul"
- "\0""cmovl"
+ "\0""cfcmovl"
"\0""vpmovb2m"
"\0""vpmovd2m"
"\0""vpmovq2m"
@@ -46732,12 +47696,12 @@ const char i386_mnemonics[] =
"\0""setno"
"\0""ctestno"
"\0""setzuno"
- "\0""cmovno"
+ "\0""cfcmovno"
"\0""jpo"
"\0""ccmpo"
"\0""setpo"
"\0""setzupo"
- "\0""cmovpo"
+ "\0""cfcmovpo"
"\0""cqo"
"\0""tilezero"
"\0""clzero"
@@ -46747,7 +47711,7 @@ const char i386_mnemonics[] =
"\0""ctesto"
"\0""ssto"
"\0""setzuo"
- "\0""cmovo"
+ "\0""cfcmovo"
"\0""push2p"
"\0""pop2p"
"\0""bswap"
@@ -46771,7 +47735,7 @@ const char i386_mnemonics[] =
"\0""jnp"
"\0""setnp"
"\0""setzunp"
- "\0""cmovnp"
+ "\0""cfcmovnp"
"\0""fnop"
"\0""loop"
"\0""pop"
@@ -46794,7 +47758,7 @@ const char i386_mnemonics[] =
"\0""vmovsldup"
"\0""setzup"
"\0""fdivp"
- "\0""cmovp"
+ "\0""cfcmovp"
"\0""vpbroadcastmb2q"
"\0""vpermi2q"
"\0""vpmovm2q"
@@ -47029,7 +47993,7 @@ const char i386_mnemonics[] =
"\0""setns"
"\0""ctestns"
"\0""setzuns"
- "\0""cmovns"
+ "\0""cfcmovns"
"\0""fcos"
"\0""fsincos"
"\0""stos"
@@ -47300,7 +48264,7 @@ const char i386_mnemonics[] =
"\0""ctests"
"\0""outs"
"\0""setzus"
- "\0""cmovs"
+ "\0""cfcmovs"
"\0""fldl2t"
"\0""xlat"
"\0""bt"
@@ -47604,7 +48568,7 @@ const char i386_mnemonics[] =
"\0""setnz"
"\0""ctestnz"
"\0""setzunz"
- "\0""cmovnz"
+ "\0""cfcmovnz"
"\0""repz"
"\0""ccmpz"
"\0""loopz"
@@ -47612,7 +48576,7 @@ const char i386_mnemonics[] =
"\0""setz"
"\0""ctestz"
"\0""setzuz"
- "\0""cmovz"
+ "\0""cfcmovz"
"\0""rex64xz"
"\0""jecxz"
"\0""jcxz"
diff --git a/opcodes/micromips-opc.c b/opcodes/micromips-opc.c
index 9577f15..71595bf 100644
--- a/opcodes/micromips-opc.c
+++ b/opcodes/micromips-opc.c
@@ -191,12 +191,14 @@ decode_micromips_operand (const char *p)
case 'u': HINT (16, 0);
case 'v': OPTIONAL_REG (5, 16, GP);
case 'w': OPTIONAL_REG (5, 21, GP);
- case 'y': REG (5, 6, GP);
+ case 'x': REG (5, 6, GP);
case 'z': MAPPED_REG (0, 0, GP, reg_0_map);
}
return 0;
}
+#define AL INSN2_ALIAS
+
#define UBD INSN_UNCOND_BRANCH_DELAY
#define CBD INSN_COND_BRANCH_DELAY
#define NODS INSN_NO_DELAY_SLOT
@@ -294,28 +296,28 @@ const struct mips_opcode micromips_opcodes[] =
{"pref", "k,~(b)", 0x60002000, 0xfc00f000, RD_3|LM, 0, I1, 0, 0 },
{"pref", "k,A(b)", 0, (int) M_PREF_AB, INSN_MACRO, 0, I1, 0, 0 },
{"prefx", "h,t(b)", 0x540001a0, 0xfc0007ff, RD_2|RD_3|FP_S|LM, 0, I1, 0, 0 },
-{"nop", "", 0x0c00, 0xffff, 0, INSN2_ALIAS, I1, 0, 0 },
-{"nop", "", 0x00000000, 0xffffffff, 0, INSN2_ALIAS, I1, 0, 0 }, /* sll */
-{"ssnop", "", 0x00000800, 0xffffffff, 0, INSN2_ALIAS, I1, 0, 0 }, /* sll */
-{"ehb", "", 0x00001800, 0xffffffff, 0, INSN2_ALIAS, I1, 0, 0 }, /* sll */
-{"pause", "", 0x00002800, 0xffffffff, 0, INSN2_ALIAS, I1, 0, 0 }, /* sll */
+{"nop", "", 0x0c00, 0xffff, 0, AL, I1, 0, 0 },
+{"nop", "", 0x00000000, 0xffffffff, 0, AL, I1, 0, 0 }, /* sll */
+{"ssnop", "", 0x00000800, 0xffffffff, 0, AL, I1, 0, 0 }, /* sll */
+{"ehb", "", 0x00001800, 0xffffffff, 0, AL, I1, 0, 0 }, /* sll */
+{"pause", "", 0x00002800, 0xffffffff, 0, AL, I1, 0, 0 }, /* sll */
{"li", "md,mI", 0xec00, 0xfc00, WR_1, 0, I1, 0, 0 },
-{"li", "t,j", 0x30000000, 0xfc1f0000, WR_1, INSN2_ALIAS, I1, 0, 0 }, /* addiu */
-{"li", "t,i", 0x50000000, 0xfc1f0000, WR_1, INSN2_ALIAS, I1, 0, 0 }, /* ori */
+{"li", "t,j", 0x30000000, 0xfc1f0000, WR_1, AL, I1, 0, 0 }, /* addiu */
+{"li", "t,i", 0x50000000, 0xfc1f0000, WR_1, AL, I1, 0, 0 }, /* ori */
{"li", "t,I", 0, (int) M_LI, INSN_MACRO, 0, I1, 0, 0 },
{"move", "d,s", 0, (int) M_MOVE, INSN_MACRO, 0, I1, 0, 0 },
{"move", "mp,mj", 0x0c00, 0xfc00, WR_1|RD_2, 0, I1, 0, 0 },
-{"move", "d,s", 0x00000290, 0xffe007ff, WR_1|RD_2, INSN2_ALIAS, I1, 0, 0 }, /* or */
-{"move", "d,s", 0x58000150, 0xffe007ff, WR_1|RD_2, INSN2_ALIAS, I3, 0, 0 }, /* daddu */
-{"move", "d,s", 0x00000150, 0xffe007ff, WR_1|RD_2, INSN2_ALIAS, I1, 0, 0 }, /* addu */
+{"move", "d,s", 0x00000290, 0xffe007ff, WR_1|RD_2, AL, I1, 0, 0 }, /* or */
+{"move", "d,s", 0x58000150, 0xffe007ff, WR_1|RD_2, AL, I3, 0, 0 }, /* daddu */
+{"move", "d,s", 0x00000150, 0xffe007ff, WR_1|RD_2, AL, I1, 0, 0 }, /* addu */
{"b", "mD", 0xcc00, 0xfc00, UBD, 0, I1, 0, 0 },
-{"b", "p", 0x94000000, 0xffff0000, UBD, INSN2_ALIAS, I1, 0, 0 }, /* beq 0, 0 */
-{"b", "p", 0x40400000, 0xffff0000, UBD, INSN2_ALIAS, I1, 0, 0 }, /* bgez 0 */
+{"b", "p", 0x94000000, 0xffff0000, UBD, AL, I1, 0, 0 }, /* beq 0, 0 */
+{"b", "p", 0x40400000, 0xffff0000, UBD, AL, I1, 0, 0 }, /* bgez 0 */
/* BC is next to B so that we easily find it when converting a normal
branch to a compact one. */
-{"bc", "p", 0x40e00000, 0xffff0000, NODS, INSN2_ALIAS|UBR, I1, 0, 0 }, /* beqzc 0 */
-{"bal", "p", 0x40600000, 0xffff0000, WR_31|UBD, INSN2_ALIAS|BD32, I1, 0, 0 }, /* bgezal 0 */
-{"bals", "p", 0x42600000, 0xffff0000, WR_31|UBD, INSN2_ALIAS|BD16, I1, 0, 0 }, /* bgezals 0 */
+{"bc", "p", 0x40e00000, 0xffff0000, NODS, UBR|AL, I1, 0, 0 }, /* beqzc 0 */
+{"bal", "p", 0x40600000, 0xffff0000, WR_31|UBD, BD32|AL, I1, 0, 0 }, /* bgezal 0 */
+{"bals", "p", 0x42600000, 0xffff0000, WR_31|UBD, BD16|AL, I1, 0, 0 }, /* bgezals 0 */
{"abs", "d,v", 0, (int) M_ABS, INSN_MACRO, 0, I1, 0, 0 },
{"abs.d", "T,V", 0x5400237b, 0xfc00ffff, WR_1|RD_2|FP_D, 0, I1, 0, 0 },
{"abs.s", "T,V", 0x5400037b, 0xfc00ffff, WR_1|RD_2|FP_S, 0, I1, 0, 0 },
@@ -345,7 +347,7 @@ const struct mips_opcode micromips_opcodes[] =
{"addu", "md,me,ml", 0x0400, 0xfc01, WR_1|RD_2|RD_3, 0, I1, 0, 0 },
{"addu", "d,v,t", 0x00000150, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I1, 0, 0 },
{"addu", "t,r,I", 0, (int) M_ADDU_I, INSN_MACRO, 0, I1, 0, 0 },
-{"alnv.ps", "D,V,T,y", 0x54000019, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I1, 0, 0 },
+{"alnv.ps", "D,V,T,x", 0x54000019, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I1, 0, 0 },
{"and", "mf,mt,mg", 0x4480, 0xffc0, MOD_1|RD_3, 0, I1, 0, 0 },
{"and", "mf,mg,mx", 0x4480, 0xffc0, MOD_1|RD_2, 0, I1, 0, 0 },
{"and", "d,v,t", 0x00000250, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I1, 0, 0 },
@@ -373,7 +375,7 @@ const struct mips_opcode micromips_opcodes[] =
{"bc2tl", "p", 0, (int) M_BC2TL, INSN_MACRO, 0, I1, 0, 0 },
{"bc2tl", "N,p", 0, (int) M_BC2TL, INSN_MACRO, 0, I1, 0, 0 },
{"beqz", "md,mE", 0x8c00, 0xfc00, RD_1|CBD, 0, I1, 0, 0 },
-{"beqz", "s,p", 0x94000000, 0xffe00000, RD_1|CBD, INSN2_ALIAS, I1, 0, 0 },
+{"beqz", "s,p", 0x94000000, 0xffe00000, RD_1|CBD, AL, I1, 0, 0 },
{"beqzl", "s,p", 0, (int) M_BEQL, INSN_MACRO, 0, I1, 0, 0 },
{"beq", "md,mz,mE", 0x8c00, 0xfc00, RD_1|CBD, 0, I1, 0, 0 }, /* beqz */
{"beq", "mz,md,mE", 0x8c00, 0xfc00, RD_2|CBD, 0, I1, 0, 0 }, /* beqz */
@@ -431,7 +433,7 @@ const struct mips_opcode micromips_opcodes[] =
{"bltzals", "s,p", 0x42200000, 0xffe00000, RD_1|WR_31|CBD, BD16, I1, 0, 0 },
{"bltzall", "s,p", 0, (int) M_BLTZALL, INSN_MACRO, 0, I1, 0, 0 },
{"bnez", "md,mE", 0xac00, 0xfc00, RD_1|CBD, 0, I1, 0, 0 },
-{"bnez", "s,p", 0xb4000000, 0xffe00000, RD_1|CBD, INSN2_ALIAS, I1, 0, 0 },
+{"bnez", "s,p", 0xb4000000, 0xffe00000, RD_1|CBD, AL, I1, 0, 0 },
{"bnezl", "s,p", 0, (int) M_BNEL, INSN_MACRO, 0, I1, 0, 0 },
{"bne", "md,mz,mE", 0xac00, 0xfc00, RD_1|CBD, 0, I1, 0, 0 }, /* bnez */
{"bne", "mz,md,mE", 0xac00, 0xfc00, RD_2|CBD, 0, I1, 0, 0 }, /* bnez */
@@ -626,20 +628,20 @@ const struct mips_opcode micromips_opcodes[] =
{"dli", "t,I", 0, (int) M_DLI, INSN_MACRO, 0, I3, 0, 0 },
{"dmfc0", "t,G", 0x580000fc, 0xfc00ffff, WR_1|RD_C0, 0, I3, 0, 0 },
{"dmfc0", "t,G,H", 0x580000fc, 0xfc00c7ff, WR_1|RD_C0, 0, I3, 0, 0 },
+{"dmfc1", "t,S", 0x5400243b, 0xfc00ffff, WR_1|RD_2|FP_S|LC, 0, I3, 0, 0 },
+{"dmfc1", "t,G", 0x5400243b, 0xfc00ffff, WR_1|RD_2|FP_S|LC, 0, I3, 0, 0 },
+{"dmfc2", "t,G", 0x00006d3c, 0xfc00ffff, WR_1|RD_C2, 0, I3, 0, 0 },
+/*{"dmfc2", "t,G,H", 0x58000283, 0xfc001fff, WR_1|RD_C2, 0, I3, 0, 0 },*/
{"dmfgc0", "t,G", 0x580004fc, 0xfc00ffff, WR_1|RD_C0, 0, 0, IVIRT64, 0 },
{"dmfgc0", "t,G,H", 0x580004fc, 0xfc00c7ff, WR_1|RD_C0, 0, 0, IVIRT64, 0 },
{"dmtc0", "t,G", 0x580002fc, 0xfc00ffff, RD_1|WR_C0|WR_CC, 0, I3, 0, 0 },
{"dmtc0", "t,G,H", 0x580002fc, 0xfc00c7ff, RD_1|WR_C0|WR_CC, 0, I3, 0, 0 },
-{"dmtgc0", "t,G", 0x580006fc, 0xfc00ffff, RD_1|WR_C0|WR_CC, 0, 0, IVIRT64, 0 },
-{"dmtgc0", "t,G,H", 0x580006fc, 0xfc00c7ff, RD_1|WR_C0|WR_CC, 0, 0, IVIRT64, 0 },
-{"dmfc1", "t,S", 0x5400243b, 0xfc00ffff, WR_1|RD_2|FP_S|LC, 0, I3, 0, 0 },
-{"dmfc1", "t,G", 0x5400243b, 0xfc00ffff, WR_1|RD_2|FP_S|LC, 0, I3, 0, 0 },
{"dmtc1", "t,S", 0x54002c3b, 0xfc00ffff, RD_1|WR_2|FP_S|CM, 0, I3, 0, 0 },
{"dmtc1", "t,G", 0x54002c3b, 0xfc00ffff, RD_1|WR_2|FP_S|CM, 0, I3, 0, 0 },
-{"dmfc2", "t,G", 0x00006d3c, 0xfc00ffff, WR_1|RD_C2, 0, I3, 0, 0 },
-/*{"dmfc2", "t,G,H", 0x58000283, 0xfc001fff, WR_1|RD_C2, 0, I3, 0, 0 },*/
{"dmtc2", "t,G", 0x00007d3c, 0xfc00ffff, RD_1|WR_C2|WR_CC, 0, I3, 0, 0 },
/*{"dmtc2", "t,G,H", 0x58000683, 0xfc001fff, RD_1|WR_C2|WR_CC, 0, I3, 0, 0 },*/
+{"dmtgc0", "t,G", 0x580006fc, 0xfc00ffff, RD_1|WR_C0|WR_CC, 0, 0, IVIRT64, 0 },
+{"dmtgc0", "t,G,H", 0x580006fc, 0xfc00c7ff, RD_1|WR_C0|WR_CC, 0, 0, IVIRT64, 0 },
{"dmul", "d,v,t", 0, (int) M_DMUL, INSN_MACRO, 0, I3, 0, 0 },
{"dmul", "d,v,I", 0, (int) M_DMUL_I, INSN_MACRO, 0, I3, 0, 0 },
{"dmulo", "d,v,t", 0, (int) M_DMULO, INSN_MACRO, 0, I3, 0, 0 },
@@ -842,11 +844,11 @@ const struct mips_opcode micromips_opcodes[] =
{"mfgc0", "t,G,H", 0x000004fc, 0xfc00c7ff, WR_1|RD_C0, 0, 0, IVIRT, 0 },
{"mfhc0", "t,G", 0x000000f4, 0xfc00ffff, WR_1|RD_C0, 0, 0, XPA, 0 },
{"mfhc0", "t,G,H", 0x000000f4, 0xfc00c7ff, WR_1|RD_C0, 0, 0, XPA, 0 },
-{"mfhgc0", "t,G", 0x000004f4, 0xfc00ffff, WR_1|RD_C0, 0, 0, XPAVZ, 0 },
-{"mfhgc0", "t,G,H", 0x000004f4, 0xfc00c7ff, WR_1|RD_C0, 0, 0, XPAVZ, 0 },
{"mfhc1", "t,S", 0x5400303b, 0xfc00ffff, WR_1|RD_2|FP_D|LC, 0, I1, 0, 0 },
{"mfhc1", "t,G", 0x5400303b, 0xfc00ffff, WR_1|RD_2|FP_D|LC, 0, I1, 0, 0 },
{"mfhc2", "t,G", 0x00008d3c, 0xfc00ffff, WR_1|RD_C2, 0, I1, 0, 0 },
+{"mfhgc0", "t,G", 0x000004f4, 0xfc00ffff, WR_1|RD_C0, 0, 0, XPAVZ, 0 },
+{"mfhgc0", "t,G,H", 0x000004f4, 0xfc00c7ff, WR_1|RD_C0, 0, 0, XPAVZ, 0 },
{"mfhi", "mj", 0x4600, 0xffe0, WR_1|RD_HI, 0, I1, 0, 0 },
{"mfhi", "s", 0x00000d7c, 0xffe0ffff, WR_1|RD_HI, 0, I1, 0, 0 },
{"mfhi", "s,7", 0x0000007c, 0xffe03fff, WR_1|RD_HI, 0, 0, D32, 0 },
@@ -892,11 +894,11 @@ const struct mips_opcode micromips_opcodes[] =
{"mtgc0", "t,G,H", 0x000006fc, 0xfc00c7ff, RD_1|WR_C0|WR_CC, 0, 0, IVIRT, 0 },
{"mthc0", "t,G", 0x000002f4, 0xfc00ffff, RD_1|WR_C0|WR_CC, 0, 0, XPA, 0 },
{"mthc0", "t,G,H", 0x000002f4, 0xfc00c7ff, RD_1|WR_C0|WR_CC, 0, 0, XPA, 0 },
-{"mthgc0", "t,G", 0x000006f4, 0xfc00ffff, RD_1|WR_C0|WR_CC, 0, 0, XPAVZ, 0 },
-{"mthgc0", "t,G,H", 0x000006f4, 0xfc00c7ff, RD_1|WR_C0|WR_CC, 0, 0, XPAVZ, 0 },
{"mthc1", "t,S", 0x5400383b, 0xfc00ffff, RD_1|WR_2|FP_D|CM, 0, I1, 0, 0 },
{"mthc1", "t,G", 0x5400383b, 0xfc00ffff, RD_1|WR_2|FP_D|CM, 0, I1, 0, 0 },
{"mthc2", "t,G", 0x00009d3c, 0xfc00ffff, RD_1|WR_C2|WR_CC, 0, I1, 0, 0 },
+{"mthgc0", "t,G", 0x000006f4, 0xfc00ffff, RD_1|WR_C0|WR_CC, 0, 0, XPAVZ, 0 },
+{"mthgc0", "t,G,H", 0x000006f4, 0xfc00c7ff, RD_1|WR_C0|WR_CC, 0, 0, XPAVZ, 0 },
{"mthi", "s", 0x00002d7c, 0xffe0ffff, RD_1|WR_HI, 0, I1, 0, 0 },
{"mthi", "s,7", 0x0000207c, 0xffe03fff, RD_1|WR_HI, 0, 0, D32, 0 },
{"mtlo", "s", 0x00003d7c, 0xffe0ffff, RD_1|WR_LO, 0, I1, 0, 0 },
@@ -1079,11 +1081,11 @@ const struct mips_opcode micromips_opcodes[] =
{"invalidate", "t,~(b)", 0x60009000, 0xfc00f000, RD_1|RD_3|SM, 0, I1, 0, 0 }, /* same */
{"invalidate", "t,A(b)", 0, (int) M_SWR_AB, INSN_MACRO, 0, I1, 0, 0 },
{"swxc1", "D,t(b)", 0x54000088, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_S, 0, I1, 0, 0 },
-{"sync_acquire", "", 0x00116b7c, 0xffffffff, NODS, INSN2_ALIAS, I1, 0, 0 },
-{"sync_mb", "", 0x00106b7c, 0xffffffff, NODS, INSN2_ALIAS, I1, 0, 0 },
-{"sync_release", "", 0x00126b7c, 0xffffffff, NODS, INSN2_ALIAS, I1, 0, 0 },
-{"sync_rmb", "", 0x00136b7c, 0xffffffff, NODS, INSN2_ALIAS, I1, 0, 0 },
-{"sync_wmb", "", 0x00046b7c, 0xffffffff, NODS, INSN2_ALIAS, I1, 0, 0 },
+{"sync_acquire", "", 0x00116b7c, 0xffffffff, NODS, AL, I1, 0, 0 },
+{"sync_mb", "", 0x00106b7c, 0xffffffff, NODS, AL, I1, 0, 0 },
+{"sync_release", "", 0x00126b7c, 0xffffffff, NODS, AL, I1, 0, 0 },
+{"sync_rmb", "", 0x00136b7c, 0xffffffff, NODS, AL, I1, 0, 0 },
+{"sync_wmb", "", 0x00046b7c, 0xffffffff, NODS, AL, I1, 0, 0 },
{"sync", "", 0x00006b7c, 0xffffffff, NODS, 0, I1, 0, 0 },
{"sync", "1", 0x00006b7c, 0xffe0ffff, NODS, 0, I1, 0, 0 },
{"synci", "o(b)", 0x42000000, 0xffe00000, RD_2|SM, 0, I1, 0, 0 },
diff --git a/opcodes/mips-opc.c b/opcodes/mips-opc.c
index c6cbb66..7b1aa5f 100644
--- a/opcodes/mips-opc.c
+++ b/opcodes/mips-opc.c
@@ -52,7 +52,7 @@ decode_mips_operand (const char *p)
case 'u': PREV_CHECK (5, 16, true, false, false, false);
case 'v': PREV_CHECK (5, 16, true, true, false, false);
case 'w': PREV_CHECK (5, 16, false, true, true, true);
- case 'x': PREV_CHECK (5, 21, true, false, false, true);
+ case 'x': PREV_CHECK (5, 21, true, false, false, false);
case 'y': PREV_CHECK (5, 21, false, true, false, false);
case 'A': PCREL (19, 0, true, 2, 2, false, false);
case 'B': PCREL (18, 0, true, 3, 3, false, false);
@@ -117,7 +117,6 @@ decode_mips_operand (const char *p)
case 'q': REG (0, 0, R5900_Q);
case 'r': REG (0, 0, R5900_R);
case 's': MSB (5, 11, 0, false, 31); /* (0 .. 31) */
- case 't': REG (5, 16, COPRO);
case 'u': SPECIAL (3, 16, IMM_INDEX);
case 'v': SPECIAL (2, 16, IMM_INDEX);
case 'w': SPECIAL (1, 16, IMM_INDEX);
@@ -218,6 +217,8 @@ decode_mips_operand (const char *p)
/* Short hand so the lines aren't too long. */
+#define AL INSN2_ALIAS
+
#define LC INSN_LOAD_COPROC
#define UBD INSN_UNCOND_BRANCH_DELAY
#define CBD INSN_COND_BRANCH_DELAY
@@ -317,7 +318,7 @@ decode_mips_operand (const char *p)
/* Emotion Engine MIPS r5900. */
#define EE INSN_5900
#define M1 INSN_10000
-#define AL INSN_ALLEGREX
+#define ALX INSN_ALLEGREX
#define SB1 INSN_SB1
#define N411 INSN_4111
#define N412 INSN_4120
@@ -343,7 +344,7 @@ decode_mips_operand (const char *p)
#define G3 EE
/* CPU without 64 bit FPU support (single float only). */
-#define SF (AL \
+#define SF (ALX \
|EE \
)
@@ -451,19 +452,19 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"pref", "k,o(b)", 0xcc000000, 0xfc000000, RD_3|LM, 0, I4_32|G3, 0, I37 },
{"pref", "k,A(b)", 0, (int) M_PREF_AB, INSN_MACRO, 0, I4_32|G3, 0, 0 },
{"prefx", "h,t(b)", 0x4c00000f, 0xfc0007ff, RD_2|RD_3|FP_S|LM, 0, I4_33, 0, I37 },
-{"nop", "", 0x00000000, 0xffffffff, 0, INSN2_ALIAS, I1, 0, 0 }, /* sll */
-{"ssnop", "", 0x00000040, 0xffffffff, 0, INSN2_ALIAS, I1, 0, 0 }, /* sll */
-{"ehb", "", 0x000000c0, 0xffffffff, 0, INSN2_ALIAS, I1, 0, 0 }, /* sll */
-{"li", "t,j", 0x24000000, 0xffe00000, WR_1, INSN2_ALIAS, I1, 0, 0 }, /* addiu */
-{"li", "t,i", 0x34000000, 0xffe00000, WR_1, INSN2_ALIAS, I1, 0, 0 }, /* ori */
+{"nop", "", 0x00000000, 0xffffffff, 0, AL, I1, 0, 0 }, /* sll */
+{"ssnop", "", 0x00000040, 0xffffffff, 0, AL, I1, 0, 0 }, /* sll */
+{"ehb", "", 0x000000c0, 0xffffffff, 0, AL, I1, 0, 0 }, /* sll */
+{"li", "t,j", 0x24000000, 0xffe00000, WR_1, AL, I1, 0, 0 }, /* addiu */
+{"li", "t,i", 0x34000000, 0xffe00000, WR_1, AL, I1, 0, 0 }, /* ori */
{"li", "t,I", 0, (int) M_LI, INSN_MACRO, 0, I1, 0, 0 },
{"move", "d,s", 0, (int) M_MOVE, INSN_MACRO, 0, I1, 0, 0 },
-{"move", "d,s", 0x00000025, 0xfc1f07ff, WR_1|RD_2, INSN2_ALIAS, I1, 0, 0 },/* or */
-{"move", "d,s", 0x0000002d, 0xfc1f07ff, WR_1|RD_2, INSN2_ALIAS, I3, 0, 0 },/* daddu */
-{"move", "d,s", 0x00000021, 0xfc1f07ff, WR_1|RD_2, INSN2_ALIAS, I1, 0, 0 },/* addu */
-{"b", "p", 0x10000000, 0xffff0000, UBD, INSN2_ALIAS, I1, 0, 0 },/* beq 0,0 */
-{"b", "p", 0x04010000, 0xffff0000, UBD, INSN2_ALIAS, I1, 0, 0 },/* bgez 0 */
-{"bal", "p", 0x04110000, 0xffff0000, WR_31|UBD, INSN2_ALIAS, I1, 0, I37 }, /* bgezal 0 */
+{"move", "d,s", 0x00000025, 0xfc1f07ff, WR_1|RD_2, AL, I1, 0, 0 },/* or */
+{"move", "d,s", 0x0000002d, 0xfc1f07ff, WR_1|RD_2, AL, I3, 0, 0 },/* daddu */
+{"move", "d,s", 0x00000021, 0xfc1f07ff, WR_1|RD_2, AL, I1, 0, 0 },/* addu */
+{"b", "p", 0x10000000, 0xffff0000, UBD, AL, I1, 0, 0 },/* beq 0,0 */
+{"b", "p", 0x04010000, 0xffff0000, UBD, AL, I1, 0, 0 },/* bgez 0 */
+{"bal", "p", 0x04110000, 0xffff0000, WR_31|UBD, AL, I1, 0, I37 }, /* bgezal 0 */
{"bal", "p", 0x04110000, 0xffff0000, WR_31|UBD, 0, I37, 0, 0 },
{"bc", "+'", 0xc8000000, 0xfc000000, NODS, 0, I37, 0, 0 },
{"balc", "+'", 0xe8000000, 0xfc000000, WR_31|NODS, 0, I37, 0, 0 },
@@ -737,8 +738,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"bc1tl", "N,p", 0x45030000, 0xffe30000, RD_CC|CBL|FP_S, 0, I4_32, 0, I37 },
/* bc2* are at the bottom of the table. */
/* bc3* are at the bottom of the table. */
-{"beqz", "s,p", 0x10000000, 0xfc1f0000, RD_1|CBD, INSN2_ALIAS, I1, 0, 0 },
-{"beqzl", "s,p", 0x50000000, 0xfc1f0000, RD_1|CBL, INSN2_ALIAS, I2|T3, 0, I37 },
+{"beqz", "s,p", 0x10000000, 0xfc1f0000, RD_1|CBD, AL, I1, 0, 0 },
+{"beqzl", "s,p", 0x50000000, 0xfc1f0000, RD_1|CBL, AL, I2|T3, 0, I37 },
{"beq", "s,t,p", 0x10000000, 0xfc000000, RD_1|RD_2|CBD, 0, I1, 0, 0 },
{"beq", "s,I,p", 0, (int) M_BEQ_I, INSN_MACRO, 0, I1, 0, 0 },
{"beql", "s,t,p", 0x50000000, 0xfc000000, RD_1|RD_2|CBL, 0, I2|T3, 0, I37 },
@@ -788,8 +789,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"bltzal", "s,p", 0x04100000, 0xfc1f0000, RD_1|WR_31|CBD, 0, I1, 0, I37 },
{"nal", "", 0x04100000, 0xffffffff, WR_31|CBD, 0, I1, 0, 0 }, /* bltzal 0,.+4 */
{"bltzall", "s,p", 0x04120000, 0xfc1f0000, RD_1|WR_31|CBL, 0, I2|T3, 0, I37 },
-{"bnez", "s,p", 0x14000000, 0xfc1f0000, RD_1|CBD, INSN2_ALIAS, I1, 0, 0 },
-{"bnezl", "s,p", 0x54000000, 0xfc1f0000, RD_1|CBL, INSN2_ALIAS, I2|T3, 0, I37 },
+{"bnez", "s,p", 0x14000000, 0xfc1f0000, RD_1|CBD, AL, I1, 0, 0 },
+{"bnezl", "s,p", 0x54000000, 0xfc1f0000, RD_1|CBL, AL, I2|T3, 0, I37 },
{"bne", "s,t,p", 0x14000000, 0xfc000000, RD_1|RD_2|CBD, 0, I1, 0, 0 },
{"bne", "s,I,p", 0, (int) M_BNE_I, INSN_MACRO, 0, I1, 0, 0 },
{"bnel", "s,t,p", 0x54000000, 0xfc000000, RD_1|RD_2|CBL, 0, I2|T3, 0, I37 },
@@ -974,8 +975,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"flushid", "", 0xbc030000, 0xffffffff, 0, 0, L1, 0, 0 },
{"wb", "o(b)", 0xbc040000, 0xfc1f0000, RD_2|SM, 0, L1, 0, 0 },
{"cache", "k,+j(b)", 0x7c000025, 0xfc00007f, RD_3, 0, I37, 0, 0 },
-{"cache", "k,o(b)", 0xbc000000, 0xfc000000, RD_3, 0, I3_32|T3|AL, 0, I37 },
-{"cache", "k,A(b)", 0, (int) M_CACHE_AB, INSN_MACRO, 0, I3_32|T3|AL, 0, 0 },
+{"cache", "k,o(b)", 0xbc000000, 0xfc000000, RD_3, 0, I3_32|T3|ALX, 0, I37 },
+{"cache", "k,A(b)", 0, (int) M_CACHE_AB, INSN_MACRO, 0, I3_32|T3|ALX, 0, 0 },
{"ceil.l.d", "D,S", 0x4620000a, 0xffff003f, WR_1|RD_2|FP_D, 0, I3_33, 0, 0 },
{"ceil.l.s", "D,S", 0x4600000a, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I3_33, 0, 0 },
{"ceil.w.d", "D,S", 0x4620000e, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I2, 0, SF },
@@ -985,16 +986,16 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"cfc1", "t,S", 0x44400000, 0xffe007ff, WR_1|RD_C1|LC, 0, I1, 0, 0 },
/* cfc2 is at the bottom of the table. */
/* cfc3 is at the bottom of the table. */
-{"cftc1", "d,y", 0x41000023, 0xffe007ff, WR_1|RD_C1|TRAP|LC, 0, 0, MT32, 0 },
-{"cftc1", "d,T", 0x41000023, 0xffe007ff, WR_1|RD_C1|TRAP|LC, 0, 0, MT32, 0 },
-{"cftc2", "d,y", 0x41000025, 0xffe007ff, WR_1|RD_C2|TRAP|LC, 0, 0, MT32, IOCT|IOCTP|IOCT2 },
+{"cftc1", "d,y", 0x41000023, 0xffe007ff, WR_1|RD_C1|TRAP|LC, AL, 0, MT32, 0 },
+{"cftc1", "d,T", 0x41000023, 0xffe007ff, WR_1|RD_C1|TRAP|LC, AL, 0, MT32, 0 },
+{"cftc2", "d,y", 0x41000025, 0xffe007ff, WR_1|RD_C2|TRAP|LC, AL, 0, MT32, IOCT|IOCTP|IOCT2 },
{"cins32", "t,r,+p,+s", 0x70000033, 0xfc00003f, WR_1|RD_2, 0, IOCT, 0, 0 },
{"cins", "t,r,+P,+S", 0x70000033, 0xfc00003f, WR_1|RD_2, 0, IOCT, 0, 0 }, /* cins32 */
{"cins", "t,r,+p,+S", 0x70000032, 0xfc00003f, WR_1|RD_2, 0, IOCT, 0, 0 },
-{"clo", "d,s", 0x00000017, 0xfc1f07ff, WR_1|RD_2, 0, AL, 0, 0 },
+{"clo", "d,s", 0x00000017, 0xfc1f07ff, WR_1|RD_2, 0, ALX, 0, 0 },
{"clo", "d,s", 0x00000051, 0xfc1f07ff, WR_1|RD_2, 0, I37, 0, 0 },
{"clo", "U,s", 0x70000021, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
-{"clz", "d,s", 0x00000016, 0xfc1f07ff, WR_1|RD_2, 0, AL, 0, 0 },
+{"clz", "d,s", 0x00000016, 0xfc1f07ff, WR_1|RD_2, 0, ALX, 0, 0 },
{"clz", "d,s", 0x00000050, 0xfc1f07ff, WR_1|RD_2, 0, I37, 0, 0 },
{"clz", "U,s", 0x70000020, 0xfc0007ff, WR_1|RD_2, 0, I32|N55, 0, I37 },
/* ctc0 is at the bottom of the table. */
@@ -1002,9 +1003,9 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"ctc1", "t,S", 0x44c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, 0 },
/* ctc2 is at the bottom of the table. */
/* ctc3 is at the bottom of the table. */
-{"cttc1", "t,g", 0x41800023, 0xffe007ff, RD_1|WR_CC|TRAP|CM, 0, 0, MT32, 0 },
-{"cttc1", "t,S", 0x41800023, 0xffe007ff, RD_1|WR_CC|TRAP|CM, 0, 0, MT32, 0 },
-{"cttc2", "t,g", 0x41800025, 0xffe007ff, RD_1|WR_CC|TRAP|CM, 0, 0, MT32, IOCT|IOCTP|IOCT2 },
+{"cttc1", "t,g", 0x41800023, 0xffe007ff, RD_1|WR_CC|TRAP|CM, AL, 0, MT32, 0 },
+{"cttc1", "t,S", 0x41800023, 0xffe007ff, RD_1|WR_CC|TRAP|CM, AL, 0, MT32, 0 },
+{"cttc2", "t,g", 0x41800025, 0xffe007ff, RD_1|WR_CC|TRAP|CM, AL, 0, MT32, IOCT|IOCTP|IOCT2 },
{"cvt.d.l", "D,S", 0x46a00021, 0xffff003f, WR_1|RD_2|FP_D, 0, I3_33, 0, 0 },
{"cvt.d.s", "D,S", 0x46000021, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I1, 0, SF },
{"cvt.d.w", "D,S", 0x46800021, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I1, 0, SF },
@@ -1030,7 +1031,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I3, 0, 0 },
{"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, 0, I3, 0, 0 },
{"daddwc", "d,s,t", 0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0, XLR, 0, 0 },
-{"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5|AL, 0, 0 },
+{"dbreak", "", 0x7000003f, 0xffffffff, 0, 0, N5|ALX, 0, 0 },
{"dclo", "d,s", 0x00000053, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 },
{"dclo", "U,s", 0x70000025, 0xfc0007ff, WR_1|RD_2, 0, I64|N55, 0, I69 },
{"dclz", "d,s", 0x00000052, 0xfc1f07ff, WR_1|RD_2, 0, I69, 0, 0 },
@@ -1104,20 +1105,20 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"dmadd16", "s,t", 0x00000029, 0xfc00ffff, RD_1|RD_2|MOD_LO, 0, N411, 0, 0 },
{"dmfc0", "t,G", 0x40200000, 0xffe007ff, WR_1|RD_C0|LC, 0, I3, 0, EE },
{"dmfc0", "t,G,H", 0x40200000, 0xffe007f8, WR_1|RD_C0|LC, 0, I64, 0, 0 },
+{"dmfc1", "t,S", 0x44200000, 0xffe007ff, WR_1|RD_2|LC|FP_D, 0, I3, 0, SF },
+{"dmfc1", "t,G", 0x44200000, 0xffe007ff, WR_1|RD_2|LC|FP_D, 0, I3, 0, SF },
+/* dmfc2 is at the bottom of the table. */
{"dmfgc0", "t,G", 0x40600100, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
{"dmfgc0", "t,G,H", 0x40600100, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT64, 0 },
{"dmt", "", 0x41600bc1, 0xffffffff, TRAP, 0, 0, MT32, 0 },
{"dmt", "t", 0x41600bc1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 },
{"dmtc0", "t,G", 0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I3, 0, EE },
{"dmtc0", "t,G,H", 0x40a00000, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, I64, 0, 0 },
-{"dmtgc0", "t,G", 0x40600300, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, 0, IVIRT64, 0 },
-{"dmtgc0", "t,G,H", 0x40600300, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, 0, IVIRT64, 0 },
-{"dmfc1", "t,S", 0x44200000, 0xffe007ff, WR_1|RD_2|LC|FP_D, 0, I3, 0, SF },
-{"dmfc1", "t,G", 0x44200000, 0xffe007ff, WR_1|RD_2|LC|FP_D, 0, I3, 0, SF },
{"dmtc1", "t,S", 0x44a00000, 0xffe007ff, RD_1|WR_2|CM|FP_D, 0, I3, 0, SF },
{"dmtc1", "t,G", 0x44a00000, 0xffe007ff, RD_1|WR_2|CM|FP_D, 0, I3, 0, SF },
-/* dmfc2 is at the bottom of the table. */
/* dmtc2 is at the bottom of the table. */
+{"dmtgc0", "t,G", 0x40600300, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, 0, IVIRT64, 0 },
+{"dmtgc0", "t,G,H", 0x40600300, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, 0, IVIRT64, 0 },
{"dmuh", "d,s,t", 0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
{"dmul", "d,s,t", 0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I69, 0, 0 },
{"dmul", "d,v,t", 0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0, IOCT, 0, 0 },
@@ -1140,7 +1141,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"dremu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_2|RD_3|WR_HILO, 0, I3, 0, M32|I69 },
{"dremu", "d,v,t", 0, (int) M_DREMU_3, INSN_MACRO, 0, I3, 0, M32|I69 },
{"dremu", "d,v,I", 0, (int) M_DREMU_3I, INSN_MACRO, 0, I3, 0, M32|I69 },
-{"dret", "", 0x7000003e, 0xffffffff, 0, 0, N5|AL, 0, 0 },
+{"dret", "", 0x7000003e, 0xffffffff, 0, 0, N5|ALX, 0, 0 },
{"drol", "d,v,t", 0, (int) M_DROL, INSN_MACRO, 0, I3, 0, 0 },
{"drol", "d,v,I", 0, (int) M_DROL_I, INSN_MACRO, 0, I3, 0, 0 },
{"dror", "d,v,t", 0, (int) M_DROR, INSN_MACRO, 0, I3, 0, 0 },
@@ -1192,13 +1193,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"ei", "t", 0x41606020, 0xffe0ffff, WR_1|WR_C0, 0, I33, 0, 0 },
{"emt", "", 0x41600be1, 0xffffffff, TRAP, 0, 0, MT32, 0 },
{"emt", "t", 0x41600be1, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 },
-{"eret", "", 0x42000018, 0xffffffff, NODS, 0, I3_32|AL, 0, 0 },
+{"eret", "", 0x42000018, 0xffffffff, NODS, 0, I3_32|ALX, 0, 0 },
{"eretnc", "", 0x42000058, 0xffffffff, NODS, 0, I36, 0, 0 },
{"evpe", "", 0x41600021, 0xffffffff, TRAP, 0, 0, MT32, 0 },
{"evpe", "t", 0x41600021, 0xffe0ffff, WR_1|TRAP, 0, 0, MT32, 0 },
{"evp", "", 0x41600004, 0xffffffff, TRAP, 0, I37, 0, 0 },
{"evp", "t", 0x41600004, 0xffe0ffff, WR_1|TRAP, 0, I37, 0, 0 },
-{"ext", "t,r,+A,+C", 0x7c000000, 0xfc00003f, WR_1|RD_2, 0, I33|AL, 0, 0 },
+{"ext", "t,r,+A,+C", 0x7c000000, 0xfc00003f, WR_1|RD_2, 0, I33|ALX, 0, 0 },
{"exts32", "t,r,+p,+s", 0x7000003b, 0xfc00003f, WR_1|RD_2, 0, IOCT, 0, 0 },
{"exts", "t,r,+P,+S", 0x7000003b, 0xfc00003f, WR_1|RD_2, 0, IOCT, 0, 0 }, /* exts32 */
{"exts", "t,r,+p,+S", 0x7000003a, 0xfc00003f, WR_1|RD_2, 0, IOCT, 0, 0 },
@@ -1209,16 +1210,16 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"hibernate", "", 0x42000023, 0xffffffff, 0, 0, V1, 0, 0 },
{"hypcall", "", 0x42000028, 0xffffffff, TRAP, 0, 0, IVIRT, 0 },
{"hypcall", "+J", 0x42000028, 0xffe007ff, TRAP, 0, 0, IVIRT, 0 },
-{"ins", "t,r,+A,+B", 0x7c000004, 0xfc00003f, WR_1|RD_2, 0, I33|AL, 0, 0 },
+{"ins", "t,r,+A,+B", 0x7c000004, 0xfc00003f, WR_1|RD_2, 0, I33|ALX, 0, 0 },
{"iret", "", 0x42000038, 0xffffffff, NODS, 0, 0, MC, 0 },
-{"jr", "s", 0x00000009, 0xfc1fffff, RD_1|UBD, INSN2_ALIAS, I37, 0, 0 }, /* jalr $0 */
+{"jr", "s", 0x00000009, 0xfc1fffff, RD_1|UBD, AL, I37, 0, 0 }, /* jalr $0 */
{"jr", "s", 0x00000008, 0xfc1fffff, RD_1|UBD, 0, I1, 0, I37 },
/* MIPS R6 jic appears before beqzc and jialc appears before bnezc */
/* jr.hb is officially MIPS{32,64}R2, but it works on R1 as jr with
the same hazard barrier effect. */
-{"jr.hb", "s", 0x00000409, 0xfc1fffff, RD_1|UBD, INSN2_ALIAS, I37, 0, 0 }, /* jalr.hb $0 */
+{"jr.hb", "s", 0x00000409, 0xfc1fffff, RD_1|UBD, AL, I37, 0, 0 }, /* jalr.hb $0 */
{"jr.hb", "s", 0x00000408, 0xfc1fffff, RD_1|UBD, 0, I32, 0, I37 },
-{"j", "s", 0x00000009, 0xfc1fffff, RD_1|UBD, INSN2_ALIAS, I37, 0, 0 }, /* jalr $0 */
+{"j", "s", 0x00000009, 0xfc1fffff, RD_1|UBD, AL, I37, 0, 0 }, /* jalr $0 */
{"j", "s", 0x00000008, 0xfc1fffff, RD_1|UBD, 0, I1, 0, I37 }, /* jr */
/* SVR4 PIC code requires special handling for j, so it must be a
macro. */
@@ -1282,10 +1283,10 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"l.d", "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0, I2, 0, SF }, /* ldc1 */
{"l.d", "T,A(b)", 0, (int) M_L_DAB, INSN_MACRO, INSN2_M_FP_D, I1, 0, 0 },
{"ldc2", "E,+:(d)", 0x49c00000, 0xffe00000, RD_3|WR_C2|CLD, 0, I37, 0, 0 },
-{"ldc2", "E,o(b)", 0xd8000000, 0xfc000000, RD_3|WR_CC|CLD, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|AL|I37 },
-{"ldc2", "E,A(b)", 0, (int) M_LDC2_AB, INSN_MACRO, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|AL },
-{"ldc3", "E,o(b)", 0xdc000000, 0xfc000000, RD_3|WR_CC|CLD, 0, I2, 0, I3_32|EE|AL },
-{"ldc3", "E,A(b)", 0, (int) M_LDC3_AB, INSN_MACRO, 0, I2, 0, I3_32|EE|AL },
+{"ldc2", "E,o(b)", 0xd8000000, 0xfc000000, RD_3|WR_CC|CLD, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|ALX|I37 },
+{"ldc2", "E,A(b)", 0, (int) M_LDC2_AB, INSN_MACRO, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|ALX },
+{"ldc3", "E,o(b)", 0xdc000000, 0xfc000000, RD_3|WR_CC|CLD, 0, I2, 0, I3_32|EE|ALX },
+{"ldc3", "E,A(b)", 0, (int) M_LDC3_AB, INSN_MACRO, 0, I2, 0, I3_32|EE|ALX },
{"ldl", "t,o(b)", 0x68000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, I69 },
{"ldl", "t,A(b)", 0, (int) M_LDL_AB, INSN_MACRO, 0, I3, 0, I69 },
{"ldr", "t,o(b)", 0x6c000000, 0xfc000000, WR_1|RD_3|LM, 0, I3, 0, I69 },
@@ -1331,8 +1332,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"lwc2", "E,+:(d)", 0x49400000, 0xffe00000, RD_3|WR_C2|CLD, 0, I37, 0, 0 },
{"lwc2", "E,o(b)", 0xc8000000, 0xfc000000, RD_3|WR_CC|CLD, 0, I1, 0, N54|IOCT|IOCTP|IOCT2|EE|I37 },
{"lwc2", "E,A(b)", 0, (int) M_LWC2_AB, INSN_MACRO, 0, I1, 0, N54|IOCT|IOCTP|IOCT2|EE },
-{"lwc3", "E,o(b)", 0xcc000000, 0xfc000000, RD_3|WR_CC|CLD, 0, I1, 0, I3_32|EE|AL },
-{"lwc3", "E,A(b)", 0, (int) M_LWC3_AB, INSN_MACRO, 0, I1, 0, I3_32|EE|AL },
+{"lwc3", "E,o(b)", 0xcc000000, 0xfc000000, RD_3|WR_CC|CLD, 0, I1, 0, I3_32|EE|ALX },
+{"lwc3", "E,A(b)", 0, (int) M_LWC3_AB, INSN_MACRO, 0, I1, 0, I3_32|EE|ALX },
{"lwl", "t,o(b)", 0x88000000, 0xfc000000, WR_1|RD_3|LM, 0, I1, 0, I37 },
{"lwl", "t,A(b)", 0, (int) M_LWL_AB, INSN_MACRO, 0, I1, 0, I37 },
{"lcache", "t,o(b)", 0x88000000, 0xfc000000, WR_1|RD_3|LM, 0, I2, 0, I37 }, /* same */
@@ -1372,7 +1373,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"madd.ps", "D,R,S,T", 0x4c000026, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I5_33, 0, I37 },
{"madd.ps", "D,S,T", 0x45600018, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 },
{"madd.ps", "D,S,T", 0x72c00018, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 },
-{"madd", "s,t", 0x0000001c, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, L1|AL, 0, 0 },
+{"madd", "s,t", 0x0000001c, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, L1|ALX, 0, 0 },
{"madd", "s,t", 0x70000000, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0, I32|N55, 0, I37 },
{"madd", "s,t", 0x70000000, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M, 0, G1, 0, 0 },
{"madd", "7,s,t", 0x70000000, 0xfc00e7ff, RD_2|RD_3|MOD_a, 0, 0, D32, 0 },
@@ -1381,7 +1382,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"madd1", "d,s,t", 0x70000020, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0, EE, 0, 0 },
{"madda.s", "S,T", 0x4600001e, 0xffe007ff, RD_1|RD_2|FP_S, 0, EE, 0, 0 },
{"maddp", "s,t", 0x70000441, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0, 0, SMT, 0 },
-{"maddu", "s,t", 0x0000001d, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, L1|AL, 0, 0 },
+{"maddu", "s,t", 0x0000001d, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, L1|ALX, 0, 0 },
{"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0, I32|N55, 0, I37 },
{"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M, 0, G1, 0, 0 },
{"maddu", "7,s,t", 0x70000001, 0xfc00e7ff, RD_2|RD_3|MOD_a, 0, 0, D32, 0 },
@@ -1389,64 +1390,66 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"maddu1", "s,t", 0x70000021, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M, 0, EE, 0, 0 },
{"maddu1", "d,s,t", 0x70000021, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0, EE, 0, 0 },
{"madd16", "s,t", 0x00000028, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0, N411, 0, 0 },
-{"max", "d,v,t", 0x0000002c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, AL, 0, 0 },
+{"max", "d,v,t", 0x0000002c, 0xfc0007ff, WR_1|RD_2|RD_3, 0, ALX, 0, 0 },
{"max.ob", "X,Y,Q", 0x78000007, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
{"max.ob", "D,S,Q", 0x48000007, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 },
{"max.qh", "X,Y,Q", 0x78200007, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 },
{"max.s", "D,S,T", 0x46000028, 0xffe0003f, WR_1|RD_2|RD_3|FP_S, 0, EE, 0, 0 },
{"max.s", "D,S,T", 0x4600001e, 0xffe0003f, WR_1|RD_2|RD_3|FP_S, 0, I37, 0, 0 },
{"mfbpc", "t", 0x4000c000, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
+/* mfps overlaps with mfc0, so it's here to take precedence. */
+{"mfps", "t,P", 0x4000c800, 0xffe0ffc1, WR_1|RD_C0|LC, 0, M1|N5|EE, 0, 0 },
+{"mfc0", "t,G", 0x40000000, 0xffe007ff, WR_1|RD_C0|LC, 0, I1, 0, 0 },
+{"mfc0", "t,G,H", 0x40000000, 0xffe007f8, WR_1|RD_C0|LC, 0, I32, 0, 0 },
+{"mfc1", "t,S", 0x44000000, 0xffe007ff, WR_1|RD_2|LC|FP_S, 0, I1, 0, 0 },
+{"mfc1", "t,G", 0x44000000, 0xffe007ff, WR_1|RD_2|LC|FP_S, 0, I1, 0, 0 },
+/* mfc2 is at the bottom of the table. */
+/* mfc3 is at the bottom of the table. */
+{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1|RD_2, 0, XLR, 0, 0 },
{"mfdab", "t", 0x4000c004, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
{"mfdabm", "t", 0x4000c005, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
+{"mfdr", "t,G", 0x7000003d, 0xffe007ff, WR_1|RD_C0|LC, 0, N5|ALX, 0, 0 },
{"mfdvb", "t", 0x4000c006, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
{"mfdvbm", "t", 0x4000c007, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
-{"mfiab", "t", 0x4000c002, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
-{"mfiabm", "t", 0x4000c003, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
-{"mfpc", "t,P", 0x4000c801, 0xffe0ffc1, WR_1|RD_C0|LC, 0, M1|N5|EE, 0, 0 },
-{"mfps", "t,P", 0x4000c800, 0xffe0ffc1, WR_1|RD_C0|LC, 0, M1|N5|EE, 0, 0 },
-{"mftacx", "d", 0x41020021, 0xffff07ff, WR_1|RD_a|TRAP, 0, 0, MT32, 0 },
-{"mftacx", "d,*", 0x41020021, 0xfff307ff, WR_1|RD_a|TRAP, 0, 0, MT32, 0 },
-{"mftc0", "d,+t", 0x41000000, 0xffe007ff, WR_1|RD_C0|TRAP|LC, 0, 0, MT32, 0 },
-{"mftc0", "d,E,H", 0x41000000, 0xffe007f8, WR_1|RD_C0|TRAP|LC, 0, 0, MT32, 0 },
-{"mftc1", "d,T", 0x41000022, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_S, 0, 0, MT32, 0 },
-{"mftc1", "d,E", 0x41000022, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_S, 0, 0, MT32, 0 },
-{"mftc2", "d,E", 0x41000024, 0xffe007ff, WR_1|RD_C2|TRAP|LC, 0, 0, MT32, IOCT|IOCTP|IOCT2 },
-{"mftdsp", "d", 0x41100021, 0xffff07ff, WR_1|TRAP, 0, 0, MT32, 0 },
-{"mftgpr", "d,t", 0x41000020, 0xffe007ff, WR_1|RD_2|TRAP, 0, 0, MT32, 0 },
-{"mfthc1", "d,T", 0x41000032, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_D, 0, 0, MT32, 0 },
-{"mfthc1", "d,E", 0x41000032, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_D, 0, 0, MT32, 0 },
-{"mfthc2", "d,E", 0x41000034, 0xffe007ff, WR_1|RD_C2|TRAP|LC, 0, 0, MT32, IOCT|IOCTP|IOCT2 },
-{"mfthi", "d", 0x41010021, 0xffff07ff, WR_1|RD_a|TRAP, 0, 0, MT32, 0 },
-{"mfthi", "d,*", 0x41010021, 0xfff307ff, WR_1|RD_a|TRAP, 0, 0, MT32, 0 },
-{"mftlo", "d", 0x41000021, 0xffff07ff, WR_1|RD_a|TRAP, 0, 0, MT32, 0 },
-{"mftlo", "d,*", 0x41000021, 0xfff307ff, WR_1|RD_a|TRAP, 0, 0, MT32, 0 },
-{"mftr", "d,t,!,H,$", 0x41000000, 0xffe007c8, WR_1|TRAP, 0, 0, MT32, 0 },
-{"mfc0", "t,G", 0x40000000, 0xffe007ff, WR_1|RD_C0|LC, 0, I1, 0, 0 },
-{"mfc0", "t,G,H", 0x40000000, 0xffe007f8, WR_1|RD_C0|LC, 0, I32, 0, 0 },
{"mfgc0", "t,G", 0x40600000, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, IVIRT, 0 },
-{"mfgc0", "t,G,H", 0x40600000, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT, 0 },
+{"mfgc0", "t,G,H", 0x40600000, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, IVIRT, 0 },
{"mfhc0", "t,G", 0x40400000, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, XPA, 0 },
{"mfhc0", "t,G,H", 0x40400000, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, XPA, 0 },
-{"mfhgc0", "t,G", 0x40600400, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, XPAVZ, 0 },
-{"mfhgc0", "t,G,H", 0x40600400, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, XPAVZ, 0 },
-{"mfc1", "t,S", 0x44000000, 0xffe007ff, WR_1|RD_2|LC|FP_S, 0, I1, 0, 0 },
-{"mfc1", "t,G", 0x44000000, 0xffe007ff, WR_1|RD_2|LC|FP_S, 0, I1, 0, 0 },
{"mfhc1", "t,S", 0x44600000, 0xffe007ff, WR_1|RD_2|LC|FP_D, 0, I33, 0, 0 },
{"mfhc1", "t,G", 0x44600000, 0xffe007ff, WR_1|RD_2|LC|FP_D, 0, I33, 0, 0 },
-/* mfc2 is at the bottom of the table. */
/* mfhc2 is at the bottom of the table. */
-/* mfc3 is at the bottom of the table. */
-{"mfdr", "t,G", 0x7000003d, 0xffe007ff, WR_1|RD_C0|LC, 0, N5|AL, 0, 0 },
+{"mfhgc0", "t,G", 0x40600400, 0xffe007ff, WR_1|RD_C0|LC, 0, 0, XPAVZ, 0 },
+{"mfhgc0", "t,G,H", 0x40600400, 0xffe007f8, WR_1|RD_C0|LC, 0, 0, XPAVZ, 0 },
{"mfhi", "d", 0x00000010, 0xffff07ff, WR_1|RD_HI, 0, I1, 0, I37 },
-{"mfhi", "d,9", 0x00000010, 0xff9f07ff, WR_1|RD_HI, 0, 0, D32, 0 },
+{"mfhi", "d,9", 0x00000010, 0xff9f07ff, WR_1|RD_HI, 0, 0, D32, 0 },
{"mfhi1", "d", 0x70000010, 0xffff07ff, WR_1|RD_HI, 0, EE, 0, 0 },
+{"mfiab", "t", 0x4000c002, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
+{"mfiabm", "t", 0x4000c003, 0xffe0ffff, WR_1|RD_C0|LC, 0, EE, 0, 0 },
{"mflo", "d", 0x00000012, 0xffff07ff, WR_1|RD_LO, 0, I1, 0, I37 },
-{"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 },
+{"mflo", "d,9", 0x00000012, 0xff9f07ff, WR_1|RD_LO, 0, 0, D32, 0 },
{"mflo1", "d", 0x70000012, 0xffff07ff, WR_1|RD_LO, 0, EE, 0, 0 },
{"mflhxu", "d", 0x00000052, 0xffff07ff, WR_1|MOD_HILO, 0, 0, SMT, 0 },
-{"mfcr", "t,s", 0x70000018, 0xfc00ffff, WR_1|RD_2, 0, XLR, 0, 0 },
+{"mfpc", "t,P", 0x4000c801, 0xffe0ffc1, WR_1|RD_C0|LC, 0, M1|N5|EE, 0, 0 },
+/* mfps is above mfc0. */
{"mfsa", "d", 0x00000028, 0xffff07ff, WR_1, 0, EE, 0, 0 },
-{"min", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, AL, 0, 0 },
+{"mftacx", "d", 0x41020021, 0xffff07ff, WR_1|RD_a|TRAP, AL, 0, MT32, 0 },
+{"mftacx", "d,*", 0x41020021, 0xfff307ff, WR_1|RD_a|TRAP, AL, 0, MT32, 0 },
+{"mftc0", "d,E", 0x41000000, 0xffe007ff, WR_1|RD_C0|TRAP|LC, AL, 0, MT32, 0 },
+{"mftc0", "d,E,H", 0x41000000, 0xffe007f8, WR_1|RD_C0|TRAP|LC, AL, 0, MT32, 0 },
+{"mftc1", "d,T", 0x41000022, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_S, AL, 0, MT32, 0 },
+{"mftc1", "d,E", 0x41000022, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_S, AL, 0, MT32, 0 },
+{"mftc2", "d,E", 0x41000024, 0xffe007ff, WR_1|RD_C2|TRAP|LC, AL, 0, MT32, IOCT|IOCTP|IOCT2 },
+{"mftdsp", "d", 0x41100021, 0xffff07ff, WR_1|TRAP, AL, 0, MT32, 0 },
+{"mftgpr", "d,t", 0x41000020, 0xffe007ff, WR_1|RD_2|TRAP, AL, 0, MT32, 0 },
+{"mfthc1", "d,T", 0x41000032, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_D, AL, 0, MT32, 0 },
+{"mfthc1", "d,E", 0x41000032, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_D, AL, 0, MT32, 0 },
+{"mfthc2", "d,E", 0x41000034, 0xffe007ff, WR_1|RD_C2|TRAP|LC, AL, 0, MT32, IOCT|IOCTP|IOCT2 },
+{"mfthi", "d", 0x41010021, 0xffff07ff, WR_1|RD_a|TRAP, AL, 0, MT32, 0 },
+{"mfthi", "d,*", 0x41010021, 0xfff307ff, WR_1|RD_a|TRAP, AL, 0, MT32, 0 },
+{"mftlo", "d", 0x41000021, 0xffff07ff, WR_1|RD_a|TRAP, AL, 0, MT32, 0 },
+{"mftlo", "d,*", 0x41000021, 0xfff307ff, WR_1|RD_a|TRAP, AL, 0, MT32, 0 },
+{"mftr", "d,E,!,H,$", 0x41000000, 0xffe007c8, WR_1|TRAP, 0, 0, MT32, 0 },
+{"min", "d,v,t", 0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3, 0, ALX, 0, 0 },
{"min.ob", "X,Y,Q", 0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
{"min.ob", "D,S,Q", 0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, N54, 0, 0 },
{"min.qh", "X,Y,Q", 0x78200006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, 0, MX, 0 },
@@ -1462,7 +1465,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"movf.l", "X,Y,N", 0x46a00011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0, SB1, MX, 0 },
{"movf.s", "D,S,N", 0x46000011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_S, 0, I4_32, 0, I37 },
{"movf.ps", "D,S,N", 0x46c00011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0, I5_33, 0, I37 },
-{"movn", "d,v,t", 0x0000000b, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I4_32|IL2E|IL2F|EE|AL, 0, I37 },
+{"movn", "d,v,t", 0x0000000b, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I4_32|IL2E|IL2F|EE|ALX, 0, I37 },
{"movnz", "d,v,t", 0x0000000b, 0xfc0007ff, WR_1|RD_2|RD_3, 0, IL2E|IL2F, LEXT, 0 },
{"ffc", "d,v", 0x0000000b, 0xfc1f07ff, WR_1|RD_2, 0, L1, 0, 0 },
{"movn.d", "D,S,t", 0x46200013, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, I4_32, 0, I37 },
@@ -1476,7 +1479,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"movt.l", "X,Y,N", 0x46a10011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0, SB1, MX, 0 },
{"movt.s", "D,S,N", 0x46010011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_S, 0, I4_32, 0, I37 },
{"movt.ps", "D,S,N", 0x46c10011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0, I5_33, 0, I37 },
-{"movz", "d,v,t", 0x0000000a, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I4_32|IL2E|IL2F|EE|AL, 0, I37 },
+{"movz", "d,v,t", 0x0000000a, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I4_32|IL2E|IL2F|EE|ALX, 0, I37 },
{"ffs", "d,v", 0x0000000a, 0xfc1f07ff, WR_1|RD_2, 0, L1, 0, 0 },
{"movz.d", "D,S,t", 0x46200012, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, I4_32, 0, I37 },
{"movz.l", "D,S,t", 0x46a00012, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
@@ -1504,48 +1507,48 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"msub.ps", "D,R,S,T", 0x4c00002e, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0, I5_33, 0, I37 },
{"msub.ps", "D,S,T", 0x45600019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 },
{"msub.ps", "D,S,T", 0x72c00019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2F, 0, 0 },
-{"msub", "s,t", 0x0000002e, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, AL, 0, 0 },
+{"msub", "s,t", 0x0000002e, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, ALX, 0, 0 },
{"msub", "s,t", 0x0000001e, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, L1, 0, 0 },
{"msub", "s,t", 0x70000004, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0, I32|N55, 0, I37 },
{"msub", "7,s,t", 0x70000004, 0xfc00e7ff, RD_2|RD_3|MOD_a, 0, 0, D32, 0 },
{"msuba.s", "S,T", 0x4600001f, 0xffe007ff, RD_1|RD_2|FP_S, 0, EE, 0, 0 },
-{"msubu", "s,t", 0x0000002f, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, AL, 0, 0 },
+{"msubu", "s,t", 0x0000002f, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, ALX, 0, 0 },
{"msubu", "s,t", 0x0000001f, 0xfc00ffff, RD_1|RD_2|WR_HILO, 0, L1, 0, 0 },
{"msubu", "s,t", 0x70000005, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0, I32|N55, 0, I37 },
{"msubu", "7,s,t", 0x70000005, 0xfc00e7ff, RD_2|RD_3|MOD_a, 0, 0, D32, 0 },
{"mtbpc", "t", 0x4080c000, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
+/* mtps overlaps with mtc0, so it's here to take precedence. */
+{"mtps", "t,P", 0x4080c800, 0xffe0ffc1, RD_1|WR_C0|CM, 0, M1|N5|EE, 0, 0 },
+{"mtc0", "t,G", 0x40800000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I1, 0, 0 },
+{"mtc0", "t,G,H", 0x40800000, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, I32, 0, 0 },
+{"mtc1", "t,S", 0x44800000, 0xffe007ff, RD_1|WR_2|CM|FP_S, 0, I1, 0, 0 },
+{"mtc1", "t,G", 0x44800000, 0xffe007ff, RD_1|WR_2|CM|FP_S, 0, I1, 0, 0 },
+/* mtc2 is at the bottom of the table. */
+/* mtc3 is at the bottom of the table. */
+{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1|RD_2, 0, XLR, 0, 0 },
{"mtdab", "t", 0x4080c004, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
{"mtdabm", "t", 0x4080c005, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
+{"mtdr", "t,G", 0x7080003d, 0xffe007ff, RD_1|WR_C0|CM, 0, N5|ALX, 0, 0 },
{"mtdvb", "t", 0x4080c006, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
{"mtdvbm", "t", 0x4080c007, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
-{"mtiab", "t", 0x4080c002, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
-{"mtiabm", "t", 0x4080c003, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
-{"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, RD_1|WR_C0|CM, 0, M1|N5|EE, 0, 0 },
-{"mtps", "t,P", 0x4080c800, 0xffe0ffc1, RD_1|WR_C0|CM, 0, M1|N5|EE, 0, 0 },
-{"mtc0", "t,G", 0x40800000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, I1, 0, 0 },
-{"mtc0", "t,G,H", 0x40800000, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, I32, 0, 0 },
{"mtgc0", "t,G", 0x40600200, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, 0, IVIRT, 0 },
{"mtgc0", "t,G,H", 0x40600200, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, 0, IVIRT, 0 },
{"mthc0", "t,G", 0x40c00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, 0, XPA, 0 },
{"mthc0", "t,G,H", 0x40c00000, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, 0, XPA, 0 },
-{"mthgc0", "t,G", 0x40600600, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, 0, XPAVZ, 0 },
-{"mthgc0", "t,G,H", 0x40600600, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, 0, XPAVZ, 0 },
-{"mtc1", "t,S", 0x44800000, 0xffe007ff, RD_1|WR_2|CM|FP_S, 0, I1, 0, 0 },
-{"mtc1", "t,G", 0x44800000, 0xffe007ff, RD_1|WR_2|CM|FP_S, 0, I1, 0, 0 },
{"mthc1", "t,S", 0x44e00000, 0xffe007ff, RD_1|WR_2|CM|FP_D, 0, I33, 0, 0 },
{"mthc1", "t,G", 0x44e00000, 0xffe007ff, RD_1|WR_2|CM|FP_D, 0, I33, 0, 0 },
-/* mtc2 is at the bottom of the table. */
/* mthc2 is at the bottom of the table. */
-/* mtc3 is at the bottom of the table. */
-{"mtdr", "t,G", 0x7080003d, 0xffe007ff, RD_1|WR_C0|CM, 0, N5|AL, 0, 0 },
+{"mthgc0", "t,G", 0x40600600, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, 0, XPAVZ, 0 },
+{"mthgc0", "t,G,H", 0x40600600, 0xffe007f8, RD_1|WR_C0|WR_CC|CM, 0, 0, XPAVZ, 0 },
{"mthi", "s", 0x00000011, 0xfc1fffff, RD_1|WR_HI, 0, I1, 0, I37 },
{"mthi", "s,7", 0x00000011, 0xfc1fe7ff, RD_1|WR_HI, 0, 0, D32, 0 },
{"mthi1", "s", 0x70000011, 0xfc1fffff, RD_1|WR_HI, 0, EE, 0, 0 },
+{"mtiab", "t", 0x4080c002, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
+{"mtiabm", "t", 0x4080c003, 0xffe0ffff, RD_1|WR_C0|CM, 0, EE, 0, 0 },
+{"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 },
{"mtlo", "s", 0x00000013, 0xfc1fffff, RD_1|WR_LO, 0, I1, 0, I37 },
{"mtlo", "s,7", 0x00000013, 0xfc1fe7ff, RD_1|WR_LO, 0, 0, D32, 0 },
{"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_1|WR_LO, 0, EE, 0, 0 },
-{"mtlhx", "s", 0x00000053, 0xfc1fffff, RD_1|MOD_HILO, 0, 0, SMT, 0 },
-{"mtcr", "t,s", 0x70000019, 0xfc00ffff, RD_1|RD_2, 0, XLR, 0, 0 },
{"mtm0", "s", 0x70000008, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
{"mtm0", "s,t", 0x70000008, 0xfc00ffff, RD_1|RD_2, 0, IOCT3, 0, 0 },
{"mtm1", "s", 0x7000000c, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
@@ -1558,26 +1561,28 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mtp1", "s,t", 0x7000000a, 0xfc00ffff, RD_1|RD_2, 0, IOCT3, 0, 0 },
{"mtp2", "s", 0x7000000b, 0xfc1fffff, RD_1, 0, IOCT, 0, 0 },
{"mtp2", "s,t", 0x7000000b, 0xfc00ffff, RD_1|RD_2, 0, IOCT3, 0, 0 },
+{"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, RD_1|WR_C0|CM, 0, M1|N5|EE, 0, 0 },
+/* mtps is above mtc0. */
{"mtsa", "s", 0x00000029, 0xfc1fffff, RD_1, 0, EE, 0, 0 },
{"mtsab", "s,j", 0x04180000, 0xfc1f0000, RD_1, 0, EE, 0, 0 },
{"mtsah", "s,j", 0x04190000, 0xfc1f0000, RD_1, 0, EE, 0, 0 },
-{"mttc0", "t,G", 0x41800000, 0xffe007ff, RD_1|WR_C0|WR_CC|TRAP|CM, 0, 0, MT32, 0 },
-{"mttc0", "t,G,H", 0x41800000, 0xffe007f8, RD_1|WR_C0|WR_CC|TRAP|CM, 0, 0, MT32, 0 },
-{"mttc1", "t,S", 0x41800022, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_S, 0, 0, MT32, 0 },
-{"mttc1", "t,G", 0x41800022, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_S, 0, 0, MT32, 0 },
-{"mttc2", "t,G", 0x41800024, 0xffe007ff, RD_1|WR_C2|WR_CC|TRAP|CM, 0, 0, MT32, IOCT|IOCTP|IOCT2 },
-{"mttacx", "t", 0x41801021, 0xffe0ffff, RD_1|WR_a|TRAP, 0, 0, MT32, 0 },
-{"mttacx", "t,&", 0x41801021, 0xffe09fff, RD_1|WR_a|TRAP, 0, 0, MT32, 0 },
-{"mttdsp", "t", 0x41808021, 0xffe0ffff, RD_1|TRAP, 0, 0, MT32, 0 },
-{"mttgpr", "t,d", 0x41800020, 0xffe007ff, RD_1|WR_2|TRAP, 0, 0, MT32, 0 },
-{"mtthc1", "t,S", 0x41800032, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_D, 0, 0, MT32, 0 },
-{"mtthc1", "t,G", 0x41800032, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_D, 0, 0, MT32, 0 },
-{"mtthc2", "t,G", 0x41800034, 0xffe007ff, RD_1|WR_C2|WR_CC|TRAP|CM, 0, 0, MT32, IOCT|IOCTP|IOCT2 },
-{"mtthi", "t", 0x41800821, 0xffe0ffff, RD_1|WR_a|TRAP, 0, 0, MT32, 0 },
-{"mtthi", "t,&", 0x41800821, 0xffe09fff, RD_1|WR_a|TRAP, 0, 0, MT32, 0 },
-{"mttlo", "t", 0x41800021, 0xffe0ffff, RD_1|WR_a|TRAP, 0, 0, MT32, 0 },
-{"mttlo", "t,&", 0x41800021, 0xffe09fff, RD_1|WR_a|TRAP, 0, 0, MT32, 0 },
-{"mttr", "t,d,!,H,$", 0x41800000, 0xffe007c8, RD_1|TRAP, 0, 0, MT32, 0 },
+{"mttacx", "t", 0x41801021, 0xffe0ffff, RD_1|WR_a|TRAP, AL, 0, MT32, 0 },
+{"mttacx", "t,&", 0x41801021, 0xffe09fff, RD_1|WR_a|TRAP, AL, 0, MT32, 0 },
+{"mttc0", "t,G", 0x41800000, 0xffe007ff, RD_1|WR_C0|WR_CC|TRAP|CM, AL, 0, MT32, 0 },
+{"mttc0", "t,G,H", 0x41800000, 0xffe007f8, RD_1|WR_C0|WR_CC|TRAP|CM, AL, 0, MT32, 0 },
+{"mttc1", "t,S", 0x41800022, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_S, AL, 0, MT32, 0 },
+{"mttc1", "t,G", 0x41800022, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_S, AL, 0, MT32, 0 },
+{"mttc2", "t,G", 0x41800024, 0xffe007ff, RD_1|WR_C2|WR_CC|TRAP|CM, AL, 0, MT32, IOCT|IOCTP|IOCT2 },
+{"mttdsp", "t", 0x41808021, 0xffe0ffff, RD_1|TRAP, AL, 0, MT32, 0 },
+{"mttgpr", "t,d", 0x41800020, 0xffe007ff, RD_1|WR_2|TRAP, AL, 0, MT32, 0 },
+{"mtthc1", "t,S", 0x41800032, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_D, AL, 0, MT32, 0 },
+{"mtthc1", "t,G", 0x41800032, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_D, AL, 0, MT32, 0 },
+{"mtthc2", "t,G", 0x41800034, 0xffe007ff, RD_1|WR_C2|WR_CC|TRAP|CM, AL, 0, MT32, IOCT|IOCTP|IOCT2 },
+{"mtthi", "t", 0x41800821, 0xffe0ffff, RD_1|WR_a|TRAP, AL, 0, MT32, 0 },
+{"mtthi", "t,&", 0x41800821, 0xffe09fff, RD_1|WR_a|TRAP, AL, 0, MT32, 0 },
+{"mttlo", "t", 0x41800021, 0xffe0ffff, RD_1|WR_a|TRAP, AL, 0, MT32, 0 },
+{"mttlo", "t,&", 0x41800021, 0xffe09fff, RD_1|WR_a|TRAP, AL, 0, MT32, 0 },
+{"mttr", "t,G,!,H,$", 0x41800000, 0xffe007c8, RD_1|TRAP, 0, 0, MT32, 0 },
{"mul.d", "D,V,T", 0x46200002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, I1, 0, SF },
{"mul.s", "D,V,T", 0x46000002, 0xffe0003f, WR_1|RD_2|RD_3|FP_S, 0, I1, 0, 0 },
{"mul.ob", "X,Y,Q", 0x78000030, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, MX, 0 },
@@ -1672,7 +1677,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"ori", "t,r,i", 0x34000000, 0xfc000000, WR_1|RD_2, 0, I1, 0, 0 },
{"pabsdiff.ob", "X,Y,Q", 0x78000009, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, 0, 0 },
{"pabsdiffc.ob", "Y,Q", 0x78000035, 0xfc2007ff, RD_1|RD_2|FP_D, WR_MACC, SB1, 0, 0 },
-{"pause", "", 0x00000140, 0xffffffff, TRAP, 0, I33, 0, 0 },
+{"pause", "", 0x00000140, 0xffffffff, TRAP, AL, I33, 0, 0 },
{"pavg.ob", "X,Y,Q", 0x78000008, 0xfc20003f, WR_1|RD_2|RD_3|FP_D, 0, SB1, 0, 0 },
{"pabsh", "d,t", 0x70000168, 0xffe007ff, WR_1|RD_2, 0, MMI, 0, 0 },
{"pabsw", "d,t", 0x70000068, 0xffe007ff, WR_1|RD_2, 0, MMI, 0, 0 },
@@ -1788,10 +1793,10 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"recip2.d", "D,S,T", 0x4620001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, 0, M3D, 0 },
{"recip2.ps", "D,S,T", 0x46c0001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S, 0, 0, M3D, 0 },
{"recip2.s", "D,S,T", 0x4600001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S, 0, 0, M3D, 0 },
-{"rem", "z,s,t", 0x0000001a, 0xfc00ffff, RD_2|RD_3|WR_HILO, INSN2_ALIAS, I1, 0, I37 },
+{"rem", "z,s,t", 0x0000001a, 0xfc00ffff, RD_2|RD_3|WR_HILO, AL, I1, 0, I37 },
{"rem", "d,v,t", 0, (int) M_REM_3, INSN_MACRO, 0, I1, 0, I37 },
{"rem", "d,v,I", 0, (int) M_REM_3I, INSN_MACRO, 0, I1, 0, I37 },
-{"remu", "z,s,t", 0x0000001b, 0xfc00ffff, RD_2|RD_3|WR_HILO, INSN2_ALIAS, I1, 0, I37 },
+{"remu", "z,s,t", 0x0000001b, 0xfc00ffff, RD_2|RD_3|WR_HILO, AL, I1, 0, I37 },
{"remu", "d,v,t", 0, (int) M_REMU_3, INSN_MACRO, 0, I1, 0, I37 },
{"remu", "d,v,I", 0, (int) M_REMU_3I, INSN_MACRO, 0, I1, 0, I37 },
{"rdhwr", "t,K", 0x7c00003b, 0xffe007ff, WR_1, 0, I33, 0, 0 },
@@ -1808,13 +1813,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"rol", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, 0, I1, 0, 0 },
{"ror", "d,v,t", 0, (int) M_ROR, INSN_MACRO, 0, I1, 0, 0 },
{"ror", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, 0, I1, 0, 0 },
-{"ror", "d,w,<", 0x00200002, 0xffe0003f, WR_1|RD_2, 0, N5|I33|AL, SMT, 0 },
-{"rorv", "d,t,s", 0x00000046, 0xfc0007ff, WR_1|RD_2|RD_3, 0, N5|I33|AL, SMT, 0 },
-{"rotl", "d,v,t", 0, (int) M_ROL, INSN_MACRO, 0, I33|AL, SMT, 0 },
-{"rotl", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, 0, I33|AL, SMT, 0 },
-{"rotr", "d,v,t", 0, (int) M_ROR, INSN_MACRO, 0, I33|AL, SMT, 0 },
-{"rotr", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, 0, I33|AL, SMT, 0 },
-{"rotrv", "d,t,s", 0x00000046, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I33|AL, SMT, 0 },
+{"ror", "d,w,<", 0x00200002, 0xffe0003f, WR_1|RD_2, 0, N5|I33|ALX, SMT, 0 },
+{"rorv", "d,t,s", 0x00000046, 0xfc0007ff, WR_1|RD_2|RD_3, 0, N5|I33|ALX, SMT, 0 },
+{"rotl", "d,v,t", 0, (int) M_ROL, INSN_MACRO, 0, I33|ALX, SMT, 0 },
+{"rotl", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, 0, I33|ALX, SMT, 0 },
+{"rotr", "d,v,t", 0, (int) M_ROR, INSN_MACRO, 0, I33|ALX, SMT, 0 },
+{"rotr", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, 0, I33|ALX, SMT, 0 },
+{"rotrv", "d,t,s", 0x00000046, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I33|ALX, SMT, 0 },
{"round.l.d", "D,S", 0x46200008, 0xffff003f, WR_1|RD_2|FP_D, 0, I3_33, 0, 0 },
{"round.l.s", "D,S", 0x46000008, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I3_33, 0, 0 },
{"round.w.d", "D,S", 0x4620000c, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I2, 0, SF },
@@ -1864,10 +1869,10 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"sdc1", "T,A(b)", 0, (int) M_SDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF },
{"sdc1", "E,A(b)", 0, (int) M_SDC1_AB, INSN_MACRO, INSN2_M_FP_D, I2, 0, SF },
{"sdc2", "E,+:(d)", 0x49e00000, 0xffe00000, RD_3|RD_C2|SM, 0, I37, 0, 0 },
-{"sdc2", "E,o(b)", 0xf8000000, 0xfc000000, RD_3|RD_C2|SM, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|AL|I37 },
-{"sdc2", "E,A(b)", 0, (int) M_SDC2_AB, INSN_MACRO, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|AL },
-{"sdc3", "E,o(b)", 0xfc000000, 0xfc000000, RD_3|RD_C3|SM, 0, I2, 0, I3_32|EE|AL },
-{"sdc3", "E,A(b)", 0, (int) M_SDC3_AB, INSN_MACRO, 0, I2, 0, I3_32|EE|AL },
+{"sdc2", "E,o(b)", 0xf8000000, 0xfc000000, RD_3|RD_C2|SM, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|ALX|I37 },
+{"sdc2", "E,A(b)", 0, (int) M_SDC2_AB, INSN_MACRO, 0, I2, 0, N54|IOCT|IOCTP|IOCT2|EE|ALX },
+{"sdc3", "E,o(b)", 0xfc000000, 0xfc000000, RD_3|RD_C3|SM, 0, I2, 0, I3_32|EE|ALX },
+{"sdc3", "E,A(b)", 0, (int) M_SDC3_AB, INSN_MACRO, 0, I2, 0, I3_32|EE|ALX },
{"s.d", "T,o(b)", 0xf4000000, 0xfc000000, RD_1|RD_3|SM|FP_D, 0, I2, 0, SF },
{"s.d", "T,A(b)", 0, (int) M_S_DAB, INSN_MACRO, INSN2_M_FP_D, I1, 0, 0 },
{"sdl", "t,o(b)", 0xb0000000, 0xfc000000, RD_1|RD_3|SM, 0, I3, 0, I69 },
@@ -1875,8 +1880,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"sdr", "t,o(b)", 0xb4000000, 0xfc000000, RD_1|RD_3|SM, 0, I3, 0, I69 },
{"sdr", "t,A(b)", 0, (int) M_SDR_AB, INSN_MACRO, 0, I3, 0, I69 },
{"sdxc1", "S,t(b)", 0x4c000009, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0, I4_33, 0, I37 },
-{"seb", "d,w", 0x7c000420, 0xffe007ff, WR_1|RD_2, 0, I33|AL, 0, 0 },
-{"seh", "d,w", 0x7c000620, 0xffe007ff, WR_1|RD_2, 0, I33|AL, 0, 0 },
+{"seb", "d,w", 0x7c000420, 0xffe007ff, WR_1|RD_2, 0, I33|ALX, 0, 0 },
+{"seh", "d,w", 0x7c000620, 0xffe007ff, WR_1|RD_2, 0, I33|ALX, 0, 0 },
{"selsl", "d,v,t", 0x00000005, 0xfc0007ff, WR_1|RD_2|RD_3, 0, L1, 0, 0 },
{"selsr", "d,v,t", 0x00000001, 0xfc0007ff, WR_1|RD_2|RD_3, 0, L1, 0, 0 },
{"seq", "d,v,t", 0x7000002a, 0xfc0007ff, WR_1|RD_2|RD_3, 0, IOCT, 0, 0 },
@@ -2001,8 +2006,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"swc2", "E,+:(d)", 0x49600000, 0xffe00000, RD_3|RD_C2|SM, 0, I37, 0, 0 },
{"swc2", "E,o(b)", 0xe8000000, 0xfc000000, RD_3|RD_C2|SM, 0, I1, 0, N54|IOCT|IOCTP|IOCT2|EE|I37 },
{"swc2", "E,A(b)", 0, (int) M_SWC2_AB, INSN_MACRO, 0, I1, 0, N54|IOCT|IOCTP|IOCT2|EE },
-{"swc3", "E,o(b)", 0xec000000, 0xfc000000, RD_3|RD_C3|SM, 0, I1, 0, I3_32|EE|AL },
-{"swc3", "E,A(b)", 0, (int) M_SWC3_AB, INSN_MACRO, 0, I1, 0, I3_32|EE|AL },
+{"swc3", "E,o(b)", 0xec000000, 0xfc000000, RD_3|RD_C3|SM, 0, I1, 0, I3_32|EE|ALX },
+{"swc3", "E,A(b)", 0, (int) M_SWC3_AB, INSN_MACRO, 0, I1, 0, I3_32|EE|ALX },
{"swl", "t,o(b)", 0xa8000000, 0xfc000000, RD_1|RD_3|SM, 0, I1, 0, I37 },
{"swl", "t,A(b)", 0, (int) M_SWL_AB, INSN_MACRO, 0, I1, 0, I37 },
{"scache", "t,o(b)", 0xa8000000, 0xfc000000, RD_1|RD_3, 0, I2, 0, I37 }, /* same */
@@ -2012,15 +2017,15 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"invalidate", "t,o(b)", 0xb8000000, 0xfc000000, RD_1|RD_3, 0, I2, 0, I37 }, /* same */
{"invalidate", "t,A(b)", 0, (int) M_SWR_AB, INSN_MACRO, 0, I2, 0, I37 }, /* as swr */
{"swxc1", "S,t(b)", 0x4c000008, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_S, 0, I4_33, 0, I37 },
-{"synciobdma", "", 0x0000008f, 0xffffffff, NODS, INSN2_ALIAS, IOCT, 0, 0 },
-{"syncs", "", 0x0000018f, 0xffffffff, NODS, INSN2_ALIAS, IOCT, 0, 0 },
-{"syncw", "", 0x0000010f, 0xffffffff, NODS, INSN2_ALIAS, IOCT, 0, 0 },
-{"syncws", "", 0x0000014f, 0xffffffff, NODS, INSN2_ALIAS, IOCT, 0, 0 },
-{"sync_acquire", "", 0x0000044f, 0xffffffff, NODS, INSN2_ALIAS, I33, 0, 0 },
-{"sync_mb", "", 0x0000040f, 0xffffffff, NODS, INSN2_ALIAS, I33, 0, 0 },
-{"sync_release", "", 0x0000048f, 0xffffffff, NODS, INSN2_ALIAS, I33, 0, 0 },
-{"sync_rmb", "", 0x000004cf, 0xffffffff, NODS, INSN2_ALIAS, I33, 0, 0 },
-{"sync_wmb", "", 0x0000010f, 0xffffffff, NODS, INSN2_ALIAS, I33, 0, 0 },
+{"synciobdma", "", 0x0000008f, 0xffffffff, NODS, AL, IOCT, 0, 0 },
+{"syncs", "", 0x0000018f, 0xffffffff, NODS, AL, IOCT, 0, 0 },
+{"syncw", "", 0x0000010f, 0xffffffff, NODS, AL, IOCT, 0, 0 },
+{"syncws", "", 0x0000014f, 0xffffffff, NODS, AL, IOCT, 0, 0 },
+{"sync_acquire", "", 0x0000044f, 0xffffffff, NODS, AL, I33, 0, 0 },
+{"sync_mb", "", 0x0000040f, 0xffffffff, NODS, AL, I33, 0, 0 },
+{"sync_release", "", 0x0000048f, 0xffffffff, NODS, AL, I33, 0, 0 },
+{"sync_rmb", "", 0x000004cf, 0xffffffff, NODS, AL, I33, 0, 0 },
+{"sync_wmb", "", 0x0000010f, 0xffffffff, NODS, AL, I33, 0, 0 },
{"sync", "", 0x0000000f, 0xffffffff, NODS, 0, I2|G1, 0, 0 },
{"sync", "1", 0x0000000f, 0xfffff83f, NODS, 0, I32, 0, 0 },
{"sync.p", "", 0x0000040f, 0xffffffff, NODS, 0, I2, 0, 0 },
@@ -2028,21 +2033,21 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"synci", "o(b)", 0x041f0000, 0xfc1f0000, RD_2|SM, 0, I33, 0, 0 },
{"syscall", "", 0x0000000c, 0xffffffff, TRAP, 0, I1, 0, 0 },
{"syscall", "B", 0x0000000c, 0xfc00003f, TRAP, 0, I1, 0, 0 },
-{"teqi", "s,j", 0x040c0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL },
-{"teq", "s,t", 0x00000034, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"teq", "s,t,q", 0x00000034, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"teq", "s,j", 0x040c0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL }, /* teqi */
-{"teq", "s,I", 0, (int) M_TEQ_I, INSN_MACRO, 0, I2, 0, AL },
-{"tgei", "s,j", 0x04080000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL },
-{"tge", "s,t", 0x00000030, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tge", "s,t,q", 0x00000030, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tge", "s,j", 0x04080000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL }, /* tgei */
-{"tge", "s,I", 0, (int) M_TGE_I, INSN_MACRO, 0, I2, 0, AL },
-{"tgeiu", "s,j", 0x04090000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL },
-{"tgeu", "s,t", 0x00000031, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tgeu", "s,t,q", 0x00000031, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tgeu", "s,j", 0x04090000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL }, /* tgeiu */
-{"tgeu", "s,I", 0, (int) M_TGEU_I, INSN_MACRO, 0, I2, 0, AL },
+{"teqi", "s,j", 0x040c0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX },
+{"teq", "s,t", 0x00000034, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"teq", "s,t,q", 0x00000034, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"teq", "s,j", 0x040c0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX }, /* teqi */
+{"teq", "s,I", 0, (int) M_TEQ_I, INSN_MACRO, 0, I2, 0, ALX },
+{"tgei", "s,j", 0x04080000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX },
+{"tge", "s,t", 0x00000030, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tge", "s,t,q", 0x00000030, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tge", "s,j", 0x04080000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX }, /* tgei */
+{"tge", "s,I", 0, (int) M_TGE_I, INSN_MACRO, 0, I2, 0, ALX },
+{"tgeiu", "s,j", 0x04090000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX },
+{"tgeu", "s,t", 0x00000031, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tgeu", "s,t,q", 0x00000031, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tgeu", "s,j", 0x04090000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX }, /* tgeiu */
+{"tgeu", "s,I", 0, (int) M_TGEU_I, INSN_MACRO, 0, I2, 0, ALX },
{"tlbinv", "", 0x42000003, 0xffffffff, INSN_TLB, 0, I37, TLBINV, 0 },
{"tlbinvf", "", 0x42000004, 0xffffffff, INSN_TLB, 0, I37, TLBINV, 0 },
{"tlbp", "", 0x42000008, 0xffffffff, INSN_TLB, 0, I1, 0, 0 },
@@ -2055,21 +2060,21 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"tlbginvf", "", 0x4200000c, 0xffffffff, INSN_TLB, 0, 0, IVIRT, 0 },
{"tlbgwr", "", 0x4200000e, 0xffffffff, INSN_TLB, 0, 0, IVIRT, 0 },
{"tlbgp", "", 0x42000010, 0xffffffff, INSN_TLB, 0, 0, IVIRT, 0 },
-{"tlti", "s,j", 0x040a0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL },
-{"tlt", "s,t", 0x00000032, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tlt", "s,t,q", 0x00000032, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tlt", "s,j", 0x040a0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL }, /* tlti */
-{"tlt", "s,I", 0, (int) M_TLT_I, INSN_MACRO, 0, I2, 0, AL },
-{"tltiu", "s,j", 0x040b0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL },
-{"tltu", "s,t", 0x00000033, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tltu", "s,t,q", 0x00000033, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tltu", "s,j", 0x040b0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL }, /* tltiu */
-{"tltu", "s,I", 0, (int) M_TLTU_I, INSN_MACRO, 0, I2, 0, AL },
-{"tnei", "s,j", 0x040e0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL },
-{"tne", "s,t", 0x00000036, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tne", "s,t,q", 0x00000036, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, AL },
-{"tne", "s,j", 0x040e0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|AL }, /* tnei */
-{"tne", "s,I", 0, (int) M_TNE_I, INSN_MACRO, 0, I2, 0, AL },
+{"tlti", "s,j", 0x040a0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX },
+{"tlt", "s,t", 0x00000032, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tlt", "s,t,q", 0x00000032, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tlt", "s,j", 0x040a0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX }, /* tlti */
+{"tlt", "s,I", 0, (int) M_TLT_I, INSN_MACRO, 0, I2, 0, ALX },
+{"tltiu", "s,j", 0x040b0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX },
+{"tltu", "s,t", 0x00000033, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tltu", "s,t,q", 0x00000033, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tltu", "s,j", 0x040b0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX }, /* tltiu */
+{"tltu", "s,I", 0, (int) M_TLTU_I, INSN_MACRO, 0, I2, 0, ALX },
+{"tnei", "s,j", 0x040e0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX },
+{"tne", "s,t", 0x00000036, 0xfc00ffff, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tne", "s,t,q", 0x00000036, 0xfc00003f, RD_1|RD_2|TRAP, 0, I2, 0, ALX },
+{"tne", "s,j", 0x040e0000, 0xfc1f0000, RD_1|TRAP, 0, I2, 0, I37|ALX }, /* tnei */
+{"tne", "s,I", 0, (int) M_TNE_I, INSN_MACRO, 0, I2, 0, ALX },
{"trunc.l.d", "D,S", 0x46200009, 0xffff003f, WR_1|RD_2|FP_D, 0, I3_33, 0, 0 },
{"trunc.l.s", "D,S", 0x46000009, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I3_33, 0, 0 },
{"trunc.w.d", "D,S", 0x4620000d, 0xffff003f, WR_1|RD_2|FP_S|FP_D, 0, I2, 0, SF },
@@ -2099,8 +2104,8 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"wait", "J", 0x42000020, 0xfe00003f, NODS, 0, I32|N55, 0, 0 },
{"waiti", "", 0x42000020, 0xffffffff, NODS, 0, L1, 0, 0 },
{"wrpgpr", "d,w", 0x41c00000, 0xffe007ff, RD_2, 0, I33, 0, 0 },
-{"wsbh", "d,w", 0x7c0000a0, 0xffe007ff, WR_1|RD_2, 0, I33|AL, 0, 0 },
-{"wsbw", "d,w", 0x7c0000e0, 0xffe007ff, WR_1|RD_2, 0, AL, 0, 0 },
+{"wsbh", "d,w", 0x7c0000a0, 0xffe007ff, WR_1|RD_2, 0, I33|ALX, 0, 0 },
+{"wsbw", "d,w", 0x7c0000e0, 0xffe007ff, WR_1|RD_2, 0, ALX, 0, 0 },
{"xor", "d,v,t", 0x00000026, 0xfc0007ff, WR_1|RD_2|RD_3, 0, I1, 0, 0 },
{"xor", "t,r,I", 0, (int) M_XOR_I, INSN_MACRO, 0, I1, 0, 0 },
{"xor", "D,S,T", 0x47800002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D, 0, IL2E, 0, 0 },
@@ -2136,7 +2141,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"addu_s.ob", "d,s,t", 0x7c000114, 0xfc0007ff, WR_1|RD_2|RD_3, 0, 0, D64, 0 },
{"addu_s.qb", "d,s,t", 0x7c000110, 0xfc0007ff, WR_1|RD_2|RD_3, 0, 0, D32, 0 },
{"addwc", "d,s,t", 0x7c000450, 0xfc0007ff, WR_1|RD_2|RD_3, 0, 0, D32, 0 },
-{"bitrev", "d,w", 0x7c000520, 0xffe007ff, WR_1|RD_2, 0, AL, 0, 0 },
+{"bitrev", "d,w", 0x7c000520, 0xffe007ff, WR_1|RD_2, 0, ALX, 0, 0 },
{"bitrev", "d,t", 0x7c0006d2, 0xffe007ff, WR_1|RD_2, 0, 0, D32, 0 },
{"bposge32", "p", 0x041c0000, 0xffff0000, CBD, 0, 0, D32, 0 },
{"bposge32c", "p", 0x04180000, 0xffff0000, NODS, FS, 0, D34, 0 },
@@ -3224,15 +3229,15 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"dbitswap", "d,t", 0x7c000024, 0xffe007ff, WR_1|RD_2, 0, I69, 0, 0 },
{"bovc", "s,-w,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS, FS, I37, 0, 0 },
-{"bovc", "t,-x,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS, FS|INSN2_ALIAS, I37, 0, 0 },
+{"bovc", "t,-x,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS, FS|AL, I37, 0, 0 },
{"beqzalc", "-t,p", 0x20000000, 0xffe00000, RD_1|WR_31|NODS, FS, I37, 0, 0 },
{"beqc", "-s,-u,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS, FS, I37, 0, 0 },
-{"beqc", "t,-y,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS, FS|INSN2_ALIAS, I37, 0, 0 },
+{"beqc", "t,-y,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS, FS|AL, I37, 0, 0 },
{"bnvc", "s,-w,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS, FS, I37, 0, 0 },
-{"bnvc", "t,-x,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS, FS|INSN2_ALIAS, I37, 0, 0 },
+{"bnvc", "t,-x,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS, FS|AL, I37, 0, 0 },
{"bnezalc", "-t,p", 0x60000000, 0xffe00000, RD_1|WR_31|NODS, FS, I37, 0, 0 },
{"bnec", "-s,-u,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS, FS, I37, 0, 0 },
-{"bnec", "t,-y,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS, FS|INSN2_ALIAS, I37, 0, 0 },
+{"bnec", "t,-y,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS, FS|AL, I37, 0, 0 },
{"blezc", "-t,p", 0x58000000, 0xffe00000, RD_1|NODS, FS, I37, 0, 0 },
{"bgezc", "+;,p", 0x58000000, 0xfc000000, RD_1|NODS, FS, I37, 0, 0 },
@@ -3248,7 +3253,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"bltuc", "-s,-v,p", 0x1c000000, 0xfc000000, RD_1|RD_2|NODS, FS, I37, 0, 0 },
{"beqzc", "-s,+\"", 0xd8000000, 0xfc000000, RD_1|NODS, FS, I37, 0, 0 },
-{"jrc", "t", 0xd8000000, 0xffe0ffff, RD_1|NODS, INSN2_ALIAS, I37, 0, 0 },
+{"jrc", "t", 0xd8000000, 0xffe0ffff, RD_1|NODS, AL, I37, 0, 0 },
{"jic", "t,j", 0xd8000000, 0xffe00000, RD_1|NODS, 0, I37, 0, 0 },
{"bnezc", "-s,+\"", 0xf8000000, 0xfc000000, RD_1|NODS, FS, I37, 0, 0 },
@@ -3354,7 +3359,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"ctc0", "t,g", 0x40c00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, I32 },
/* RFE conflicts with the new Virt spec instruction tlbgp. */
-{"rfe", "", 0x42000010, 0xffffffff, 0, 0, I1|T3, 0, I3_32|AL },
+{"rfe", "", 0x42000010, 0xffffffff, 0, 0, I1|T3, 0, I3_32|ALX },
/* Coprocessor 2 move/branch operations overlap with VR5400 .ob format
instructions so they are here for the latters to take precedence. */
@@ -3387,13 +3392,13 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"mfhc2", "t,G", 0x48600000, 0xffe007ff, WR_1|RD_C2|LC, 0, I33, 0, IOCT|IOCTP|IOCT2 },
{"mfhc2", "t,G,H", 0x48600000, 0xffe007f8, WR_1|RD_C2|LC, 0, I33, 0, IOCT|IOCTP|IOCT2 },
{"mfhc2", "t,i", 0x48600000, 0xffe00000, WR_1|RD_C2|LC, 0, I33, 0, IOCT|IOCTP|IOCT2 },
-{"mfic", "t,G", 0x70000024, 0xffe007ff, WR_1|RD_C0|LC, 0, AL, 0, 0 },
+{"mfic", "t,G", 0x70000024, 0xffe007ff, WR_1|RD_C0|LC, 0, ALX, 0, 0 },
{"mtc2", "t,G", 0x48800000, 0xffe007ff, RD_1|WR_C2|WR_CC|CM, 0, I1, 0, N54|IOCT|IOCTP|IOCT2|EE },
{"mtc2", "t,G,H", 0x48800000, 0xffe007f8, RD_1|WR_C2|WR_CC|CM, 0, I32, 0, IOCT|IOCTP|IOCT2 },
{"mthc2", "t,G", 0x48e00000, 0xffe007ff, RD_1|WR_C2|WR_CC|CM, 0, I33, 0, IOCT|IOCTP|IOCT2 },
{"mthc2", "t,G,H", 0x48e00000, 0xffe007f8, RD_1|WR_C2|WR_CC|CM, 0, I33, 0, IOCT|IOCTP|IOCT2 },
{"mthc2", "t,i", 0x48e00000, 0xffe00000, RD_1|WR_C2|WR_CC|CM, 0, I33, 0, IOCT|IOCTP|IOCT2 },
-{"mtic", "t,G", 0x70000026, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, AL, 0, 0 },
+{"mtic", "t,G", 0x70000026, 0xffe007ff, RD_1|WR_C0|WR_CC|CM, 0, ALX, 0, 0 },
{"qmfc2", "t,+6", 0x48200000, 0xffe007ff, WR_1|RD_C2, 0, EE, 0, 0 },
{"qmfc2.i", "t,+6", 0x48200001, 0xffe007ff, WR_1|RD_C2, 0, EE, 0, 0 },
{"qmfc2.ni", "t,+6", 0x48200000, 0xffe007ff, WR_1|RD_C2, 0, EE, 0, 0 },
@@ -3403,16 +3408,16 @@ const struct mips_opcode mips_builtin_opcodes[] =
/* Coprocessor 3 move/branch operations overlap with MIPS IV COP1X
instructions, so they are here for the latters to take precedence. */
-{"bc3f", "p", 0x4d000000, 0xffff0000, RD_CC|CBD, 0, I1, 0, I3_33|EE|AL },
-{"bc3fl", "p", 0x4d020000, 0xffff0000, RD_CC|CBL, 0, I2|T3, 0, I3_33|EE|AL },
-{"bc3t", "p", 0x4d010000, 0xffff0000, RD_CC|CBD, 0, I1, 0, I3_33|EE|AL },
-{"bc3tl", "p", 0x4d030000, 0xffff0000, RD_CC|CBL, 0, I2|T3, 0, I3_33|EE|AL },
-{"cfc3", "t,g", 0x4c400000, 0xffe007ff, WR_1|RD_C3|LC, 0, I1, 0, I3_33|EE|AL },
-{"ctc3", "t,g", 0x4cc00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, I3_33|EE|AL },
-{"mfc3", "t,G", 0x4c000000, 0xffe007ff, WR_1|RD_C3|LC, 0, I1, 0, I3_33|EE|AL },
-{"mfc3", "t,G,H", 0x4c000000, 0xffe007f8, WR_1|RD_C3|LC, 0, I32, 0, I3_33|EE|AL },
-{"mtc3", "t,G", 0x4c800000, 0xffe007ff, RD_1|WR_C3|WR_CC|CM, 0, I1, 0, I3_33|EE|AL },
-{"mtc3", "t,G,H", 0x4c800000, 0xffe007f8, RD_1|WR_C3|WR_CC|CM, 0, I32, 0, I3_33|EE|AL },
+{"bc3f", "p", 0x4d000000, 0xffff0000, RD_CC|CBD, 0, I1, 0, I3_33|EE|ALX },
+{"bc3fl", "p", 0x4d020000, 0xffff0000, RD_CC|CBL, 0, I2|T3, 0, I3_33|EE|ALX },
+{"bc3t", "p", 0x4d010000, 0xffff0000, RD_CC|CBD, 0, I1, 0, I3_33|EE|ALX },
+{"bc3tl", "p", 0x4d030000, 0xffff0000, RD_CC|CBL, 0, I2|T3, 0, I3_33|EE|ALX },
+{"cfc3", "t,g", 0x4c400000, 0xffe007ff, WR_1|RD_C3|LC, 0, I1, 0, I3_33|EE|ALX },
+{"ctc3", "t,g", 0x4cc00000, 0xffe007ff, RD_1|WR_CC|CM, 0, I1, 0, I3_33|EE|ALX },
+{"mfc3", "t,G", 0x4c000000, 0xffe007ff, WR_1|RD_C3|LC, 0, I1, 0, I3_33|EE|ALX },
+{"mfc3", "t,G,H", 0x4c000000, 0xffe007f8, WR_1|RD_C3|LC, 0, I32, 0, I3_33|EE|ALX },
+{"mtc3", "t,G", 0x4c800000, 0xffe007ff, RD_1|WR_C3|WR_CC|CM, 0, I1, 0, I3_33|EE|ALX },
+{"mtc3", "t,G,H", 0x4c800000, 0xffe007f8, RD_1|WR_C3|WR_CC|CM, 0, I32, 0, I3_33|EE|ALX },
/* No hazard protection on coprocessor instructions--they shouldn't
change the state of the processor and if they do it's up to the
diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot
index c0da6f1..61699a7 100644
--- a/opcodes/po/opcodes.pot
+++ b/opcodes/po/opcodes.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-01-15 15:02+0000\n"
+"POT-Creation-Date: 2024-07-20 13:03+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,31 +16,31 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: aarch64-asm.c:874
+#: aarch64-asm.c:895
msgid "specified register cannot be read from"
msgstr ""
-#: aarch64-asm.c:883
+#: aarch64-asm.c:904
msgid "specified register cannot be written to"
msgstr ""
#. Invalid option.
-#: aarch64-dis.c:103 arc-dis.c:807 arm-dis.c:12303 kvx-dis.c:154
+#: aarch64-dis.c:103 arc-dis.c:807 arm-dis.c:11953 kvx-dis.c:154
#, c-format
msgid "unrecognised disassembler option: %s"
msgstr ""
-#: aarch64-dis.c:3955
+#: aarch64-dis.c:4096
#, c-format
msgid "this `%s' should have an immediately preceding `%s'"
msgstr ""
-#: aarch64-dis.c:3962
+#: aarch64-dis.c:4103
#, c-format
msgid "expected `%s' after previous `%s'"
msgstr ""
-#: aarch64-dis.c:4388
+#: aarch64-dis.c:4529
#, c-format
msgid ""
"\n"
@@ -48,349 +48,349 @@ msgid ""
"with the -M switch (multiple options should be separated by commas):\n"
msgstr ""
-#: aarch64-dis.c:4392
+#: aarch64-dis.c:4533
#, c-format
msgid ""
"\n"
" no-aliases Don't print instruction aliases.\n"
msgstr ""
-#: aarch64-dis.c:4395
+#: aarch64-dis.c:4536
#, c-format
msgid ""
"\n"
" aliases Do print instruction aliases.\n"
msgstr ""
-#: aarch64-dis.c:4398
+#: aarch64-dis.c:4539
#, c-format
msgid ""
"\n"
" no-notes Don't print instruction notes.\n"
msgstr ""
-#: aarch64-dis.c:4401
+#: aarch64-dis.c:4542
#, c-format
msgid ""
"\n"
" notes Do print instruction notes.\n"
msgstr ""
-#: aarch64-dis.c:4405
+#: aarch64-dis.c:4546
#, c-format
msgid ""
"\n"
" debug_dump Temp switch for debug trace.\n"
msgstr ""
-#: aarch64-dis.c:4409 arc-dis.c:1607 arc-dis.c:1630 arc-dis.c:1633
+#: aarch64-dis.c:4550 arc-dis.c:1608 arc-dis.c:1631 arc-dis.c:1634
#: kvx-dis.c:1586 loongarch-dis.c:337 mips-dis.c:2903 mips-dis.c:2915
-#: mips-dis.c:2918 nfp-dis.c:2995 riscv-dis.c:1489 riscv-dis.c:1492
+#: mips-dis.c:2918 nfp-dis.c:3002 riscv-dis.c:1568 riscv-dis.c:1571
#, c-format
msgid "\n"
msgstr ""
-#: aarch64-opc.c:1446
+#: aarch64-opc.c:1473
msgid "immediate value"
msgstr ""
-#: aarch64-opc.c:1456
+#: aarch64-opc.c:1483
msgid "immediate offset"
msgstr ""
-#: aarch64-opc.c:1466
+#: aarch64-opc.c:1493
msgid "register number"
msgstr ""
-#: aarch64-opc.c:1476
+#: aarch64-opc.c:1503
msgid "register element index"
msgstr ""
-#: aarch64-opc.c:1486
+#: aarch64-opc.c:1513
msgid "shift amount"
msgstr ""
-#: aarch64-opc.c:1498
+#: aarch64-opc.c:1525
msgid "multiplier"
msgstr ""
-#: aarch64-opc.c:1617
+#: aarch64-opc.c:1645
msgid "expected a selection register in the range w12-w15"
msgstr ""
-#: aarch64-opc.c:1621
+#: aarch64-opc.c:1649
msgid "expected a selection register in the range w8-w11"
msgstr ""
-#: aarch64-opc.c:1640
+#: aarch64-opc.c:1668
msgid "starting offset is not a multiple of 2"
msgstr ""
-#: aarch64-opc.c:1641
+#: aarch64-opc.c:1669
msgid "starting offset is not a multiple of 4"
msgstr ""
-#: aarch64-opc.c:1649
+#: aarch64-opc.c:1677
msgid "expected a single offset rather than a range"
msgstr ""
-#: aarch64-opc.c:1653
+#: aarch64-opc.c:1681
msgid "expected a range of two offsets"
msgstr ""
-#: aarch64-opc.c:1656
+#: aarch64-opc.c:1684
msgid "expected a range of four offsets"
msgstr ""
-#: aarch64-opc.c:1737
+#: aarch64-opc.c:1765
msgid "second reg in pair should be xzr if first is xzr"
msgstr ""
-#: aarch64-opc.c:1751
+#: aarch64-opc.c:1779
msgid "reg pair must start from even reg"
msgstr ""
-#: aarch64-opc.c:1757
+#: aarch64-opc.c:1785
msgid "reg pair must be contiguous"
msgstr ""
-#: aarch64-opc.c:1771
+#: aarch64-opc.c:1799
msgid "extraneous register"
msgstr ""
-#: aarch64-opc.c:1777
+#: aarch64-opc.c:1805
msgid "missing register"
msgstr ""
-#: aarch64-opc.c:1788
+#: aarch64-opc.c:1816
msgid "stack pointer register expected"
msgstr ""
-#: aarch64-opc.c:1906 aarch64-opc.c:1922
+#: aarch64-opc.c:1953 aarch64-opc.c:1970
msgid "start register out of range"
msgstr ""
-#: aarch64-opc.c:2094 aarch64-opc.c:2102 aarch64-opc.c:2125
+#: aarch64-opc.c:2163 aarch64-opc.c:2171 aarch64-opc.c:2194
msgid "unexpected address writeback"
msgstr ""
-#: aarch64-opc.c:2113
+#: aarch64-opc.c:2182
msgid "address writeback expected"
msgstr ""
-#: aarch64-opc.c:2173
+#: aarch64-opc.c:2242
msgid "negative or unaligned offset expected"
msgstr ""
-#: aarch64-opc.c:2230
+#: aarch64-opc.c:2299
msgid "invalid register offset"
msgstr ""
-#: aarch64-opc.c:2252
+#: aarch64-opc.c:2321
msgid "invalid post-increment amount"
msgstr ""
-#: aarch64-opc.c:2268 aarch64-opc.c:2814
+#: aarch64-opc.c:2337 aarch64-opc.c:2889
msgid "invalid shift amount"
msgstr ""
-#: aarch64-opc.c:2281
+#: aarch64-opc.c:2350
msgid "invalid extend/shift operator"
msgstr ""
-#: aarch64-opc.c:2327 aarch64-opc.c:2614 aarch64-opc.c:2649 aarch64-opc.c:2668
-#: aarch64-opc.c:2676 aarch64-opc.c:2767 aarch64-opc.c:2944 aarch64-opc.c:3044
-#: aarch64-opc.c:3057
+#: aarch64-opc.c:2396 aarch64-opc.c:2688 aarch64-opc.c:2723 aarch64-opc.c:2742
+#: aarch64-opc.c:2750 aarch64-opc.c:2842 aarch64-opc.c:3019 aarch64-opc.c:3119
+#: aarch64-opc.c:3132
msgid "immediate out of range"
msgstr ""
-#: aarch64-opc.c:2357 aarch64-opc.c:2399 aarch64-opc.c:2462 aarch64-opc.c:2496
+#: aarch64-opc.c:2426 aarch64-opc.c:2468 aarch64-opc.c:2532 aarch64-opc.c:2566
msgid "invalid addressing mode"
msgstr ""
-#: aarch64-opc.c:2454
+#: aarch64-opc.c:2524
msgid "index register xzr is not allowed"
msgstr ""
-#: aarch64-opc.c:2523
+#: aarch64-opc.c:2593
msgid "invalid increment amount"
msgstr ""
-#: aarch64-opc.c:2602 aarch64-opc.c:2624 aarch64-opc.c:2847 aarch64-opc.c:2855
-#: aarch64-opc.c:2921 aarch64-opc.c:2950
+#: aarch64-opc.c:2676 aarch64-opc.c:2698 aarch64-opc.c:2922 aarch64-opc.c:2930
+#: aarch64-opc.c:2996 aarch64-opc.c:3025
msgid "invalid shift operator"
msgstr ""
-#: aarch64-opc.c:2608
+#: aarch64-opc.c:2682
msgid "shift amount must be 0 or 12"
msgstr ""
-#: aarch64-opc.c:2631
+#: aarch64-opc.c:2705
msgid "shift amount must be a multiple of 16"
msgstr ""
-#: aarch64-opc.c:2643
+#: aarch64-opc.c:2717
msgid "negative immediate value not allowed"
msgstr ""
-#: aarch64-opc.c:2778
+#: aarch64-opc.c:2853
msgid "immediate zero expected"
msgstr ""
-#: aarch64-opc.c:2792
+#: aarch64-opc.c:2867
msgid "rotate expected to be 0, 90, 180 or 270"
msgstr ""
-#: aarch64-opc.c:2803
+#: aarch64-opc.c:2878
msgid "rotate expected to be 90 or 270"
msgstr ""
-#: aarch64-opc.c:2863
+#: aarch64-opc.c:2938
msgid "shift is not permitted"
msgstr ""
-#: aarch64-opc.c:2888
+#: aarch64-opc.c:2963
msgid "invalid value for immediate"
msgstr ""
-#: aarch64-opc.c:2913
+#: aarch64-opc.c:2988
msgid "shift amount must be 0 or 16"
msgstr ""
-#: aarch64-opc.c:2934
+#: aarch64-opc.c:3009
msgid "floating-point immediate expected"
msgstr ""
-#: aarch64-opc.c:2968
+#: aarch64-opc.c:3043
msgid "no shift amount allowed for 8-bit constants"
msgstr ""
-#: aarch64-opc.c:2978
+#: aarch64-opc.c:3053
msgid "shift amount must be 0 or 8"
msgstr ""
-#: aarch64-opc.c:2991
+#: aarch64-opc.c:3066
msgid "immediate too big for element size"
msgstr ""
-#: aarch64-opc.c:2998
+#: aarch64-opc.c:3073
msgid "invalid arithmetic immediate"
msgstr ""
-#: aarch64-opc.c:3012
+#: aarch64-opc.c:3087
msgid "floating-point value must be 0.5 or 1.0"
msgstr ""
-#: aarch64-opc.c:3022
+#: aarch64-opc.c:3097
msgid "floating-point value must be 0.5 or 2.0"
msgstr ""
-#: aarch64-opc.c:3032
+#: aarch64-opc.c:3107
msgid "floating-point value must be 0.0 or 1.0"
msgstr ""
-#: aarch64-opc.c:3063
+#: aarch64-opc.c:3138
msgid "invalid replicated MOV immediate"
msgstr ""
-#: aarch64-opc.c:3121
+#: aarch64-opc.c:3196
msgid "byte index must be a multiple of 8"
msgstr ""
-#: aarch64-opc.c:3151
+#: aarch64-opc.c:3234
msgid ""
"the register-index form of PRFM does not accept opcodes in the range 24-31"
msgstr ""
-#: aarch64-opc.c:3204
+#: aarch64-opc.c:3303
msgid "extend operator expected"
msgstr ""
-#: aarch64-opc.c:3217
+#: aarch64-opc.c:3316
msgid "missing extend operator"
msgstr ""
-#: aarch64-opc.c:3223
+#: aarch64-opc.c:3322
msgid "'LSL' operator not allowed"
msgstr ""
-#: aarch64-opc.c:3244
+#: aarch64-opc.c:3343
msgid "W register expected"
msgstr ""
-#: aarch64-opc.c:3255
+#: aarch64-opc.c:3354
msgid "shift operator expected"
msgstr ""
-#: aarch64-opc.c:3262
+#: aarch64-opc.c:3361
msgid "'ROR' operator not allowed"
msgstr ""
-#: aarch64-opc.c:4716
+#: aarch64-opc.c:4909
msgid "reading from a write-only register"
msgstr ""
-#: aarch64-opc.c:4718
+#: aarch64-opc.c:4911
msgid "writing to a read-only register"
msgstr ""
-#: aarch64-opc.c:5242
+#: aarch64-opc.c:5440
msgid "the three register operands must be distinct from one another"
msgstr ""
-#: aarch64-opc.c:5353
+#: aarch64-opc.c:5551
msgid "destination register differs from preceding instruction"
msgstr ""
-#: aarch64-opc.c:5356
+#: aarch64-opc.c:5554
msgid "source register differs from preceding instruction"
msgstr ""
-#: aarch64-opc.c:5359
+#: aarch64-opc.c:5557
msgid "size register differs from preceding instruction"
msgstr ""
-#: aarch64-opc.c:5407
+#: aarch64-opc.c:5605
msgid "instruction opens new dependency sequence without ending previous one"
msgstr ""
-#: aarch64-opc.c:5436
+#: aarch64-opc.c:5634
msgid "previous `movprfx' sequence not closed"
msgstr ""
-#: aarch64-opc.c:5455
+#: aarch64-opc.c:5654
msgid "SVE instruction expected after `movprfx'"
msgstr ""
-#: aarch64-opc.c:5468
+#: aarch64-opc.c:5667
msgid "SVE `movprfx' compatible instruction expected"
msgstr ""
-#: aarch64-opc.c:5556
+#: aarch64-opc.c:5755
msgid "predicated instruction expected after `movprfx'"
msgstr ""
-#: aarch64-opc.c:5568
+#: aarch64-opc.c:5767
msgid "merging predicate expected due to preceding `movprfx'"
msgstr ""
-#: aarch64-opc.c:5580
+#: aarch64-opc.c:5779
msgid "predicate register differs from that in preceding `movprfx'"
msgstr ""
-#: aarch64-opc.c:5599
+#: aarch64-opc.c:5798
msgid "output register of preceding `movprfx' not used in current instruction"
msgstr ""
-#: aarch64-opc.c:5612
+#: aarch64-opc.c:5811
msgid "output register of preceding `movprfx' expected as output"
msgstr ""
-#: aarch64-opc.c:5624
+#: aarch64-opc.c:5823
msgid "output register of preceding `movprfx' used as input"
msgstr ""
-#: aarch64-opc.c:5640
+#: aarch64-opc.c:5839
msgid "register size not compatible with previous `movprfx'"
msgstr ""
@@ -419,53 +419,53 @@ msgstr ""
msgid "unrecognised disassembler CPU option: %s"
msgstr ""
-#: arc-dis.c:1323
+#: arc-dis.c:1324
msgid ""
"\n"
"Warning: illegal use of double register pair.\n"
msgstr ""
-#: arc-dis.c:1489
+#: arc-dis.c:1490
msgid "Enforce the designated architecture while decoding."
msgstr ""
-#: arc-dis.c:1491
+#: arc-dis.c:1492
msgid "Recognize DSP instructions."
msgstr ""
-#: arc-dis.c:1493
+#: arc-dis.c:1494
msgid "Recognize FPX SP instructions."
msgstr ""
-#: arc-dis.c:1495
+#: arc-dis.c:1496
msgid "Recognize FPX DP instructions."
msgstr ""
-#: arc-dis.c:1497
+#: arc-dis.c:1498
msgid "Recognize FPU QuarkSE-EM instructions."
msgstr ""
-#: arc-dis.c:1499
+#: arc-dis.c:1500
msgid "Recognize double assist FPU instructions."
msgstr ""
-#: arc-dis.c:1501
+#: arc-dis.c:1502
msgid "Recognize single precision FPU instructions."
msgstr ""
-#: arc-dis.c:1503
+#: arc-dis.c:1504
msgid "Recognize double precision FPU instructions."
msgstr ""
-#: arc-dis.c:1505
+#: arc-dis.c:1506
msgid "Recognize NPS400 instructions."
msgstr ""
-#: arc-dis.c:1507
+#: arc-dis.c:1508
msgid "Use only hexadecimal number to print immediates."
msgstr ""
-#: arc-dis.c:1582
+#: arc-dis.c:1583
#, c-format
msgid ""
"\n"
@@ -473,7 +473,7 @@ msgid ""
"with the -M switch (multiple options should be separated by commas):\n"
msgstr ""
-#: arc-dis.c:1616 mips-dis.c:2910 riscv-dis.c:1484
+#: arc-dis.c:1617 mips-dis.c:2910 riscv-dis.c:1563
#, c-format
msgid ""
"\n"
@@ -481,7 +481,7 @@ msgid ""
" "
msgstr ""
-#: arc-dis.c:1626
+#: arc-dis.c:1627
#, c-format
msgid ""
"\n"
@@ -649,67 +649,63 @@ msgstr ""
msgid "invalid position, should be one of: 0,4,8,...124."
msgstr ""
-#: arm-dis.c:5204
+#: arm-dis.c:4932
msgid "Select raw register names"
msgstr ""
-#: arm-dis.c:5206
+#: arm-dis.c:4934
msgid "Select register names used by GCC"
msgstr ""
-#: arm-dis.c:5208
+#: arm-dis.c:4936
msgid "Select register names used in ARM's ISA documentation"
msgstr ""
-#: arm-dis.c:5210
+#: arm-dis.c:4938
msgid "Assume all insns are Thumb insns"
msgstr ""
-#: arm-dis.c:5211
+#: arm-dis.c:4939
msgid "Examine preceding label to determine an insn's type"
msgstr ""
-#: arm-dis.c:5212
+#: arm-dis.c:4940
msgid "Select register names used in the APCS"
msgstr ""
-#: arm-dis.c:5214
+#: arm-dis.c:4942
msgid "Select register names used in the ATPCS"
msgstr ""
-#: arm-dis.c:5216
+#: arm-dis.c:4944
msgid "Select special register names used in the ATPCS"
msgstr ""
-#: arm-dis.c:5218
+#: arm-dis.c:4946
msgid "Enable CDE extensions for coprocessor N space"
msgstr ""
-#: arm-dis.c:8530
-msgid "<illegal precision>"
-msgstr ""
-
-#: arm-dis.c:12264
+#: arm-dis.c:11914
#, c-format
msgid "unrecognised register name set: %s"
msgstr ""
-#: arm-dis.c:12278
+#: arm-dis.c:11928
#, c-format
msgid "cde coprocessor not between 0-7: %s"
msgstr ""
-#: arm-dis.c:12284
+#: arm-dis.c:11934
#, c-format
msgid "coproc must have an argument: %s"
msgstr ""
-#: arm-dis.c:12297
+#: arm-dis.c:11947
#, c-format
msgid "coprocN argument takes options \"generic\", \"cde\", or \"CDE\": %s"
msgstr ""
-#: arm-dis.c:13016
+#: arm-dis.c:12663
#, c-format
msgid ""
"\n"
@@ -749,7 +745,7 @@ msgid ""
msgstr ""
#. The option without '=' should be defined above.
-#: bpf-dis.c:90 riscv-dis.c:120 riscv-dis.c:157
+#: bpf-dis.c:90 riscv-dis.c:125 riscv-dis.c:162
#, c-format
msgid "unrecognized disassembler option: %s"
msgstr ""
@@ -861,14 +857,14 @@ msgstr ""
#: epiphany-asm.c:456 fr30-asm.c:311 frv-asm.c:1264 ip2k-asm.c:512
#: iq2000-asm.c:460 lm32-asm.c:350 m32c-asm.c:1585 m32r-asm.c:329
-#: mep-asm.c:1286 mt-asm.c:596 or1k-asm.c:576 xstormy16-asm.c:277
+#: mep-asm.c:1288 mt-asm.c:596 or1k-asm.c:576 xstormy16-asm.c:277
#, c-format
msgid "internal error: unrecognized field %d while parsing"
msgstr ""
#: epiphany-asm.c:508 fr30-asm.c:363 frv-asm.c:1316 ip2k-asm.c:564
#: iq2000-asm.c:512 lm32-asm.c:402 m32c-asm.c:1637 m32r-asm.c:381
-#: mep-asm.c:1338 mt-asm.c:648 or1k-asm.c:628 xstormy16-asm.c:329
+#: mep-asm.c:1340 mt-asm.c:648 or1k-asm.c:628 xstormy16-asm.c:329
msgid "missing mnemonic in syntax string"
msgstr ""
@@ -880,8 +876,8 @@ msgstr ""
#: iq2000-asm.c:740 iq2000-asm.c:847 lm32-asm.c:537 lm32-asm.c:541
#: lm32-asm.c:630 lm32-asm.c:737 m32c-asm.c:1772 m32c-asm.c:1776
#: m32c-asm.c:1865 m32c-asm.c:1972 m32r-asm.c:516 m32r-asm.c:520
-#: m32r-asm.c:609 m32r-asm.c:716 mep-asm.c:1473 mep-asm.c:1477 mep-asm.c:1566
-#: mep-asm.c:1673 mt-asm.c:783 mt-asm.c:787 mt-asm.c:876 mt-asm.c:983
+#: m32r-asm.c:609 m32r-asm.c:716 mep-asm.c:1475 mep-asm.c:1479 mep-asm.c:1568
+#: mep-asm.c:1675 mt-asm.c:783 mt-asm.c:787 mt-asm.c:876 mt-asm.c:983
#: or1k-asm.c:763 or1k-asm.c:767 or1k-asm.c:856 or1k-asm.c:963
#: xstormy16-asm.c:464 xstormy16-asm.c:468 xstormy16-asm.c:557
#: xstormy16-asm.c:664
@@ -890,40 +886,40 @@ msgstr ""
#: epiphany-asm.c:690 fr30-asm.c:545 frv-asm.c:1498 ip2k-asm.c:746
#: iq2000-asm.c:694 lm32-asm.c:584 m32c-asm.c:1819 m32r-asm.c:563
-#: mep-asm.c:1520 mt-asm.c:830 or1k-asm.c:810 xstormy16-asm.c:511
+#: mep-asm.c:1522 mt-asm.c:830 or1k-asm.c:810 xstormy16-asm.c:511
#, c-format
msgid "syntax error (expected char `%c', found `%c')"
msgstr ""
#: epiphany-asm.c:700 fr30-asm.c:555 frv-asm.c:1508 ip2k-asm.c:756
#: iq2000-asm.c:704 lm32-asm.c:594 m32c-asm.c:1829 m32r-asm.c:573
-#: mep-asm.c:1530 mt-asm.c:840 or1k-asm.c:820 xstormy16-asm.c:521
+#: mep-asm.c:1532 mt-asm.c:840 or1k-asm.c:820 xstormy16-asm.c:521
#, c-format
msgid "syntax error (expected char `%c', found end of instruction)"
msgstr ""
#: epiphany-asm.c:730 fr30-asm.c:585 frv-asm.c:1538 ip2k-asm.c:786
#: iq2000-asm.c:734 lm32-asm.c:624 m32c-asm.c:1859 m32r-asm.c:603
-#: mep-asm.c:1560 mt-asm.c:870 or1k-asm.c:850 xstormy16-asm.c:551
+#: mep-asm.c:1562 mt-asm.c:870 or1k-asm.c:850 xstormy16-asm.c:551
msgid "junk at end of line"
msgstr ""
#: epiphany-asm.c:842 fr30-asm.c:697 frv-asm.c:1650 ip2k-asm.c:898
#: iq2000-asm.c:846 lm32-asm.c:736 m32c-asm.c:1971 m32r-asm.c:715
-#: mep-asm.c:1672 mt-asm.c:982 or1k-asm.c:962 xstormy16-asm.c:663
+#: mep-asm.c:1674 mt-asm.c:982 or1k-asm.c:962 xstormy16-asm.c:663
msgid "unrecognized form of instruction"
msgstr ""
#: epiphany-asm.c:856 fr30-asm.c:711 frv-asm.c:1664 ip2k-asm.c:912
#: iq2000-asm.c:860 lm32-asm.c:750 m32c-asm.c:1985 m32r-asm.c:729
-#: mep-asm.c:1686 mt-asm.c:996 or1k-asm.c:976 xstormy16-asm.c:677
+#: mep-asm.c:1688 mt-asm.c:996 or1k-asm.c:976 xstormy16-asm.c:677
#, c-format
msgid "bad instruction `%.50s...'"
msgstr ""
#: epiphany-asm.c:859 fr30-asm.c:714 frv-asm.c:1667 ip2k-asm.c:915
#: iq2000-asm.c:863 lm32-asm.c:753 m32c-asm.c:1988 m32r-asm.c:732
-#: mep-asm.c:1689 mt-asm.c:999 or1k-asm.c:979 xstormy16-asm.c:680
+#: mep-asm.c:1691 mt-asm.c:999 or1k-asm.c:979 xstormy16-asm.c:680
#, c-format
msgid "bad instruction `%.50s'"
msgstr ""
@@ -947,7 +943,7 @@ msgstr ""
#. Default text to print if an instruction isn't recognized.
#: epiphany-dis.c:41 fr30-dis.c:41 frv-dis.c:41 ip2k-dis.c:41 iq2000-dis.c:41
-#: lm32-dis.c:41 m32c-dis.c:41 m32r-dis.c:41 mep-dis.c:41 mmix-dis.c:293
+#: lm32-dis.c:41 m32c-dis.c:41 m32r-dis.c:41 mep-dis.c:41 mmix-dis.c:294
#: mt-dis.c:41 nds32-dis.c:64 or1k-dis.c:41 xstormy16-dis.c:41
msgid "*unknown*"
msgstr ""
@@ -1106,11 +1102,11 @@ msgstr ""
msgid "Don't understand 0x%x \n"
msgstr ""
-#: i386-dis.c:8432
+#: i386-dis.c:8336
msgid "<internal disassembler error>"
msgstr ""
-#: i386-dis.c:8680
+#: i386-dis.c:8584
#, c-format
msgid ""
"\n"
@@ -1119,86 +1115,86 @@ msgid ""
"with the -M switch (multiple options should be separated by commas):\n"
msgstr ""
-#: i386-dis.c:8684
+#: i386-dis.c:8588
#, c-format
msgid " x86-64 Disassemble in 64bit mode\n"
msgstr ""
-#: i386-dis.c:8685
+#: i386-dis.c:8589
#, c-format
msgid " i386 Disassemble in 32bit mode\n"
msgstr ""
-#: i386-dis.c:8686
+#: i386-dis.c:8590
#, c-format
msgid " i8086 Disassemble in 16bit mode\n"
msgstr ""
-#: i386-dis.c:8687
+#: i386-dis.c:8591
#, c-format
msgid " att Display instruction in AT&T syntax\n"
msgstr ""
-#: i386-dis.c:8688
+#: i386-dis.c:8592
#, c-format
msgid " intel Display instruction in Intel syntax\n"
msgstr ""
-#: i386-dis.c:8689
+#: i386-dis.c:8593
#, c-format
msgid ""
" att-mnemonic (AT&T syntax only)\n"
" Display instruction with AT&T mnemonic\n"
msgstr ""
-#: i386-dis.c:8691
+#: i386-dis.c:8595
#, c-format
msgid ""
" intel-mnemonic (AT&T syntax only)\n"
" Display instruction with Intel mnemonic\n"
msgstr ""
-#: i386-dis.c:8693
+#: i386-dis.c:8597
#, c-format
msgid " addr64 Assume 64bit address size\n"
msgstr ""
-#: i386-dis.c:8694
+#: i386-dis.c:8598
#, c-format
msgid " addr32 Assume 32bit address size\n"
msgstr ""
-#: i386-dis.c:8695
+#: i386-dis.c:8599
#, c-format
msgid " addr16 Assume 16bit address size\n"
msgstr ""
-#: i386-dis.c:8696
+#: i386-dis.c:8600
#, c-format
msgid " data32 Assume 32bit data size\n"
msgstr ""
-#: i386-dis.c:8697
+#: i386-dis.c:8601
#, c-format
msgid " data16 Assume 16bit data size\n"
msgstr ""
-#: i386-dis.c:8698
+#: i386-dis.c:8602
#, c-format
msgid " suffix Always display instruction suffix in AT&T syntax\n"
msgstr ""
-#: i386-dis.c:8699
+#: i386-dis.c:8603
#, c-format
msgid " amd64 Display instruction in AMD64 ISA\n"
msgstr ""
-#: i386-dis.c:8700
+#: i386-dis.c:8604
#, c-format
msgid " intel64 Display instruction in Intel64 ISA\n"
msgstr ""
-#: i386-dis.c:9447
+#: i386-dis.c:9374
msgid "64-bit address is disabled"
msgstr ""
@@ -1522,28 +1518,28 @@ msgstr ""
msgid "Only $sp or $15 allowed for this opcode"
msgstr ""
-#: mep-asm.c:308 mep-asm.c:504
-#, c-format
+#: mep-asm.c:309 mep-asm.c:506
+#, no-c-format
msgid "invalid %function() here"
msgstr ""
-#: mep-asm.c:336
+#: mep-asm.c:337
msgid "Immediate is out of range -32768 to 32767"
msgstr ""
-#: mep-asm.c:356
+#: mep-asm.c:357
msgid "Immediate is out of range 0 to 65535"
msgstr ""
-#: mep-asm.c:549 mep-asm.c:562
+#: mep-asm.c:551 mep-asm.c:564
msgid "Immediate is out of range -512 to 511"
msgstr ""
-#: mep-asm.c:554 mep-asm.c:563
+#: mep-asm.c:556 mep-asm.c:565
msgid "Immediate is out of range -128 to 127"
msgstr ""
-#: mep-asm.c:558
+#: mep-asm.c:560
msgid "Value is not aligned enough"
msgstr ""
@@ -1671,11 +1667,11 @@ msgstr ""
msgid "(unknown)"
msgstr ""
-#: mmix-dis.c:247 mmix-dis.c:255
+#: mmix-dis.c:248 mmix-dis.c:256
msgid "*illegal*"
msgstr ""
-#: mmix-dis.c:529
+#: mmix-dis.c:530
#, c-format
msgid "*unknown operands type: %d*"
msgstr ""
@@ -1791,21 +1787,26 @@ msgstr ""
msgid "File has no ME-Config section."
msgstr ""
-#: nfp-dis.c:2572
+#. See PR 31843 for an example of this.
+#: nfp-dis.c:2565
+msgid "The ME-Config section is corrupt."
+msgstr ""
+
+#: nfp-dis.c:2579
msgid "File has invalid ME-Config section."
msgstr ""
-#: nfp-dis.c:2719
+#: nfp-dis.c:2726
#, c-format
msgid "Error processing section %u "
msgstr ""
-#: nfp-dis.c:2748
+#: nfp-dis.c:2755
#, c-format
msgid "Invalid NFP option: %s"
msgstr ""
-#: nfp-dis.c:2986
+#: nfp-dis.c:2993
#, c-format
msgid ""
"\n"
@@ -1813,7 +1814,7 @@ msgid ""
"with the -M switch (multiple options should be separated by commas):\n"
msgstr ""
-#: nfp-dis.c:2990
+#: nfp-dis.c:2997
#, c-format
msgid ""
"\n"
@@ -1867,12 +1868,12 @@ msgstr ""
msgid "internal error: or1k_cgen_cpu_open: no endianness specified"
msgstr ""
-#: ppc-dis.c:418
+#: ppc-dis.c:428
#, c-format
msgid "warning: ignoring unknown -M%s option"
msgstr ""
-#: ppc-dis.c:1256
+#: ppc-dis.c:1266
#, c-format
msgid ""
"\n"
@@ -2010,40 +2011,40 @@ msgstr ""
#. Invalid options with '=', no option name before '=',
#. and no value after '='.
-#: riscv-dis.c:128
+#: riscv-dis.c:133
#, c-format
msgid "unrecognized disassembler option with '=': %s"
msgstr ""
-#: riscv-dis.c:142
+#: riscv-dis.c:147
#, c-format
msgid "unknown privileged spec set by %s=%s"
msgstr ""
-#: riscv-dis.c:149
+#: riscv-dis.c:154
#, c-format
msgid ""
"mis-matched privilege spec set by %s=%s, the elf privilege attribute is %s"
msgstr ""
-#: riscv-dis.c:763
+#: riscv-dis.c:846
#, c-format
msgid "# internal error, undefined modifier (%c)"
msgstr ""
-#: riscv-dis.c:1365
+#: riscv-dis.c:1444
msgid "Print numeric register names, rather than ABI names."
msgstr ""
-#: riscv-dis.c:1368
+#: riscv-dis.c:1447
msgid "Disassemble only into canonical instructions."
msgstr ""
-#: riscv-dis.c:1371
+#: riscv-dis.c:1450
msgid "Print the CSR according to the chosen privilege spec."
msgstr ""
-#: riscv-dis.c:1447
+#: riscv-dis.c:1526
#, c-format
msgid ""
"\n"
@@ -2087,24 +2088,25 @@ msgstr ""
msgid "Disassemble in ESA architecture mode"
msgstr ""
-#: s390-dis.c:45
+#. TRANSLATORS: Please do not translate 'z/Architecture' as this is a technical name.
+#: s390-dis.c:46
msgid "Disassemble in z/Architecture mode"
msgstr ""
-#: s390-dis.c:46
+#: s390-dis.c:47
msgid "Print unknown instructions according to length from first two bits"
msgstr ""
-#: s390-dis.c:48
+#: s390-dis.c:49
msgid "Print instruction description as comment"
msgstr ""
-#: s390-dis.c:82
+#: s390-dis.c:83
#, c-format
msgid "unknown S/390 disassembler option: %s"
msgstr ""
-#: s390-dis.c:516
+#: s390-dis.c:527
#, c-format
msgid ""
"\n"
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index fb098fa..14ec290 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -3132,108 +3132,108 @@ const struct riscv_opcode riscv_opcodes[] =
const struct riscv_opcode riscv_insn_types[] =
{
/* name, xlen, isa, operands, match, mask, match_func, pinfo. */
-{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,s,t", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,t", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,t", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,t", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,s,T", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,T", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,T", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,T", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, match_opcode, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, match_opcode, 0 },
-
-{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, match_opcode, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, match_opcode, 0 },
-
-{"i", 0, INSN_CLASS_I, "O4,F3,d,s,j", 0, 0, match_opcode, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,D,s,j", 0, 0, match_opcode, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,d,S,j", 0, 0, match_opcode, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,D,S,j", 0, 0, match_opcode, 0 },
-{"i", 0, INSN_CLASS_I, "O4,F3,d,o(s)", 0, 0, match_opcode, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,D,o(s)", 0, 0, match_opcode, 0 },
-
-{"s", 0, INSN_CLASS_I, "O4,F3,t,q(s)", 0, 0, match_opcode, 0 },
-{"s", 0, INSN_CLASS_F, "O4,F3,T,q(s)", 0, 0, match_opcode, 0 },
-
-{"sb", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, match_opcode, 0 },
-{"sb", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, match_opcode, 0 },
-{"sb", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, match_opcode, 0 },
-{"sb", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, match_opcode, 0 },
-{"b", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, match_opcode, 0 },
-{"b", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, match_opcode, 0 },
-{"b", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, match_opcode, 0 },
-{"b", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, match_opcode, 0 },
-
-{"u", 0, INSN_CLASS_I, "O4,d,u", 0, 0, match_opcode, 0 },
-{"u", 0, INSN_CLASS_F, "O4,D,u", 0, 0, match_opcode, 0 },
-
-{"uj", 0, INSN_CLASS_I, "O4,d,a", 0, 0, match_opcode, 0 },
-{"uj", 0, INSN_CLASS_F, "O4,D,a", 0, 0, match_opcode, 0 },
-{"j", 0, INSN_CLASS_I, "O4,d,a", 0, 0, match_opcode, 0 },
-{"j", 0, INSN_CLASS_F, "O4,D,a", 0, 0, match_opcode, 0 },
-
-{"cr", 0, INSN_CLASS_C, "O2,CF4,d,CV", 0, 0, match_opcode, 0 },
-{"cr", 0, INSN_CLASS_F_AND_C, "O2,CF4,D,CV", 0, 0, match_opcode, 0 },
-{"cr", 0, INSN_CLASS_F_AND_C, "O2,CF4,d,CT", 0, 0, match_opcode, 0 },
-{"cr", 0, INSN_CLASS_F_AND_C, "O2,CF4,D,CT", 0, 0, match_opcode, 0 },
-
-{"ci", 0, INSN_CLASS_C, "O2,CF3,d,Co", 0, 0, match_opcode, 0 },
-{"ci", 0, INSN_CLASS_F_AND_C, "O2,CF3,D,Co", 0, 0, match_opcode, 0 },
-
-{"ciw", 0, INSN_CLASS_C, "O2,CF3,Ct,C8", 0, 0, match_opcode, 0 },
-{"ciw", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C8", 0, 0, match_opcode, 0 },
-
-{"css", 0, INSN_CLASS_C, "O2,CF3,CV,C6", 0, 0, match_opcode, 0 },
-{"css", 0, INSN_CLASS_F_AND_C, "O2,CF3,CT,C6", 0, 0, match_opcode, 0 },
-
-{"cl", 0, INSN_CLASS_C, "O2,CF3,Ct,C5(Cs)", 0, 0, match_opcode, 0 },
-{"cl", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(Cs)", 0, 0, match_opcode, 0 },
-{"cl", 0, INSN_CLASS_F_AND_C, "O2,CF3,Ct,C5(CS)", 0, 0, match_opcode, 0 },
-{"cl", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(CS)", 0, 0, match_opcode, 0 },
-
-{"cs", 0, INSN_CLASS_C, "O2,CF3,Ct,C5(Cs)", 0, 0, match_opcode, 0 },
-{"cs", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(Cs)", 0, 0, match_opcode, 0 },
-{"cs", 0, INSN_CLASS_F_AND_C, "O2,CF3,Ct,C5(CS)", 0, 0, match_opcode, 0 },
-{"cs", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(CS)", 0, 0, match_opcode, 0 },
-
-{"ca", 0, INSN_CLASS_C, "O2,CF6,CF2,Cs,Ct", 0, 0, match_opcode, 0 },
-{"ca", 0, INSN_CLASS_F_AND_C, "O2,CF6,CF2,CS,Ct", 0, 0, match_opcode, 0 },
-{"ca", 0, INSN_CLASS_F_AND_C, "O2,CF6,CF2,Cs,CD", 0, 0, match_opcode, 0 },
-{"ca", 0, INSN_CLASS_F_AND_C, "O2,CF6,CF2,CS,CD", 0, 0, match_opcode, 0 },
-
-{"cb", 0, INSN_CLASS_C, "O2,CF3,Cs,Cp", 0, 0, match_opcode, 0 },
-{"cb", 0, INSN_CLASS_F_AND_C, "O2,CF3,CS,Cp", 0, 0, match_opcode, 0 },
-
-{"cj", 0, INSN_CLASS_C, "O2,CF3,Ca", 0, 0, match_opcode, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,s,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,s,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
+
+{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
+
+{"i", 0, INSN_CLASS_I, "O4,F3,d,s,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O4,F3,D,s,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O4,F3,d,S,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O4,F3,D,S,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_I, "O4,F3,d,o(s)", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O4,F3,D,o(s)", 0, 0, NULL, 0 },
+
+{"s", 0, INSN_CLASS_I, "O4,F3,t,q(s)", 0, 0, NULL, 0 },
+{"s", 0, INSN_CLASS_F, "O4,F3,T,q(s)", 0, 0, NULL, 0 },
+
+{"sb", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, NULL, 0 },
+{"sb", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, NULL, 0 },
+{"sb", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, NULL, 0 },
+{"sb", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, NULL, 0 },
+
+{"u", 0, INSN_CLASS_I, "O4,d,u", 0, 0, NULL, 0 },
+{"u", 0, INSN_CLASS_F, "O4,D,u", 0, 0, NULL, 0 },
+
+{"uj", 0, INSN_CLASS_I, "O4,d,a", 0, 0, NULL, 0 },
+{"uj", 0, INSN_CLASS_F, "O4,D,a", 0, 0, NULL, 0 },
+{"j", 0, INSN_CLASS_I, "O4,d,a", 0, 0, NULL, 0 },
+{"j", 0, INSN_CLASS_F, "O4,D,a", 0, 0, NULL, 0 },
+
+{"cr", 0, INSN_CLASS_C, "O2,CF4,d,CV", 0, 0, NULL, 0 },
+{"cr", 0, INSN_CLASS_F_AND_C, "O2,CF4,D,CV", 0, 0, NULL, 0 },
+{"cr", 0, INSN_CLASS_F_AND_C, "O2,CF4,d,CT", 0, 0, NULL, 0 },
+{"cr", 0, INSN_CLASS_F_AND_C, "O2,CF4,D,CT", 0, 0, NULL, 0 },
+
+{"ci", 0, INSN_CLASS_C, "O2,CF3,d,Co", 0, 0, NULL, 0 },
+{"ci", 0, INSN_CLASS_F_AND_C, "O2,CF3,D,Co", 0, 0, NULL, 0 },
+
+{"ciw", 0, INSN_CLASS_C, "O2,CF3,Ct,C8", 0, 0, NULL, 0 },
+{"ciw", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C8", 0, 0, NULL, 0 },
+
+{"css", 0, INSN_CLASS_C, "O2,CF3,CV,C6", 0, 0, NULL, 0 },
+{"css", 0, INSN_CLASS_F_AND_C, "O2,CF3,CT,C6", 0, 0, NULL, 0 },
+
+{"cl", 0, INSN_CLASS_C, "O2,CF3,Ct,C5(Cs)", 0, 0, NULL, 0 },
+{"cl", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(Cs)", 0, 0, NULL, 0 },
+{"cl", 0, INSN_CLASS_F_AND_C, "O2,CF3,Ct,C5(CS)", 0, 0, NULL, 0 },
+{"cl", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(CS)", 0, 0, NULL, 0 },
+
+{"cs", 0, INSN_CLASS_C, "O2,CF3,Ct,C5(Cs)", 0, 0, NULL, 0 },
+{"cs", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(Cs)", 0, 0, NULL, 0 },
+{"cs", 0, INSN_CLASS_F_AND_C, "O2,CF3,Ct,C5(CS)", 0, 0, NULL, 0 },
+{"cs", 0, INSN_CLASS_F_AND_C, "O2,CF3,CD,C5(CS)", 0, 0, NULL, 0 },
+
+{"ca", 0, INSN_CLASS_C, "O2,CF6,CF2,Cs,Ct", 0, 0, NULL, 0 },
+{"ca", 0, INSN_CLASS_F_AND_C, "O2,CF6,CF2,CS,Ct", 0, 0, NULL, 0 },
+{"ca", 0, INSN_CLASS_F_AND_C, "O2,CF6,CF2,Cs,CD", 0, 0, NULL, 0 },
+{"ca", 0, INSN_CLASS_F_AND_C, "O2,CF6,CF2,CS,CD", 0, 0, NULL, 0 },
+
+{"cb", 0, INSN_CLASS_C, "O2,CF3,Cs,Cp", 0, 0, NULL, 0 },
+{"cb", 0, INSN_CLASS_F_AND_C, "O2,CF3,CS,Cp", 0, 0, NULL, 0 },
+
+{"cj", 0, INSN_CLASS_C, "O2,CF3,Ca", 0, 0, NULL, 0 },
/* Terminate the list. */
{0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0}