Skip to content

Commit 04c2909

Browse files
authored
fix(data): profiles: clean up after multiple inheritance (#1230)
Most profiles don't automatically incorporate optional extensions from "ancestors", so more extensions need to be removed after profile inheritance. For example, in UDB, profile RVA23S64 inherits from both RVB23S64 and RVA23U64. However, in the profiles documentation it (roughly) inherits from only RVA23U64, and then only "all the mandatory unprivileged extensions". So, the optional extensions need to be handled more explicitly, and many need to be removed. Fixes #1195 --------- Signed-off-by: Paul A. Clarke <[email protected]>
1 parent 0923707 commit 04c2909

File tree

6 files changed

+54
-6
lines changed

6 files changed

+54
-6
lines changed

spec/std/isa/ext/Za64rs.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ versions:
2121
- version: "1.0.0"
2222
state: ratified
2323
ratification_date: null
24+
implies:
25+
- name: Za128rs
26+
version: "1.0.0"
2427
param_constraints:
2528
LRSC_RESERVATION_STRATEGY:
2629
schema:

spec/std/isa/profile/RVA22S64.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,11 @@ extensions:
2020
$inherits:
2121
- "profile/RVA20S64.yaml#/extensions"
2222
- "profile/RVA22U64.yaml#/extensions"
23+
$remove:
24+
- Zfh
25+
- V
26+
- Zkn
27+
- Zks
2328
S:
2429
presence: mandatory
2530
version: "= 1.12"

spec/std/isa/profile/RVA22U64.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ introduction: |
1818
terms of the amount of software that targets this profile.
1919
extensions:
2020
$inherits: "profile/RVA20U64.yaml#/extensions"
21+
Za64rs:
22+
presence: mandatory
23+
version: "~>1.0"
24+
note: |
25+
Reservation sets are contiguous, naturally aligned, and a maximum of 64 bytes
2126
Zihpm:
2227
presence: mandatory
2328
version: "= 2.0"

spec/std/isa/profile/RVA23S64.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,24 @@ extensions:
2323
$inherits:
2424
- "profile/RVB23S64.yaml#/extensions"
2525
- "profile/RVA23U64.yaml#/extensions"
26+
$remove:
27+
- Zfh
28+
- Zkn
29+
- Zks
30+
- Zvkng
31+
- Zvksg
32+
- Zabha
33+
- Zacas
34+
- Ziccamoc
35+
- Zvbc
36+
- Zama16b
37+
- Zbc
38+
- Zicfilp
39+
- Zicfiss
40+
- Zvfh
41+
- Zfbfmin
42+
- Zvfbfmin
43+
- Zvfbfwma
2644

2745
#########################################################################
2846
# MANDATORY extensions in RVA23S64 (that were optional in RVB23S64)

spec/std/isa/profile/RVB23S64.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,29 @@ extensions:
2323
$inherits:
2424
- "profile/RVA22S64.yaml#/extensions"
2525
- "profile/RVB23U64.yaml#/extensions"
26+
$remove:
27+
- V
28+
- Zvfhmin
29+
- Zvbb
30+
- Zvkt
31+
- Supm
32+
- Zvkng
33+
- Zvksg
34+
- Zvkg
35+
- Zvknc
36+
- Zvksc
37+
- Zabha
38+
- Zacas
39+
- Ziccamoc
40+
- Zvbc
41+
- Zama16b
42+
- Zbc
43+
- Zicfilp
44+
- Zicfiss
45+
- Zvfh
46+
- Zfbfmin
47+
- Zvfbfmin
48+
- Zvfbfwma
2649

2750
#########################################################################
2851
# MANDATORY extensions in RVB23 (and RVA23)

spec/std/isa/profile/RVB23U64.yaml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ extensions:
2121
# imported from RVA22U64
2222
#########################################################################
2323
$inherits: "profile/RVA22U64.yaml#/extensions"
24-
$remove: Za128rs
2524

2625
#########################################################################
2726
# MANDATORY extensions in RVB23 (and RVA23)
@@ -61,11 +60,6 @@ extensions:
6160
version: "~>1.0"
6261
note: |
6362
Wait-on-reservation-set (WRS) instructions
64-
Za64rs:
65-
presence: mandatory
66-
version: "~>1.0"
67-
note: |
68-
Reservation sets are contiguous, naturally aligned, and a maximum of 64 bytes
6963
7064
#########################################################################
7165
# OPTIONAL LOCALIZED extensions

0 commit comments

Comments
 (0)