<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/binutils-gdb.git/include/opcode, branch master</title>
<subtitle>sourceware.org: git/binutils-gdb.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/'/>
<entry>
<title>    RISC-V: Support XVentanaCondOps extension</title>
<updated>2023-04-26T20:09:34+00:00</updated>
<author>
<name>Philipp Tomsich</name>
<email>philipp.tomsich@vrull.eu</email>
</author>
<published>2023-04-26T20:09:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=1656d3f8ef56a16745689c03269412988ebcaa54'/>
<id>1656d3f8ef56a16745689c03269412988ebcaa54</id>
<content type='text'>
    Ventana Micro has published the specification for their
    XVentanaCondOps ("conditional ops") extension at
      https://github.com/ventanamicro/ventana-custom-extensions/releases/download/v1.0.0/ventana-custom-extensions-v1.0.0.pdf
    which contains two new instructions
      - vt.maskc
      - vt.maskcn
    that can be used in constructing branchless sequences for
    various conditional-arithmetic, conditional-logical, and
    conditional-select operations.

    To support such vendor-defined instructions in the mainline binutils,
    this change also adds a riscv_supported_vendor_x_ext secondary
    dispatch table (but also keeps the behaviour of allowing any unknow
    X-extension to be specified in addition to the known ones from this
    table).

    As discussed, this change already includes the planned/agreed future
    requirements for X-extensions (which are likely to be captured in the
    riscv-toolchain-conventions repository):
      - a public specification document is available (see above) and is
        referenced from the gas-documentation
      - the naming follows chapter 27 of the RISC-V ISA specification
      - instructions are prefixed by a vendor-prefix (vt for Ventana)
        to ensure that they neither conflict with future standard
        extensions nor clash with other vendors

    bfd/ChangeLog:

            * elfxx-riscv.c (riscv_get_default_ext_version): Add riscv_supported_vendor_x_ext.
            (riscv_multi_subset_supports): Recognize INSN_CLASS_XVENTANACONDOPS.

    gas/ChangeLog:

            * doc/c-riscv.texi: Add section to list custom extensions and
              their documentation URLs.
            * testsuite/gas/riscv/x-ventana-condops.d: New test.
            * testsuite/gas/riscv/x-ventana-condops.s: New test.

    include/ChangeLog:

            * opcode/riscv-opc.h Add vt.maskc and vt.maskcn.
            * opcode/riscv.h (enum riscv_insn_class): Add INSN_CLASS_XVENTANACONDOPS.

    opcodes/ChangeLog:

            * riscv-opc.c: Add vt.maskc and vt.maskcn.

    Series-version: 1
    Series-to: binutils@sourceware.org
    Series-cc: Kito Cheng &lt;kito.cheng@sifive.com&gt;
    Series-cc: Nelson Chu &lt;nelson.chu@sifive.com&gt;
    Series-cc: Greg Favor &lt;gfavor@ventanamicro.com&gt;
    Series-cc: Christoph Muellner &lt;cmuellner@gcc.gnu.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
    Ventana Micro has published the specification for their
    XVentanaCondOps ("conditional ops") extension at
      https://github.com/ventanamicro/ventana-custom-extensions/releases/download/v1.0.0/ventana-custom-extensions-v1.0.0.pdf
    which contains two new instructions
      - vt.maskc
      - vt.maskcn
    that can be used in constructing branchless sequences for
    various conditional-arithmetic, conditional-logical, and
    conditional-select operations.

    To support such vendor-defined instructions in the mainline binutils,
    this change also adds a riscv_supported_vendor_x_ext secondary
    dispatch table (but also keeps the behaviour of allowing any unknow
    X-extension to be specified in addition to the known ones from this
    table).

    As discussed, this change already includes the planned/agreed future
    requirements for X-extensions (which are likely to be captured in the
    riscv-toolchain-conventions repository):
      - a public specification document is available (see above) and is
        referenced from the gas-documentation
      - the naming follows chapter 27 of the RISC-V ISA specification
      - instructions are prefixed by a vendor-prefix (vt for Ventana)
        to ensure that they neither conflict with future standard
        extensions nor clash with other vendors

    bfd/ChangeLog:

            * elfxx-riscv.c (riscv_get_default_ext_version): Add riscv_supported_vendor_x_ext.
            (riscv_multi_subset_supports): Recognize INSN_CLASS_XVENTANACONDOPS.

    gas/ChangeLog:

            * doc/c-riscv.texi: Add section to list custom extensions and
              their documentation URLs.
            * testsuite/gas/riscv/x-ventana-condops.d: New test.
            * testsuite/gas/riscv/x-ventana-condops.s: New test.

    include/ChangeLog:

            * opcode/riscv-opc.h Add vt.maskc and vt.maskcn.
            * opcode/riscv.h (enum riscv_insn_class): Add INSN_CLASS_XVENTANACONDOPS.

    opcodes/ChangeLog:

            * riscv-opc.c: Add vt.maskc and vt.maskcn.

    Series-version: 1
    Series-to: binutils@sourceware.org
    Series-cc: Kito Cheng &lt;kito.cheng@sifive.com&gt;
    Series-cc: Nelson Chu &lt;nelson.chu@sifive.com&gt;
    Series-cc: Greg Favor &lt;gfavor@ventanamicro.com&gt;
    Series-cc: Christoph Muellner &lt;cmuellner@gcc.gnu.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Remove stray reglist variable</title>
<updated>2023-03-30T16:01:30+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T16:01:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=d056265349034444226c468cba561cc86eaed6da'/>
<id>d056265349034444226c468cba561cc86eaed6da</id>
<content type='text'>
Sorry for not catching this during testing.  I was using a
host compiler that predated the switch to -fno-common.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sorry for not catching this during testing.  I was using a
host compiler that predated the switch to -fno-common.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add the RPRFM instruction</title>
<updated>2023-03-30T10:09:18+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=8ff429203dc8cb8c66fdd7db647e237330dcabd0'/>
<id>8ff429203dc8cb8c66fdd7db647e237330dcabd0</id>
<content type='text'>
This patch adds the RPRFM (range prefetch) instruction.
It was introduced as part of SME2, but it belongs to the
prefetch hint space and so doesn't require any specific
ISA flags.

The aarch64_rprfmop_array initialiser (deliberately) only
fills in the leading non-null elements.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds the RPRFM (range prefetch) instruction.
It was introduced as part of SME2, but it belongs to the
prefetch hint space and so doesn't require any specific
ISA flags.

The aarch64_rprfmop_array initialiser (deliberately) only
fills in the leading non-null elements.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add new SVE dot-product instructions</title>
<updated>2023-03-30T10:09:17+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=dfc12f9f533ea0614ad655370c5f8373081b0c61'/>
<id>dfc12f9f533ea0614ad655370c5f8373081b0c61</id>
<content type='text'>
This patch adds the SVE FDOT, SDOT and UDOT instructions,
which are available when FEAT_SME2 is implemented.  The patch
also reorders the existing SVE_Zm3_22_INDEX to keep the
operands numerically sorted.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds the SVE FDOT, SDOT and UDOT instructions,
which are available when FEAT_SME2 is implemented.  The patch
also reorders the existing SVE_Zm3_22_INDEX to keep the
operands numerically sorted.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add the SME2 shift instructions</title>
<updated>2023-03-30T10:09:16+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=6efa660124f481a5ba415cedd195764ea6ac09fd'/>
<id>6efa660124f481a5ba415cedd195764ea6ac09fd</id>
<content type='text'>
There are two instruction formats here:

- SQRSHR, SQRSHRU and UQRSHR, which operate on lists of two
  or four registers.

- SQRSHRN, SQRSHRUN and UQRSHRN, which operate on lists of
  four registers.

These are the first SME2 instructions to have immediate operands.
The patch makes sure that, when parsing SME2 instructions with
immediate operands, the new predicate-as-counter registers are
parsed as registers rather than as #-less immediates.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are two instruction formats here:

- SQRSHR, SQRSHRU and UQRSHR, which operate on lists of two
  or four registers.

- SQRSHRN, SQRSHRUN and UQRSHRN, which operate on lists of
  four registers.

These are the first SME2 instructions to have immediate operands.
The patch makes sure that, when parsing SME2 instructions with
immediate operands, the new predicate-as-counter registers are
parsed as registers rather than as #-less immediates.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add the SME2 saturating conversion instructions</title>
<updated>2023-03-30T10:09:16+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=ce623e7aa486d1330c9a4529c77a302d2fdcb801'/>
<id>ce623e7aa486d1330c9a4529c77a302d2fdcb801</id>
<content type='text'>
There are two instruction formats here:

- SQCVT, SQCVTU and UQCVT, which operate on lists of two or
  four registers.

- SQCVTN, SQCVTUN and UQCVTN, which operate on lists of
  four registers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are two instruction formats here:

- SQCVT, SQCVTU and UQCVT, which operate on lists of two or
  four registers.

- SQCVTN, SQCVTUN and UQCVTN, which operate on lists of
  four registers.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add the SME2 MLALL and MLSLL instructions</title>
<updated>2023-03-30T10:09:14+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=a8cb21aa06e99bc75829ad08beca67c7de683a21'/>
<id>a8cb21aa06e99bc75829ad08beca67c7de683a21</id>
<content type='text'>
SMLALL, SMLSLL, UMLALL and UMLSLL have the same format.
USMLALL and SUMLALL allow the same operand types as those
instructions, except that SUMLALL does not have the multi-vector
x multi-vector forms (which would be redundant with USMLALL).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SMLALL, SMLSLL, UMLALL and UMLSLL have the same format.
USMLALL and SUMLALL allow the same operand types as those
instructions, except that SUMLALL does not have the multi-vector
x multi-vector forms (which would be redundant with USMLALL).
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add the SME2 MLAL and MLSL instructions</title>
<updated>2023-03-30T10:09:13+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=ed429b33c1ee8d6d8f8e640e58f04ec800bc7b2a'/>
<id>ed429b33c1ee8d6d8f8e640e58f04ec800bc7b2a</id>
<content type='text'>
The {BF,F,S,U}MLAL and {BF,F,S,U}MLSL instructions share the same
encoding.  They are the first instance of a ZA (as opposed to ZA tile)
operand having a range of offsets.  As with ZA tiles, the expected
range size is encoded in the operand-specific data field.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The {BF,F,S,U}MLAL and {BF,F,S,U}MLSL instructions share the same
encoding.  They are the first instance of a ZA (as opposed to ZA tile)
operand having a range of offsets.  As with ZA tiles, the expected
range size is encoded in the operand-specific data field.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add the SME2 FMLA and FMLS instructions</title>
<updated>2023-03-30T10:09:13+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=80752eb0989b85e88af7f1f4627dbed8a42dfe6d'/>
<id>80752eb0989b85e88af7f1f4627dbed8a42dfe6d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Add the SME2 maximum/minimum instructions</title>
<updated>2023-03-30T10:09:13+00:00</updated>
<author>
<name>Richard Sandiford</name>
<email>richard.sandiford@arm.com</email>
</author>
<published>2023-03-30T10:09:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/binutils-gdb.git/commit/?id=27f6a0bd65b92b265200392e4e9a323f626342be'/>
<id>27f6a0bd65b92b265200392e4e9a323f626342be</id>
<content type='text'>
This patch adds the SME2 multi-register forms of F{MAX,MIN}{,NM}
and {S,U}{MAX,MIN}.  SQDMULH, SRSHL and URSHL have the same form
as SMAX etc., so the patch adds them too.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds the SME2 multi-register forms of F{MAX,MIN}{,NM}
and {S,U}{MAX,MIN}.  SQDMULH, SRSHL and URSHL have the same form
as SMAX etc., so the patch adds them too.
</pre>
</div>
</content>
</entry>
</feed>
