Commit graph

1427 commits

Author SHA1 Message Date
Alice Carlotti
d708c86adc aarch64: Add support for FEAT_SME_FA64
Add "+sme-f64" to the list of architecture extensions.  This has already
been supported in LLVM for several years.

We don't need to update the feature requirements for any opcodes,
because FEAT_SME_FA64 only enables instructions that were already
available in non-streaming mode, and the feature checks don't know what
mode an instruction will be run under.
2026-07-10 16:09:06 +01:00
Alice Carlotti
49ff47a019 aarch64: Remove disassembly restriction on OP_MOV_Z_Zi
Disassembly for the OP_MOV_Z_Zi opcode artificially rejected a zero
index value, to indicate that the preferred disassembly uses a different
alias.  This is more naturally indicated by specifying the other alias
as a higher priority.

Update the alias priority, and remove the zero check and the now-unused
OP_MOV_Z_Zi enum value.
2026-07-10 16:09:06 +01:00
Georg-Johann Lay
23ec6e8a1a AVR: Fix typo / white space in include/opcode/avr.h
include/
	* opcode/avr.h: Fix typo in comment + trailing space.
2026-07-09 13:10:12 +02:00
Nelson Chu
4e1a8d4393 RISC-V: Minor cleanup for include/opcode/riscv-opc.h and vendor gas testcases
For include/opcode/riscv-opc.h, reorder zicfiss and zicfilp stuff, and unify
vendor extension comments.  For gas tescases, unify vendor testcase names.
2026-07-09 08:53:45 +08:00
Georg-Johann Lay
0339c410a1 AVR: Adhere to GNU coding style
This patch fixes some style nits:

- Fix indentations
- Using TABs for indentation
- Breaking long lines
- Remove ; after the closing } of a code block

bfd/
	* cpu-avr.c: Adhere to GNU coding style.
	* elf32-avr.c: Same.
	* elf32-avr.h: Same.

gas/
	* config/tc-avr.c: Adhere to GNU coding style.

opcodes/
	* avr-dis.c: Adhere to GNU coding style.

include/
	* opcode/avr.h: Adhere to GNU coding style.
2026-07-04 11:36:40 +02:00
Richard Earnshaw
2c9e52009d
aarch64: Remove +mpamv2 feature option
The remaining mpamv2 details only use system registers; so by our
conventions we do not use a feature option to enable them.  Remove the
now redundant +mpamv2 architecture option and adjust the tests
accordingly.
2026-07-02 13:35:08 +01:00
Richard Earnshaw
3f9d1aaedb
Revert "aarch64: Add support for MLBI system instructions"
This reverts commit d8e004f124.
2026-07-02 13:32:52 +01:00
Richard Earnshaw
741c4bbaf2
aarch64: warn if the TME feature is used during assembly.
Arm has obsoleted the unimplemented TME feature.  Warn if instructions
from this feature are encountered.

Also tweak warn_unpredictable_ldst to use const more often, since the
arguments are the same as for the new warn_deprecated function.
2026-07-02 13:32:52 +01:00
Richard Earnshaw
0ee7eb3a0d
aarch64: Remove a stray comment from opcode/aarch64.h
When flag bit 28 was removed in an earlier patch, the comment describing
it was left behind.  This just cleans that up.
2026-07-02 13:32:52 +01:00
Jiawei
794f538c3e RISC-V: Add Zvbdota extension support
This patch supports the RISC-V Zvbdota family of batched dot-product
extensions [1].

Compared to the non-batched Zvdota family, Zvbdota computes up to eight
dot products at a time.  These instructions use an EMUL=8 `vs2` vector
register group and a scaled-by-8 `ci` immediate encoded in `vs2[2:0]`.
This patch adds assembler/disassembler support for those additional
operand constraints.

The Zvbdota extension family includes the following extensions:

* Zvqwbdota8i: batched dot product of 8-bit integers with 32-bit
  accumulation.
* Zvqwbdota16i: batched dot product of 16-bit integers with 64-bit
  accumulation.
* Zvfwbdota16bf: batched dot product of bfloat16 floating-point numbers
  with 32-bit accumulation.
* Zvfqwbdota8f: batched dot product of 8-bit floating-point numbers with
  32-bit accumulation.
* Zvfbdota32f: batched dot product of 32-bit single-precision
  floating-point numbers with 32-bit accumulation.

[1] https://github.com/riscv/riscv-isa-manual/blob/zvbdot/src/zvdota.adoc

bfd/ChangeLog:

	* elfxx-riscv.c (riscv_implicit_subsets): New implies.
	(riscv_supported_std_z_ext): New extensions.
	(riscv_multi_subset_supports): Ditto.
	(riscv_multi_subset_supports_ext): Ditto.

gas/ChangeLog:

	* NEWS: Add zvqwbdota8i, zvqwbdota16i, zvfwbdota16bf,
	zvfqwbdota8f and zvfbdota32f extensions.
	* config/tc-riscv.c (validate_riscv_insn): Add Zvbdota operand
	type 'q' and 'r' bits validation.
	(riscv_vtype_altfmt_supported): Add Zvbdota extensions.
	(my_getVsetvliExpression): Update altfmt error message.
	(riscv_ip): Add 'q' operand for VS2 EMUL=8 alignment check
	and 'r' operand for ci immediate.
	* testsuite/gas/riscv/march-help.l: Ditto.
	* testsuite/gas/riscv/zvbdota.d: New test.
	* testsuite/gas/riscv/zvbdota.s: Ditto.
	* testsuite/gas/riscv/zvbdota-operands-fail.d: Ditto.
	* testsuite/gas/riscv/zvbdota-operands-fail.l: Ditto.
	* testsuite/gas/riscv/zvbdota-operands-fail.s: Ditto.
	* testsuite/gas/riscv/zvbdota-zvqwbdota16i.d: Ditto.
	* testsuite/gas/riscv/zvbdota-zvqwbdota16i.s: Ditto.

include/ChangeLog:

	* opcode/riscv-opc.h (MATCH_VQWBDOTAU_VV, MASK_VQWBDOTAU_VV):
	New encoding.
	(MATCH_VQWBDOTAS_VV, MASK_VQWBDOTAS_VV): Ditto.
	(MATCH_VFWBDOTA_VV, MASK_VFWBDOTA_VV): Ditto.
	(MATCH_VFQWBDOTA_VV, MASK_VFQWBDOTA_VV): Ditto.
	(MATCH_VFQWBDOTA_ALT_VV, MASK_VFQWBDOTA_ALT_VV): Ditto.
	(MATCH_VFBDOTA_VV, MASK_VFBDOTA_VV): Ditto.
	(DECLARE_INSN): New declarations.
	* opcode/riscv.h (enum riscv_insn_class): New extension classes.

opcodes/ChangeLog:

	* riscv-dis.c (print_insn_args): Add 'q' and 'r' operand types
	for Zvbdota.
	* riscv-opc.c (riscv_opcodes): New instructions.
2026-06-30 07:55:11 -06:00
Jiawei
89d59bf712 RISC-V: Add Zvdota extension classes
Zvfqwdota8f: dot product of 8-bit floating-point numbers with 32-bit accumulation.

Zvdota also uses the vtype alternative format bit, altfmt, which is bit 8 of the vtype CSR. This patch adds symbolic e8alt and e16alt vsew constants for vsetvli/vsetivli so that assembly code can select the alternative element formats required by these dot-product instructions.

[1] https://github.com/riscv/riscv-isa-manual/blob/zvbdot/src/zvdota.adoc

bfd/ChangeLog:

	* elfxx-riscv.c (riscv_implicit_subsets): New implies.
	(riscv_supported_std_z_ext): New extensions.
	(riscv_multi_subset_supports): Ditto.
	(riscv_multi_subset_supports_ext): Ditto.

gas/ChangeLog:

	* NEWS: Add zvqwdota8i, zvqwdota16i, zvfwdota16bf and
	zvfqwdota8f extensions.
	* config/tc-riscv.c (riscv_vsew_altfmt): New vsew altfmt
	constants array for e8alt and e16alt.
	(riscv_vtype_altfmt_supported): New function.
	(my_getVsetvliExpression): Ditto.
	* testsuite/gas/riscv/march-help.l: New test.
	* testsuite/gas/riscv/vector-vtype-altfmt.d: Ditto.
	* testsuite/gas/riscv/vector-vtype-altfmt.s: Ditto.
	* testsuite/gas/riscv/zvdota.d: Ditto.
	* testsuite/gas/riscv/zvdota.s: Ditto.

include/ChangeLog:

	* opcode/riscv-opc.h (MATCH_VQWDOTAU_VV, MASK_VQWDOTAU_VV): New encoding.
	(MATCH_VQWDOTAS_VV, MASK_VQWDOTAS_VV): Ditto.
	(MATCH_VFWDOTA_VV, MASK_VFWDOTA_VV): Ditto.
	(MATCH_VFQWDOTA_VV, MASK_VFQWDOTA_VV): Ditto.
	(MATCH_VFQWDOTA_ALT_VV, MASK_VFQWDOTA_ALT_VV): Ditto.
	(DECLARE_INSN): New declarations.
	* opcode/riscv.h (OP_MASK_VTYPE_ALTFMT, OP_SH_VTYPE_ALTFMT): New vtype altfmt.
	(enum riscv_insn_class): New extension classes.

opcodes/ChangeLog:

	* riscv-dis.c (print_insn_args): Add altfmt support.
	* riscv-opc.c (riscv_opcodes): New instructions.
2026-06-30 07:54:21 -06:00
Jiawei
d3b84dac94 RISC-V: Support Zvabd extension instructions.
This patch adds support for the Zvabd extension instructions:
https://github.com/riscv/integer-vector-absolute-difference

The Zvabd extension provides RISC-V vector integer absolute difference
operations.

The widening accumulate mnemonics follow the current frozen specification
are vwabda.vv and vwabdau.vv.

bfd/ChangeLog:

	* elfxx-riscv.c (riscv_multi_subset_supports): Add Zvabd implication
  of zve32x.
	(riscv_multi_subset_supports_ext): Add Zvabd.

gas/ChangeLog:

	* NEWS:
	* testsuite/gas/riscv/march-help.l: Add Zvabd.
	* testsuite/gas/riscv/zvabd.d: New test.
	* testsuite/gas/riscv/zvabd.s: New test.

include/ChangeLog:

	* opcode/riscv-opc.h (MATCH_VABS_V): New macro.
	(MASK_VABS_V): Ditto.
	(MATCH_VABD_VV): Ditto.
	(MASK_VABD_VV): Ditto.
	(MATCH_VABDU_VV): Ditto.
	(MASK_VABDU_VV): Ditto.
	(MATCH_VWABDA_VV): Ditto.
	(MASK_VWABDA_VV): Ditto.
	(MATCH_VWABDAU_VV): Ditto.
	(MASK_VWABDAU_VV): Ditto.
	* opcode/riscv.h (enum riscv_insn_class): New extension.

opcodes/ChangeLog:

	* riscv-opc.c: New instructions.
2026-06-22 12:31:58 -06:00
Mark Zhuang
78f04a87f9 RISC-V: Add SpacemiT vendor extension xsmtvdotii
SpacemiT defines Intrinsic Matrix Extension (IME) specification [1].
SpacemiT A100 implements version 1.0 of the SpacemiT Vector Dot Product
II Extension (XsmtVdotII v1.0) [2], a subset of the full IME specification.

[1] https://github.com/spacemit-com/riscv-ime-extension-spec/releases/download/v1.0/spacemit-ime-asciidoc.pdf
[2] https://github.com/spacemit-com/docs-ai/blob/main/en/architecture/ime_extension.md
2026-06-22 10:56:40 -06:00
Mark Zhuang
dab9eefbe3 RISC-V: Add SpacemiT vendor extension xsmtvdot
SpacemiT defines Intrinsic Matrix Extension (IME) specification [1].
SpacemiT X60 implements version 1.0 of the SpacemiT Vector Dot Product
Extension (XsmtVdot v1.0) [2], a subset of the full IME specification.

[1] https://github.com/spacemit-com/riscv-ime-extension-spec/releases/download/v1.0/spacemit-ime-asciidoc.pdf
[2] https://github.com/spacemit-com/docs-ai/blob/main/en/architecture/ime_extension.md
2026-06-22 10:41:48 -06:00
Jiawei
db7f7dd315 RISC-V: Support Zalasr extension.
This patch supports Zalasr extension(load-acquire/store-release) instructions.

https://github.com/riscv/riscv-zalasr

bfd/ChangeLog:

        * elfxx-riscv.c (riscv_multi_subset_supports): New ext.
        (riscv_multi_subset_supports_ext): Ditto.

gas/ChangeLog:

        * NEWS: Support Zalasr extension.
        * testsuite/gas/riscv/march-help.l: New ext.
        * testsuite/gas/riscv/zalasr.d: New test.
        * testsuite/gas/riscv/zalasr.s: New test.

include/ChangeLog:

        * opcode/riscv-opc.h (MATCH_LBA): New match opcode.
        (MASK_LBA): New mask opcode.
        (MATCH_LHA): New match opcode.
        (MASK_LHA): New mask opcode.
        (MATCH_LWA): New match opcode.
        (MASK_LWA): New mask opcode.
        (MATCH_LDA): New match opcode.
        (MASK_LDA): New mask opcode.
        (MATCH_SBR): New match opcode.
        (MASK_SBR): New mask opcode.
        (MATCH_SHR): New match opcode.
        (MASK_SHR): New mask opcode.
        (MATCH_SWR): New match opcode.
        (MASK_SWR): New mask opcode.
        (MATCH_SDR): New match opcode.
        (MASK_SDR): New mask opcode.
        (DECLARE_INSN): New insn declare.
        * opcode/riscv.h (enum riscv_insn_class): New ext.

opcodes/ChangeLog:

        * riscv-opc.c: New instructions def.
2026-06-22 08:13:44 -06:00
Alice Carlotti
1b01d9a735 aarch64: Add new qualifier AARCH64_OPND_QLF_UNUSED
Replace QLF_NIL with QLF_UNUSED for qualifier sequence list padding.
This splits apart distinct qualifier meanings, and simplifies detection
of empty qualifier sequences.
2026-05-15 15:07:19 +01:00
Alice Carlotti
ece614ad06 aarch64: Remove F_STRICT
With the introduction of AARCH64_OPND_QLF_UNKNOWN, the F_STRICT flag is
no longer needed and can be deleted.
2026-05-15 15:07:19 +01:00
Alice Carlotti
efc9286919 aarch64: Add new qualifier ARCH64_OPND_QLF_UNKNOWN
Some uses of AARCH64_OPND_QLF_NIL actually represent an unknown operand
qualifier.  The F_STRICT flag was added to disable the wild card
behaviour for most SVE instructions, but this just makes the code less
consistent and more confusing.

Add a new qualifer to indicate that the real qualifier is currently
unknown, and use this in any place where we need the wildcard behaviour
(and in a few other places where UNKNOWN is more descriptive than NIL).

For consistency (and as an extra check during development), change the
default qualifier value during parsing to AARCH64_OPND_QLF_ERR, and add
explicit qualifier assignments to each non-failure code path.
2026-05-15 15:07:19 +01:00
Alice Carlotti
6095ea2efc aarch64: Fix ldst_lo12_determine_real_reloc_type
Add fallback handling for an invalid choice of opd0_qlf, instead of
hitting an assert when trying to use X registers in byte or half
instructions.

Additionally, simplify the code by inlining the relevant parts of
aarch64_get_expected_qualifer, and by deducing the array index directly
from the qualifier enum values (instead of looking up the element size
and computing its log).

This makes aarch64_get_expected_qualifier unused, so remove it.
2026-05-15 15:07:18 +01:00
Alice Carlotti
328a34f0db aarch64: Add F_REQUIRES_SP and eliminate QLF_SP and QLF_WSP
Add a new opcode flag F_REQUIRES_SP and use that to enforce the
requirement for at least one SP operand in the mov (to/from SP) opcode.

This requirement was the only reason for the existence of the QLF_SP and
QLF_WSP qualifiers.  Delete them, and remove the confusing code that
would switch between SP and non-SP qualifiers in the middle of qualifier
matching.
2026-05-15 15:07:18 +01:00
Alice Carlotti
9c0b9c4d84 aarch64: Remove unused operand SM3_IMM2
This operand was intended to be used for the sm3tt* instructions, but
those were added with operand Em instead.
2026-05-15 15:07:17 +01:00
Alice Carlotti
dfaa633605 aarch64: Remove unused operand ADDR_SIMM9_2
This has been unused since the original handling for load/store register
(unscaled) instructions was removed in c8f89a3423.
2026-05-15 15:07:17 +01:00
Alice Carlotti
93c78ceb4c aarch64: Remove constraints on sysp operands
The CRn and CRm operands of sysp were unnecessarily constrained to the
ranges C8-C9 and C0-C7.  This constraint has been removed from the
architecture spec, and was never implemented in LLVM, so remove it here
as well.

Additionally, add some more tests to cover the full range of valid sysp
operands, including omitting the pair of optional operands.
2026-04-09 15:34:46 +01:00
Alice Carlotti
254a4c9a4c aarch64: Cleanup optional_operand_p
Every time I looked at this function I initially misread the
implementation.  Make it less confusing.
2026-04-09 15:34:46 +01:00
Vineet Gupta
350f9e8adb PR 34029: bpf: add %dR/%sR register format specifiers
These accept either r or w prefix registers during assembly
(pseudoc dialect), while disassembling canonically as r registers.

This eliminates the need for duplicate opcode table entries for
instructions that accept both w and r register forms.

Signed-off-by: Vineet Gupta <vineet.gupta@linux.dev>
2026-04-02 18:32:02 +02:00
Dimitar Dimitrov
77cb5ee0f2
gas: pru: Add flag to select core revision
Add new command line option to select PRU core revision to assemble for.
This new option is used to limit the available opcodes to what the
selected revision supports.

References:
  - https://www.ti.com/lit/ug/spruij2/spruij2.pdf
    Table 3. PRU Core Revision Comparison
  - 3cffcaae73/docs/PRU%20Assembly%20Instruction%20Cheat%20Sheet.md (core-revision-differences)
    Core Revision Differences

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2026-03-15 09:44:02 +02:00
Dimitar Dimitrov
bd2f485e24
gas: pru: Add TSEN and MVI instructions
Add support for TSEN and MVI instructions to GAS and libopcodes.
TSEN is available in newer PRU core revisions, and can be used to
implement multitasking.  MVI allows indirectly addressing CPU registers
using a pointer in R1 register.

References:
 - https://www.ti.com/lit/ug/spruij2/spruij2.pdf
   Chapter "Move Register File Indirect (MVIx)"
 - https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1426480/am2431-pru-assembly-instruction-user-guide

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2026-03-06 19:58:32 +02:00
David Faust
bdb4d0030d bpf: add may_goto instruction [PR32176]
The BPF "may_goto" instruction is a special sort of conditional jump
where the condition is determined by the BPF runtime.  That is, it is
a no-op until the runtime decides otherwise.

For normal asm syntax, the mnemonic "jcond" is chosen in keeping with
the style of following the opcode definitions in the Linux kernel uapi
BPF headers.

This instruction is not currently emitted by GCC, but it can be inserted
into BPF programs via macros defined in the Linux kernel.

	PR gas/32176

include/
	* opcode/bpf.h (BPF_CODE_JCOND): New.
	(bpf_insn_id): Add BPF_INSN_JCOND.

opcodes/
	* bpf-opc.c: Add entry for BPF_INSN_JCOND.

gas/testsuite/
	* gas/bpf/bpf.exp: Run new dump tests.
	* gas/bpf/jcond-be-pseudoc.d: New.
	* gas/bpf/jcond-be.d: New.
	* gas/bpf/jcond-pseudoc.d: New.
	* gas/bpf/jcond-pseudoc.s: New.
	* gas/bpf/jcond.d: New.
	* gas/bpf/jcond.s: New.
2026-02-05 12:26:09 -08:00
Alice Carlotti
aa471974c2 aarch64: Add -march=armv9.7-a option 2026-01-24 07:16:53 +00:00
Srinath Parvathaneni
e5638207fe aarch64: Enable TLBIP instructions with tlbid option
TLBI Domains feature changes TLBI and TLBIP system instructions.
For all TLBIP *E1IS*, TLBIP *E1OS*, TLBIP *E2IS* and TLBIP *E2OS*
instructions that are currently dependent on FEAT_D128 (+d128),
will also be available with FEAT_TLBID (+tlbid).
2026-01-24 07:16:53 +00:00
Srinath Parvathaneni
1d0e527aa6 aarch64: Add support for FEAT_TLBID feature
TLBI Domains feature changes TLBI and TLBIP system instructions.
For the TLBI instruction with optional register argument
<Rt> == 0b1111, with FEAT_TLBID enabled they are permitted to
have an Rt value which is not 0b11111 and this is allowed for
all the TLBI instructions with a <type> of ALLE1*, ALLE2*,
VMALL*, VMALLS12* or VMALLWS2* and a <shareability> of IS or OS.

This patch add support for FEAT_TLBID feature, which is enabled
by new +tlbid option.
2026-01-24 07:16:53 +00:00
Richard Ball
7ae2329129 aarch64: Add support for FEAT_MTETC
This patch adds two new DC operations:

   *gbva
   *zgbva
2026-01-16 22:16:48 +00:00
Richard Ball
19ffb6d2d7 aarch64: Add support for FEAT_CMH
This patch adds the new instructions from FEAT_CMH
These new instructions are hints, STCPH and SHUH.
SHUH can have an operand PH or no operand.
2026-01-16 12:35:41 +00:00
Richard Ball
d8e004f124 aarch64: Add support for MLBI system instructions
This patch adds support for MLB invalidate (MLBI) instruction.

Syntax: MLBI <mlbi_op>{, <Xt>}

This instruction is an alias to "SYS #4, C7, C0, #<op2>{, <Xt>}"
and MLBI being the preferred disassembly.

The following list of MLBI operations are supported in this patch for the
MLBI instructions enabled by "+mpamv2"

   * alle1
   * vmalle1
   * vpide1
   * vpmge1
2026-01-16 12:16:17 +00:00
Ezra Sitorus
c810cfe842 aarch64: Add FEAT_MPAMv2 system registers 2026-01-16 10:23:07 +00:00
Srinath Parvathaneni
43d523e207 aarch64: Add support for POE2 PLBI instruction
This patch adds support for PLB invalidate operation (PLBI) instruction
and the corresponding system registers as operand (<plbi_op>).

Syntax: PLBI <plbi_op>{, <Xt>}

This instruction is an alias to "SYS #<op1>, C10, <Cm>, #<op2>{, <Xt>}"
and PLBI being the preferred disassembly.

The following list of system registers are supported in this patch for the
PLBI instructions enabled by "+poe2" flag and also the "nxs" variants of
these system registers are enabled by "+poe2+xs" flag.

   * alle1
   * alle1is
   * alle1os
   * alle2
   * alle2is
   * alle2os
   * alle3
   * alle3is
   * alle3os
   * aside1
   * aside1is
   * aside1os
   * permae1
   * permae1is
   * permae1os
   * perme1
   * perme1is
   * perme1os
   * perme2
   * perme2is
   * perme2os
   * perme3
   * perme3is
   * perme3os
   * vmalle1
   * vmalle1is
   * vmalle1os
2026-01-05 17:50:55 +00:00
Srinath Parvathaneni
859d7ccd9f aarch64: Add support for TEV instructions
This patch adds support for FEAT_TEV feature enabled by "+tev"
flag along with support for following instructions.

* TENTER
* TEXIT

TENTER instruction uses the existing AARCH64_OPND_NOT_BALANCED_17 operand
to handle the not_balanced (NB) argument , where as a new operand
AARCH64_OPND_NOT_BALANCED_10 is added to support the NB (not_balanced)
argument in TEXIT instruction.
2026-01-05 17:50:43 +00:00
Srinath Parvathaneni
37fd5c9428 aarch64: Add support for POE2 instructions
This patch adds support for FEAT_S1POE2 feature enabled by "+poe2"
flag along with support for following instructions.

* TCHANGEB (immediate)
* TCHANGEB (register)
* TCHANGEF (immediate)
* TCHANGEF (register)

A new operand AARCH64_OPND_NOT_BALANCED_17 is added to the code in this
patch to support the new optional argument "NB" (not_balanced) which
is a 1-bit field in the encoding for all the above mentioned
instructions.

Co-authored-by:  Matthew Malcomson <matthew.malcomson@arm.com>
2026-01-05 17:50:24 +00:00
Alan Modra
c8f306af2f Update year range in copyright notice of binutils files
Avoid warnings about invalid escapes in etc/update-copyright.py by
using raw strings, add BinutilsFilter to skip psql.rc and add
"Kalray SA." as another copyright holder.
2026-01-01 23:22:14 +10:30
Alice Carlotti
1db7006c37 aarch64: Remove sme2_movaz instruction class
The behaviour of sme2_movaz was identical to sme_misc, so use that
instead.
2025-12-29 12:03:03 +00:00
Sivan Shani
d8d024ad42 AArch64 v9.7 extensions: FEAT_SVE_B16MM
This patch includes:
  - Feature flag for FEAT_SVE_B16MM
  - Instruction:
      - BFMMLA (non-widening) BFloat16 matrix multiply-accumulate.
2025-12-27 12:45:53 +00:00
Sivan Shani
3eb520ce6a AArch64 v9.7 extensions: FEAT_F16MM
This patch includes:
  - Feature flag for FEAT_F16MM
  - Instructions:
	- FMMLA (non-widening) Half-precision matrix multiply-accumulate
	- FMMLA (non-widening) Floating-point matrix multiply-accumulate
2025-12-27 12:45:53 +00:00
Sivan Shani
a6956e0c79 AArch64: Add FEAT_F16F32MM
This patch includes:
    - The feature flag for the FEAT_F16F32MM feature.
    - Instruction FMMLA Half-precision matrix multiply-accumulate to single-precision.
2025-12-27 12:45:52 +00:00
Sivan Shani
4373edd2f6 AArch64: Add FEAT_F16F32DOT instructions
This includes the instructions for the F16F32DOT feature:
    - FDOT half-precision to single-precision, by element
    - FDOT half-precision to single-precision, vector
2025-12-27 12:45:52 +00:00
Sivan Shani
a722387a1f AArch64: Add FEAT_SVE2p3 and FEAT_SME2p3 instructions.
This patch includes:

    - Flags for the FEAT_SVE2p3 and FEAT_SME2p3 features.
    - Instructions:
      - ADDQP
      - ADDSUBP
      - FCVTZSN
      - FCVTZUN
      - LUTI6 16-bit
      - LUTI6 8-bit
      - SABAL
      - SCVTF
      - SCVTFLT
      - SDOT vectors
      - SDOT indexed
      - SQRSHRN
      - SQRSHRUN
      - SQSHRN
      - SQSHRUN
      - SUBP
      - UABAL
      - UCVTF
      - UCVTFLT
      - UDOT vectors
      - UDOT indexed
      - UQRSHRN
      - UQSHRN
      - LUTI6 vector
      - LUTI6 table, four registers
      - LUTI6 table, single, 8-bit

    In addition, new operands:
      - OPND_SME_Zmx2_INDEX_22: an operand represents a list of vector registers with an index.
      - OPND_SME_Zn7xN_UNTYPED: an operand represents an untyped list of vector registers.
2025-12-27 12:19:23 +00:00
Yury Khrustalev
242e78b76a aarch64: Add FEAT_MOPS_GO instructions
Also add +mops-go feature flag and make the mops-go feature
depend on the memtag and mops features.
2025-12-27 09:23:51 +00:00
Lulu Cai
8bea934667 LoongArch: Add disassembly support for ud ui5
ud ui5, also known as amswap.w rd,$r1,rj(rd==rj), is displayed as
"ud ui5" by default during disassembly. Alternatively, the original
instruction can be printed using the objdump -M no-aliases.

To implement this support, a format specifier "ru0:5,ru5:5" for ud is
applied exclusively during disassembly. This specifier indicates that
registers should be printed using their corresponding numeric values,
and when the instruction is identified as ud, only a single parameter
is displayed.

binutils/

        * testsuite/binutils-all/loongarch64/dis-amswap-ud-noaliases.d:
	  New test.
        * testsuite/binutils-all/loongarch64/dis-amswap-ud.d: New test.
        * testsuite/binutils-all/loongarch64/dis-amswap-ud.s: New test.

gas/

        * testsuite/gas/loongarch/macro_ud.d: Update test.

include/

        * opcode/loongarch.h: New macro.

opcodes/

        * loongarch-dis.c (get_loongarch_opcode_by_binfmt): Correct match `ud`.
        (dis_one_arg): Disassemble the `ud` parameter.
        * loongarch-opc.c: Add opcode for "ud" alias.
2025-12-20 10:49:47 +08:00
Srinath Parvathaneni
d0514e7441 aarch64: Add support for new BTI <target> "r"
This patch adds support for new BTI <target> "r" (instruction: bti r),
which is an alias to "bti" (with no target), for both "bti" and "bti r"
the preferred disassembly is "bti r". This "bti r" instruction is by
default available from Armv8-A architecture.

The HINT_OPD_F_NOPRINT macro has become redundant with these changes
and has been removed.
2025-12-15 11:01:49 +00:00
Richard Ball
4f9b9eaa24 aarch64: Add support for FEAT_LSCP
This patch adds the new instructions from FEAT_LSCP.
These instructions are LDAP, LDAPP and STLP.
2025-12-11 14:10:42 +00:00
mengqinggang
d17b290265 LoongArch: Add linker relaxation for got_pcadd_hi20 and got_pcadd_lo12
.L1:
pcaddu12i $t0, %got_pcadd_hi20(a)     -> pcaddu12i $t0, %pcadd_hi20(a)
ld.w/d $t0, $t0, %got_pcadd_lo12(.L1) -> addi.w/d $t0, $t0, %pcadd_lo12(.L1)
2025-12-10 16:06:48 +08:00