Skip to content

Commit

Permalink
Merge pull request #50 from cmuellner/rv32-xtheadfmemidx
Browse files Browse the repository at this point in the history
xtheadfmemidx: Fix instruction depenencies
  • Loading branch information
Cooper-Qu authored Dec 14, 2024
2 parents 9741aab + f9fe30c commit 354b417
Showing 1 changed file with 12 additions and 13 deletions.
25 changes: 12 additions & 13 deletions xtheadfmemidx.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,20 @@ The table below gives an overview of the instructions:

[cols="^3,^3,12,18",stripes=even,options="header"]
|===
| F | D | Mnemonic | Instruction
| Y | Y | th.flrd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flrd>>
| Y | Y | th.flrw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flrw>>
| N | Y | th.flurd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flurd>>
| N | Y | th.flurw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flurw>>
| Y | Y | th.fsrd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-fsrd>>
| Y | Y | th.fsrw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flrw>>
| N | Y | th.fsurd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-fsurd>>
| N | Y | th.fsurw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flurw>>
| RV32 | RV64 | F | D | Mnemonic | Instruction
| Y | Y | N | Y | th.flrd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flrd>>
| Y | Y | Y | Y | th.flrw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flrw>>
| N | Y | N | Y | th.flurd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flurd>>
| N | Y | Y | Y | th.flurw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flurw>>
| Y | Y | N | Y | th.fsrd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-fsrd>>
| Y | Y | Y | Y | th.fsrw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flrw>>
| N | Y | N | Y | th.fsurd _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-fsurd>>
| N | Y | Y | Y | th.fsurw _rd_, _rs1_, _rs2_, _imm2_ | <<#xtheadfmemidx-insns-flurw>>
|===

All instructions are available for `RV32` and `RV64`.
Additionally at least the `F` extension needs to be available.
In order to have all instructions available, the `D` extensions
needs to be implemented.
The first four columns show the requirements of the instructions.
E.g. `th.flurd` is only available on harts that implement the `rv64i` base
and the `D` double-precision floating-point extensions.

=== Availability

Expand Down

0 comments on commit 354b417

Please sign in to comment.