Skip to content

Commit 30a6c41

Browse files
authored
Umbrella extensions shouldn't define instructions (#435)
* Extension A doesn't define any instructions (anymore) Some instructions claim to be defined by the "A" extension or another extension. Extension A was split into two "sub-extensions", "Zaamo" and "Zalrsc", then defined to simply encompass both sub-extensions. Since these instructions are actually now defined by the sub-extensions, the instructions should only claim to be defined by them. Also, move the instruction YAML files from `arch/inst/A` to their new respective directories `arch/inst/{Zaamo,Zalrsc}`. * Extension B doesn't define any instructions (anymore) Some instructions claim to be defined by the "B" extension. Extension B was split into four "sub-extensions": "Zba", "Zbb", and "Zbs", then defined to simply encompass these sub-extensions. Additionally, ratified extensions "Zbc", "Zbkb", "Zbkc", and "Zbkx" are under the "B" umbrella (at least in the ISA 20240411, these are all in Chapter 28 "B" Extension for Bit Manipulation, Version 1.0.0", but these 3 extensions are shown only as "frozen"). Since these instructions are actually now defined by the sub-extensions, the instructions should only claim to be defined by them. Also, move the instruction YAML files from `arch/inst/B` to their new respective directories `arch/inst/{Zba,Zbb,Zbc,Zbs,Zbkb,Zbkc,Zbkx}`, when there is only one defining extension. Some instructions are defined by multiple extensions. These are left in the `arch/inst/B` directory, for lack of an unambiguously better location. * Extensions Zk, Zkn, Zks don't define any instructions Some instructions claim to be defined by the "Zk/Zkn/Zks" extensions. Remove these claims. Also, move the instruction YAML files from `arch/inst/Zk` to their new respective directories `arch/inst/{Zknd,Zkne,Zbkb}`, when there is only one defining extension. Some instructions are defined by multiple extensions. These are moved to the `arch/inst/Zkn` directory, for lack of an unambiguously better location. * Extensions Zvkn, Zvks don't define any instructions Some instructions claim to be defined by the "Zvkn/Zvks" extensions. Remove these claims. Also, move some instruction YAML files to their new respective directories `arch/inst/{Zvkned,Zvknha}`.
1 parent ca77a99 commit 30a6c41

File tree

127 files changed

+128
-241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+128
-241
lines changed

arch/inst/B/andn.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ description: |
88
This instruction performs the bitwise logical AND operation between `rs1` and the
99
bitwise inversion of `rs2`.
1010
definedBy:
11-
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
11+
anyOf: [Zbb, Zbkb]
1212
assembly: xd, xs1, xs2
1313
encoding:
1414
match: 0100000----------111-----0110011

arch/inst/B/clmul.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ long_name: Carry-less multiply (low-part)
77
description: |
88
`clmul` produces the lower half of the 2*XLEN carry-less product
99
definedBy:
10-
anyOf: [Zbc, Zbkc, Zk, Zkn, Zks]
10+
anyOf: [Zbc, Zbkc]
1111
assembly: xd, xs1, xs2
1212
encoding:
1313
match: 0000101----------001-----0110011

arch/inst/B/clmulh.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ long_name: Carry-less multiply (high-part)
77
description: |
88
`clmulh` produces the upper half of the 2*XLEN carry-less product
99
definedBy:
10-
anyOf: [Zbc, Zbkc, Zk, Zkn, Zks]
10+
anyOf: [Zbc, Zbkc]
1111
assembly: xd, xs1, xs2
1212
encoding:
1313
match: 0000101----------011-----0110011

arch/inst/B/orn.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ long_name: OR with inverted operand
77
description: |
88
This instruction performs the bitwise logical OR operation between rs1 and the bitwise inversion of rs2.
99
definedBy:
10-
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
10+
anyOf: [Zbb, Zbkb]
1111
assembly: xd, xs1, xs2
1212
encoding:
1313
match: 0100000----------110-----0110011

arch/inst/B/rev8.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ description: |
1515
and halfword-sized byte-reversal, perform a `rev8 rd,rs` followed by a `srai rd,rd,K`, where K
1616
is XLEN-32 and XLEN-16, respectively.
1717
definedBy:
18-
anyOf: [B, Zbb, Zbkb]
18+
anyOf: [Zbb, Zbkb]
1919
assembly: xd, xs1
2020
encoding:
2121
RV32:

arch/inst/B/rol.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ long_name: Rotate left (Register)
77
description: |
88
This instruction performs a rotate left of rs1 by the amount in least-significant `log2(XLEN)` bits of rs2.
99
definedBy:
10-
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
10+
anyOf: [Zbb, Zbkb]
1111
assembly: xd, xs1, xs2
1212
encoding:
1313
match: 0110000----------001-----0110011

arch/inst/B/rolw.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ description: |
88
This instruction performs a rotate left of the least-significant word of rs1 by the amount in least-significant 5 bits of rs2.
99
The resulting word value is sign-extended by copying bit 31 to all of the more-significant bits.
1010
definedBy:
11-
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
11+
anyOf: [Zbb, Zbkb]
1212
assembly: xd, xs1, xs2
1313
base: 64
1414
encoding:

arch/inst/B/ror.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ long_name: Rotate right (Register)
77
description: |
88
This instruction performs a rotate right of rs1 by the amount in least-significant `log2(XLEN)` bits of rs2.
99
definedBy:
10-
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
10+
anyOf: [Zbb, Zbkb]
1111
assembly: xd, xs1, xs2
1212
encoding:
1313
match: 0110000----------101-----0110011

arch/inst/B/rori.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ description: |
88
This instruction performs a rotate right of rs1 by the amount in the least-significant log2(XLEN) bits of shamt.
99
For RV32, the encodings corresponding to shamt[5]=1 are reserved.
1010
definedBy:
11-
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
11+
anyOf: [Zbb, Zbkb]
1212
assembly: xd, xs1, shamt
1313
encoding:
1414
RV32:

arch/inst/B/roriw.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ description: |
99
the least-significant log2(XLEN) bits of shamt. The resulting word value is sign-extended by
1010
copying bit 31 to all of the more-significant bits.
1111
definedBy:
12-
anyOf: [B, Zbb, Zbkb, Zk, Zkn, Zks]
12+
anyOf: [Zbb, Zbkb]
1313
assembly: xd, xs1, shamt
1414
base: 64
1515
encoding:

0 commit comments

Comments
 (0)