<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[RISCV][MC] Introduce XSfvfexp* and XSfvfbfexpa* extensions and their MC supports (#164349)</title>
<updated>2025-10-22T01:27:21+00:00</updated>
<author>
<name>Min-Yih Hsu</name>
<email>min.hsu@sifive.com</email>
</author>
<published>2025-10-22T01:27:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=90bc75043cef9de0dfb2667508595203208f65b0'/>
<id>90bc75043cef9de0dfb2667508595203208f65b0</id>
<content type='text'>
XSfvfbfexp16e, XSfvfexp16e, and XSfvfexp32e are SiFive's vector
exponential instruction extensions of BFloat16, F16, and F32,
respectively. Spec:
https://www.sifive.com/document-file/exponential-function-instruction-xsfvfexp32e-xsfvf

XSfvfexpa and XSfvfexpa64e are SiFive's vector exponential approximation
instruction extensions where the former supports F16 and F32 and the
latter covers F64. These instructions approximate 2 raised to a
fractional power. Spec:
https://www.sifive.com/document-file/exponential-approximation-instruction-xsfvfexpa-ex

This patch adds their corresponding features and MC supports.

---------

Co-authored-by: Jesse Huang &lt;jesse.huang@sifive.com&gt;
Co-authored-by: Craig Topper &lt;craig.topper@sifive.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
XSfvfbfexp16e, XSfvfexp16e, and XSfvfexp32e are SiFive's vector
exponential instruction extensions of BFloat16, F16, and F32,
respectively. Spec:
https://www.sifive.com/document-file/exponential-function-instruction-xsfvfexp32e-xsfvf

XSfvfexpa and XSfvfexpa64e are SiFive's vector exponential approximation
instruction extensions where the former supports F16 and F32 and the
latter covers F64. These instructions approximate 2 raised to a
fractional power. Spec:
https://www.sifive.com/document-file/exponential-approximation-instruction-xsfvfexpa-ex

This patch adds their corresponding features and MC supports.

---------

Co-authored-by: Jesse Huang &lt;jesse.huang@sifive.com&gt;
Co-authored-by: Craig Topper &lt;craig.topper@sifive.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Add MC layer support for Andes XAndesVSIntH extension. (#159514)</title>
<updated>2025-09-23T06:03:30+00:00</updated>
<author>
<name>Rux124</name>
<email>jhlee755@andestech.com</email>
</author>
<published>2025-09-23T06:03:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d34f738562d824c237ec35cfff3ec34f57ba41b0'/>
<id>d34f738562d824c237ec35cfff3ec34f57ba41b0</id>
<content type='text'>
Add MC layer support for Andes XAndesVSIntH extension. The spec is
available at:
https://github.com/andestech/andes-v5-isa/releases/tag/ast-v5_4_0-release</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add MC layer support for Andes XAndesVSIntH extension. The spec is
available at:
https://github.com/andestech/andes-v5-isa/releases/tag/ast-v5_4_0-release</pre>
</div>
</content>
</entry>
<entry>
<title>[TableGen][DecoderEmitter][RISCV] Always handle `bits&lt;0&gt;` (#159951)</title>
<updated>2025-09-22T17:50:17+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2025-09-22T17:50:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6a43c669d17ca6f47beda6c5b2428eb34a24fa4f'/>
<id>6a43c669d17ca6f47beda6c5b2428eb34a24fa4f</id>
<content type='text'>
Previously, `bits&lt;0&gt;` only had effect if `ignore-non-decodable-operands`
wasn't specified. Handle it even if the option was specified. This
should allow for a smoother transition to the option removed.

The change revealed a couple of inaccuracies in RISCV compressed
instruction definitions.
* `C_ADDI4SPN` has `bits&lt;5&gt; rs1` field, but `rs1` is not encoded. It
should be `bits&lt;0&gt;`.
* `C_ADDI16SP` has `bits&lt;5&gt; rd` in the base class, but it is unused
since `Inst{11-7}` is overwritten with constant bits.
We should instead set `rd = 2` and `Inst{11-7} = rd`. There are a couple
of alternative fixes, but this one is the shortest.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, `bits&lt;0&gt;` only had effect if `ignore-non-decodable-operands`
wasn't specified. Handle it even if the option was specified. This
should allow for a smoother transition to the option removed.

The change revealed a couple of inaccuracies in RISCV compressed
instruction definitions.
* `C_ADDI4SPN` has `bits&lt;5&gt; rs1` field, but `rs1` is not encoded. It
should be `bits&lt;0&gt;`.
* `C_ADDI16SP` has `bits&lt;5&gt; rd` in the base class, but it is unused
since `Inst{11-7}` is overwritten with constant bits.
We should instead set `rd = 2` and `Inst{11-7} = rd`. There are a couple
of alternative fixes, but this one is the shortest.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Remove a couple of custom instruction decoders (NFC) (#158483)</title>
<updated>2025-09-14T21:57:31+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2025-09-14T21:57:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=983c8b6b2575c034dc98514a35d0fd9b08d9935e'/>
<id>983c8b6b2575c034dc98514a35d0fd9b08d9935e</id>
<content type='text'>
These instructions can be decoded automatically.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These instructions can be decoded automatically.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV][MC] Add MC support of Zibi experimental extension (#127463)</title>
<updated>2025-09-12T07:38:41+00:00</updated>
<author>
<name>Boyao Wang</name>
<email>wangboyao@bytedance.com</email>
</author>
<published>2025-09-12T07:38:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a7521a81c4b7aa135086488a566eab2dbc6b1326'/>
<id>a7521a81c4b7aa135086488a566eab2dbc6b1326</id>
<content type='text'>
This adds the MC support of Zibi v0.1 experimental extension.

References:
*
https://lf-riscv.atlassian.net/wiki/spaces/USXX/pages/599261201/Branch+with+Immediate+Zibi+Ratification+Plan
* https://lf-riscv.atlassian.net/browse/RVS-3828
* https://github.com/riscv/zibi/releases/tag/v0.1.0</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the MC support of Zibi v0.1 experimental extension.

References:
*
https://lf-riscv.atlassian.net/wiki/spaces/USXX/pages/599261201/Branch+with+Immediate+Zibi+Ratification+Plan
* https://lf-riscv.atlassian.net/browse/RVS-3828
* https://github.com/riscv/zibi/releases/tag/v0.1.0</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Fix GPRPairNoX0 Disassembly (#158001)</title>
<updated>2025-09-11T15:51:37+00:00</updated>
<author>
<name>Sam Elliott</name>
<email>aelliott@qti.qualcomm.com</email>
</author>
<published>2025-09-11T15:51:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e1e65a4d91eaaadb00a7275b64bde7e70cb90a78'/>
<id>e1e65a4d91eaaadb00a7275b64bde7e70cb90a78</id>
<content type='text'>
Both GPRPair and GPRPairNoX0 were using the same decoder before this
change, which meant that GPRPairNoX0 would disassemble zeroes to the
`X0_Pair`.

This ensures the NoX0 decoder correctly fails to decode zeroes.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Both GPRPair and GPRPairNoX0 were using the same decoder before this
change, which meant that GPRPairNoX0 would disassemble zeroes to the
`X0_Pair`.

This ensures the NoX0 decoder correctly fails to decode zeroes.</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Remove post-decoding instruction adjustments (#156360)</title>
<updated>2025-09-04T16:02:34+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2025-09-04T16:02:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=698f39bc195905a84fdb696dfaa1cde006f7238f'/>
<id>698f39bc195905a84fdb696dfaa1cde006f7238f</id>
<content type='text'>
Some instructions implicitly define/use X2 (SP) register, but instead of
being present in the Defs/Uses lists, it is sometimes modeled as an
explicit operand with SP register class.
Since the operand is not encoded into the instruction, it cannot be
disassembled, and we have `RISCVDisassembler::addSPOperands()` that
addresses the issue by mutating the (incompletely) decoded instruction.

This change makes the operand decodable by adding `bits&lt;0&gt;` field for
that operand to relevant instruction encodings and removes
`RISCVDisassembler::addSPOperands()`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some instructions implicitly define/use X2 (SP) register, but instead of
being present in the Defs/Uses lists, it is sometimes modeled as an
explicit operand with SP register class.
Since the operand is not encoded into the instruction, it cannot be
disassembled, and we have `RISCVDisassembler::addSPOperands()` that
addresses the issue by mutating the (incompletely) decoded instruction.

This change makes the operand decodable by adding `bits&lt;0&gt;` field for
that operand to relevant instruction encodings and removes
`RISCVDisassembler::addSPOperands()`.</pre>
</div>
</content>
</entry>
<entry>
<title>[MC][DecoderEmitter] Fix build warning: explicit specialization cannot have a storage class (#156375)</title>
<updated>2025-09-02T14:28:36+00:00</updated>
<author>
<name>Rahul Joshi</name>
<email>rjoshi@nvidia.com</email>
</author>
<published>2025-09-02T14:28:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0196d7ec6988c39fa08ba296d28ffb00494f2834'/>
<id>0196d7ec6988c39fa08ba296d28ffb00494f2834</id>
<content type='text'>
Move `InsnBitWidth` template into anonymous namespace in the generated
code and move template specialization of `InsnBitWidth` to anonymous
namespace as well, and drop `static` for them. This makes `InsnBitWidth`
completely private to each target and fixes the "explicit specialization
cannot have a storage class" warning as well as any potential linker
errors if `InsnBitWidth` is kept in the `llvm::MCD` namespace.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move `InsnBitWidth` template into anonymous namespace in the generated
code and move template specialization of `InsnBitWidth` to anonymous
namespace as well, and drop `static` for them. This makes `InsnBitWidth`
completely private to each target and fixes the "explicit specialization
cannot have a storage class" warning as well as any potential linker
errors if `InsnBitWidth` is kept in the `llvm::MCD` namespace.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU, RISCV] Fix warnings</title>
<updated>2025-09-01T23:34:17+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-09-01T23:34:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e8b5fbd5fa0d0fbe0cc788964cb7e34482301348'/>
<id>e8b5fbd5fa0d0fbe0cc788964cb7e34482301348</id>
<content type='text'>
This patch fixes:

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:451:13:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:452:13:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:454:1:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:456:1:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

While I am at it, this patch changes the storage types of InsnBitWidth
specilization to "inline constexpr" to avoid linker errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes:

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:451:13:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:452:13:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:454:1:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

  llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp:456:1:
  error: explicit specialization cannot have a storage class
  [-Werror,-Wexplicit-specialization-storage-class]

While I am at it, this patch changes the storage types of InsnBitWidth
specilization to "inline constexpr" to avoid linker errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>[RISCV] Fix -Wexplicit-specialization-storage-class warnings</title>
<updated>2025-09-01T21:46:58+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2025-09-01T21:46:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a7d1a652c2e7872939caf22d5209a060f7dccd7e'/>
<id>a7d1a652c2e7872939caf22d5209a060f7dccd7e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
