Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion arch/inst/B/andn.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ andn:
This instruction performs the bitwise logical AND operation between `rs1` and the
bitwise inversion of `rs2`.
definedBy:
anyOf: [B, Zbb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
encoding:
match: 0100000----------111-----0110011
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/clmul.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ clmul:
description: |
`clmul` produces the lower half of the 2*XLEN carry-less product
definedBy:
anyOf: [B, Zbc]
anyOf: [B, Zbc, Zbkc, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
encoding:
match: 0000101----------001-----0110011
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/clmulh.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ clmulh:
description: |
`clmulh` produces the upper half of the 2*XLEN carry-less product
definedBy:
anyOf: [B, Zbc]
anyOf: [B, Zbc, Zbkc, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
encoding:
match: 0000101----------011-----0110011
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/orn.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ orn:
description: |
This instruction performs the bitwise logical OR operation between rs1 and the bitwise inversion of rs2.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
encoding:
match: 0100000----------110-----0110011
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/rol.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ rol:
description: |
This instruction performs a rotate left of rs1 by the amount in least-significant `log2(XLEN)` bits of rs2.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
encoding:
match: 0110000----------001-----0110011
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/rolw.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ rolw:
This instruction performs a rotate left of the least-significant word of rs1 by the amount in least-significant 5 bits of rs2.
The resulting word value is sign-extended by copying bit 31 to all of the more-significant bits.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
base: 64
encoding:
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/ror.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ror:
description: |
This instruction performs a rotate right of rs1 by the amount in least-significant `log2(XLEN)` bits of rs2.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
encoding:
match: 0110000----------101-----0110011
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/rori.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ rori:
This instruction performs a rotate right of rs1 by the amount in the least-significant log2(XLEN) bits of shamt.
For RV32, the encodings corresponding to shamt[5]=1 are reserved.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, shamt
encoding:
RV32:
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/roriw.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ roriw:
the least-significant log2(XLEN) bits of shamt. The resulting word value is sign-extended by
copying bit 31 to all of the more-significant bits.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, shamt
base: 64
encoding:
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/rorw.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ rorw:
least-significant 5 bits of rs2. The resultant word is sign-extended by copying bit 31 to all
of the more-significant bits.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
base: 64
encoding:
Expand Down
2 changes: 1 addition & 1 deletion arch/inst/B/xnor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ xnor:
description: |
This instruction performs the bit-wise exclusive-NOR operation on rs1 and rs2.
definedBy:
anyOf: [B, Zbb, Zbkb]
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
assembly: xd, xs1, xs2
encoding:
match: 0100000----------100-----0110011
Expand Down
5 changes: 3 additions & 2 deletions arch/inst/B/zext.h.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ zext.h:
The *zext.h* instruction is a pseudo-op for `pack` when `Zbkb` is implemented and XLEN == 32.

[NOTE]
The *zext.h* instruction is a pseduo-op for `packw` when `Zbkb` is implmeneted and XLEN == 64.
The *zext.h* instruction is a pseudo-op for `packw` when `Zbkb` is implemented and XLEN == 64.
definedBy:
anyOf: [B, Zbb]
encoding:
Expand All @@ -28,7 +28,8 @@ zext.h:
location: 19-15
- name: rd
location: 11-7
excludedBy: Zbkb # zext.h is a pseduo-op for pack/packw when Zbkb is implemented
excludedBy:
anyOf: [Zk, Zkn, Zks, Zbkb] # zext.h instruction is a pseudo-op for `packw` when `Zbkb` is implemented
assembly: xd, xs1
access:
s: always
Expand Down
94 changes: 94 additions & 0 deletions arch/inst/Zimop/mop.r.n.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# yaml-language-server: $schema=../../../schemas/inst_schema.json

mop.r.n:
long_name: No synopsis available.
description: |
No description available.
definedBy: Zimop
assembly: mop_r_t_30, mop_r_t_27_26, mop_r_t_21_20, xd, xs1
encoding:
match: 1-00--0111-------100-----1110011
variables:
- name: mop_r_t_30
location: 30-30
- name: mop_r_t_27_26
location: 27-26
- name: mop_r_t_21_20
location: 21-20
- name: rs1
location: 19-15
- name: rd
location: 11-7
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: false
pseudoinstructions:
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x0)
to: mop.r.0
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x0)
to: mop.r.1
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x0)
to: mop.r.2
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x0)
to: mop.r.3
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x1)
to: mop.r.4
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x1)
to: mop.r.5
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x1)
to: mop.r.6
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x1)
to: mop.r.7
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x2)
to: mop.r.8
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x2)
to: mop.r.9
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x2)
to: mop.r.10
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x2)
to: mop.r.11
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x3)
to: mop.r.12
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x3)
to: mop.r.13
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x3)
to: mop.r.14
- when: (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x3)
to: mop.r.15
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x0)
to: mop.r.16
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x0)
to: mop.r.17
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x0)
to: mop.r.18
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x0)
to: mop.r.19
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x1)
to: mop.r.20
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x1)
to: mop.r.21
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x1)
to: mop.r.22
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x1)
to: mop.r.23
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x2)
to: mop.r.24
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x2)
to: mop.r.25
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x2)
to: mop.r.26
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x2)
to: mop.r.27
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x3)
to: mop.r.28
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x3)
to: mop.r.29
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x3)
to: mop.r.30
- when: (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x3)
to: mop.r.31
operation(): |

46 changes: 46 additions & 0 deletions arch/inst/Zimop/mop.rr.n.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# yaml-language-server: $schema=../../../schemas/inst_schema.json

mop.rr.n:
long_name: No synopsis available.
description: |
No description available.
definedBy: Zimop
assembly: mop_rr_t_30, mop_rr_t_27_26, xd, xs1, xs2
encoding:
match: 1-00--1----------100-----1110011
variables:
- name: mop_rr_t_30
location: 30-30
- name: mop_rr_t_27_26
location: 27-26
- name: rs2
location: 24-20
- name: rs1
location: 19-15
- name: rd
location: 11-7
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: false
pseudoinstructions:
- when: (mop_rr_t_30 == 0x0) && (mop_rr_t_27_26 == 0x0)
to: mop.rr.0
- when: (mop_rr_t_30 == 0x0) && (mop_rr_t_27_26 == 0x1)
to: mop.rr.1
- when: (mop_rr_t_30 == 0x0) && (mop_rr_t_27_26 == 0x2)
to: mop.rr.2
- when: (mop_rr_t_30 == 0x0) && (mop_rr_t_27_26 == 0x3)
to: mop.rr.3
- when: (mop_rr_t_30 == 0x1) && (mop_rr_t_27_26 == 0x0)
to: mop.rr.4
- when: (mop_rr_t_30 == 0x1) && (mop_rr_t_27_26 == 0x1)
to: mop.rr.5
- when: (mop_rr_t_30 == 0x1) && (mop_rr_t_27_26 == 0x2)
to: mop.rr.6
- when: (mop_rr_t_30 == 0x1) && (mop_rr_t_27_26 == 0x3)
to: mop.rr.7
operation(): |

29 changes: 29 additions & 0 deletions arch/inst/Zk/aes32dsi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# yaml-language-server: $schema=../../../schemas/inst_schema.json

aes32dsi:
long_name: No synopsis available.
description: |
No description available.
definedBy:
anyOf: [Zk, Zkn, Zknd]
base: 32
assembly: xd, xs1, xs2, bs
encoding:
match: --10101----------000-----0110011
variables:
- name: bs
location: 31-30
- name: rs2
location: 24-20
- name: rs1
location: 19-15
- name: rd
location: 11-7
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: true
operation(): |

29 changes: 29 additions & 0 deletions arch/inst/Zk/aes32dsmi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# yaml-language-server: $schema=../../../schemas/inst_schema.json

aes32dsmi:
long_name: No synopsis available.
description: |
No description available.
definedBy:
anyOf: [Zk, Zkn, Zknd]
base: 32
assembly: xd, xs1, xs2, bs
encoding:
match: --10111----------000-----0110011
variables:
- name: bs
location: 31-30
- name: rs2
location: 24-20
- name: rs1
location: 19-15
- name: rd
location: 11-7
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: true
operation(): |

29 changes: 29 additions & 0 deletions arch/inst/Zk/aes32esi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# yaml-language-server: $schema=../../../schemas/inst_schema.json

aes32esi:
long_name: No synopsis available.
description: |
No description available.
definedBy:
anyOf: [Zk, Zkn, Zkne]
base: 32
assembly: xd, xs1, xs2, bs
encoding:
match: --10001----------000-----0110011
variables:
- name: bs
location: 31-30
- name: rs2
location: 24-20
- name: rs1
location: 19-15
- name: rd
location: 11-7
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: true
operation(): |

29 changes: 29 additions & 0 deletions arch/inst/Zk/aes32esmi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# yaml-language-server: $schema=../../../schemas/inst_schema.json

aes32esmi:
long_name: No synopsis available.
description: |
No description available.
definedBy:
anyOf: [Zk, Zkn, Zkne]
base: 32
assembly: xd, xs1, xs2, bs
encoding:
match: --10011----------000-----0110011
variables:
- name: bs
location: 31-30
- name: rs2
location: 24-20
- name: rs1
location: 19-15
- name: rd
location: 11-7
access:
s: always
u: always
vs: always
vu: always
data_independent_timing: true
operation(): |

Loading
Loading