Skip to content

Commit 27595ba

Browse files
committed
fix(data): fix field names to be closer to operands
- `dret`, `mnret`, and `sctrclr` take no operands. - `sspush` and `sspopchk` are each single mnemonics that take a very restricted set of operand values. Also include a bit of documentation. - `vaeskf1.vi`, `vaeskf2.vi`, `vsm3c.vi`, `vsm4k.vi`, `vwsll.vi`: renamed field to match operand.
1 parent b7f93d8 commit 27595ba

File tree

17 files changed

+106
-197
lines changed

17 files changed

+106
-197
lines changed

backends/instructions_appendix/all_instructions.golden.adoc

Lines changed: 35 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -7146,9 +7146,6 @@ Included in::
71467146
Synopsis::
71477147
No synopsis available
71487148

7149-
Assembly::
7150-
dret dret
7151-
71527149
Encoding::
71537150
[wavedrom, ,svg,subs='attributes',width="100%"]
71547151
....
@@ -15642,9 +15639,6 @@ Included in::
1564215639
Synopsis::
1564315640
Machine mode resume from the RNMI or Double Trap handler
1564415641

15645-
Assembly::
15646-
mnret mnret
15647-
1564815642
Encoding::
1564915643
[wavedrom, ,svg,subs='attributes',width="100%"]
1565015644
....
@@ -17191,9 +17185,6 @@ Included in::
1719117185
Synopsis::
1719217186
No synopsis available
1719317187

17194-
Assembly::
17195-
sctrclr sctrclr
17196-
1719717188
Encoding::
1719817189
[wavedrom, ,svg,subs='attributes',width="100%"]
1719917190
....
@@ -19593,60 +19584,35 @@ Included in::
1959319584
|===
1959419585

1959519586

19596-
[#udb:doc:inst:sspopchk_x1]
19597-
== sspopchk.x1
19587+
[#udb:doc:inst:sspopchk]
19588+
== sspopchk
1959819589

1959919590
Synopsis::
19600-
No synopsis available
19591+
Shadow Stack Pop
1960119592

1960219593
Assembly::
19603-
sspopchk.x1 sspopchk_x1
19594+
sspopchk xs1
1960419595

1960519596
Encoding::
1960619597
[wavedrom, ,svg,subs='attributes',width="100%"]
1960719598
....
19608-
{"reg":[{"bits":32,"name": 0xcdc0c073,"type":2}]}
19599+
{"reg":[{"bits":15,"name": 0x4033,"type":2},{"bits":5,"name": "xs1 != {0,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}","type":4},{"bits":12,"name": 0xcdc,"type":2}]}
1960919600
....
1961019601

1961119602
Description::
19612-
No description available.
19603+
A shadow stack pop operation is defined as an XLEN wide read from the current
19604+
top of the shadow stack followed by an increment of the ssp by XLEN/8.
1961319605

19606+
Only x1 and x5 registers are supported as xs1 for SSPOPCHK.
1961419607

19615-
Decode Variables::
19616-
sspopchk.x1 has no decode variables.
1961719608

19618-
Included in::
19619-
[options="autowrap,autowidth"]
19609+
Decode Variables::
19610+
[width="100%", cols="1,2", options="header"]
1962019611
|===
19621-
| Extension | Version
19622-
19623-
| *Zicfiss* | ~> 1.0.0
19624-
19612+
|Variable Name |Location
19613+
|xs1 |$encoding[19:15]
1962519614
|===
1962619615

19627-
19628-
[#udb:doc:inst:sspopchk_x5]
19629-
== sspopchk.x5
19630-
19631-
Synopsis::
19632-
No synopsis available
19633-
19634-
Assembly::
19635-
sspopchk.x5 sspopchk_x5
19636-
19637-
Encoding::
19638-
[wavedrom, ,svg,subs='attributes',width="100%"]
19639-
....
19640-
{"reg":[{"bits":32,"name": 0xcdc2c073,"type":2}]}
19641-
....
19642-
19643-
Description::
19644-
No description available.
19645-
19646-
19647-
Decode Variables::
19648-
sspopchk.x5 has no decode variables.
19649-
1965019616
Included in::
1965119617
[options="autowrap,autowidth"]
1965219618
|===
@@ -19657,60 +19623,36 @@ Included in::
1965719623
|===
1965819624

1965919625

19660-
[#udb:doc:inst:sspush_x1]
19661-
== sspush.x1
19626+
[#udb:doc:inst:sspush]
19627+
== sspush
1966219628

1966319629
Synopsis::
19664-
No synopsis available
19630+
Shadow Stack Push
1966519631

1966619632
Assembly::
19667-
sspush.x1 sspush_x1
19633+
sspush xs2
1966819634

1966919635
Encoding::
1967019636
[wavedrom, ,svg,subs='attributes',width="100%"]
1967119637
....
19672-
{"reg":[{"bits":32,"name": 0xce104073,"type":2}]}
19638+
{"reg":[{"bits":20,"name": 0x4073,"type":2},{"bits":5,"name": "xs2 != {0,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31}","type":4},{"bits":7,"name": 0x67,"type":2}]}
1967319639
....
1967419640

1967519641
Description::
19676-
No description available.
19642+
A shadow stack push operation is defined as decrement of the ssp by XLEN/8
19643+
followed by a store of the value in the link register to memory at the new
19644+
top of the shadow stack.
1967719645

19646+
Only x1 and x5 registers are supported as xs2 for SSPUSH.
1967819647

19679-
Decode Variables::
19680-
sspush.x1 has no decode variables.
1968119648

19682-
Included in::
19683-
[options="autowrap,autowidth"]
19649+
Decode Variables::
19650+
[width="100%", cols="1,2", options="header"]
1968419651
|===
19685-
| Extension | Version
19686-
19687-
| *Zicfiss* | ~> 1.0.0
19688-
19652+
|Variable Name |Location
19653+
|xs2 |$encoding[24:20]
1968919654
|===
1969019655

19691-
19692-
[#udb:doc:inst:sspush_x5]
19693-
== sspush.x5
19694-
19695-
Synopsis::
19696-
No synopsis available
19697-
19698-
Assembly::
19699-
sspush.x5 sspush_x5
19700-
19701-
Encoding::
19702-
[wavedrom, ,svg,subs='attributes',width="100%"]
19703-
....
19704-
{"reg":[{"bits":32,"name": 0xce504073,"type":2}]}
19705-
....
19706-
19707-
Description::
19708-
No description available.
19709-
19710-
19711-
Decode Variables::
19712-
sspush.x5 has no decode variables.
19713-
1971419656
Included in::
1971519657
[options="autowrap,autowidth"]
1971619658
|===
@@ -20641,7 +20583,7 @@ vaeskf1.vi vd, vs2, imm
2064120583
Encoding::
2064220584
[wavedrom, ,svg,subs='attributes',width="100%"]
2064320585
....
20644-
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "zimm5","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x45,"type":2}]}
20586+
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "imm","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x45,"type":2}]}
2064520587
....
2064620588

2064720589
Description::
@@ -20653,7 +20595,7 @@ Decode Variables::
2065320595
|===
2065420596
|Variable Name |Location
2065520597
|vs2 |$encoding[24:20]
20656-
|zimm5 |$encoding[19:15]
20598+
|imm |$encoding[19:15]
2065720599
|vd |$encoding[11:7]
2065820600
|===
2065920601

@@ -20679,7 +20621,7 @@ vaeskf2.vi vd, vs2, imm
2067920621
Encoding::
2068020622
[wavedrom, ,svg,subs='attributes',width="100%"]
2068120623
....
20682-
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "zimm5","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x55,"type":2}]}
20624+
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "imm","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x55,"type":2}]}
2068320625
....
2068420626

2068520627
Description::
@@ -20691,7 +20633,7 @@ Decode Variables::
2069120633
|===
2069220634
|Variable Name |Location
2069320635
|vs2 |$encoding[24:20]
20694-
|zimm5 |$encoding[19:15]
20636+
|imm |$encoding[19:15]
2069520637
|vd |$encoding[11:7]
2069620638
|===
2069720639

@@ -38558,7 +38500,7 @@ vsm3c.vi vd, vs2, imm
3855838500
Encoding::
3855938501
[wavedrom, ,svg,subs='attributes',width="100%"]
3856038502
....
38561-
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "zimm5","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x57,"type":2}]}
38503+
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "imm","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x57,"type":2}]}
3856238504
....
3856338505

3856438506
Description::
@@ -38570,7 +38512,7 @@ Decode Variables::
3857038512
|===
3857138513
|Variable Name |Location
3857238514
|vs2 |$encoding[24:20]
38573-
|zimm5 |$encoding[19:15]
38515+
|imm |$encoding[19:15]
3857438516
|vd |$encoding[11:7]
3857538517
|===
3857638518

@@ -38638,7 +38580,7 @@ vsm4k.vi vd, vs2, imm
3863838580
Encoding::
3863938581
[wavedrom, ,svg,subs='attributes',width="100%"]
3864038582
....
38641-
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "zimm5","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x43,"type":2}]}
38583+
{"reg":[{"bits":7,"name": 0x77,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x2,"type":2},{"bits":5,"name": "imm","type":4},{"bits":5,"name": "vs2","type":4},{"bits":7,"name": 0x43,"type":2}]}
3864238584
....
3864338585

3864438586
Description::
@@ -38650,7 +38592,7 @@ Decode Variables::
3865038592
|===
3865138593
|Variable Name |Location
3865238594
|vs2 |$encoding[24:20]
38653-
|zimm5 |$encoding[19:15]
38595+
|imm |$encoding[19:15]
3865438596
|vd |$encoding[11:7]
3865538597
|===
3865638598

@@ -45241,7 +45183,7 @@ vwsll.vi vd, vs2, imm, vm
4524145183
Encoding::
4524245184
[wavedrom, ,svg,subs='attributes',width="100%"]
4524345185
....
45244-
{"reg":[{"bits":7,"name": 0x57,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x3,"type":2},{"bits":5,"name": "zimm5","type":4},{"bits":5,"name": "vs2","type":4},{"bits":1,"name": "vm","type":4},{"bits":6,"name": 0x35,"type":2}]}
45186+
{"reg":[{"bits":7,"name": 0x57,"type":2},{"bits":5,"name": "vd","type":4},{"bits":3,"name": 0x3,"type":2},{"bits":5,"name": "imm","type":4},{"bits":5,"name": "vs2","type":4},{"bits":1,"name": "vm","type":4},{"bits":6,"name": 0x35,"type":2}]}
4524545187
....
4524645188

4524745189
Description::
@@ -45254,7 +45196,7 @@ Decode Variables::
4525445196
|Variable Name |Location
4525545197
|vm |$encoding[25]
4525645198
|vs2 |$encoding[24:20]
45257-
|zimm5 |$encoding[19:15]
45199+
|imm |$encoding[19:15]
4525845200
|vd |$encoding[11:7]
4525945201
|===
4526045202

spec/std/isa/inst/Sdext/dret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ long_name: No synopsis available
1010
description: |
1111
No description available.
1212
definedBy: Sdext
13-
assembly: dret
13+
assembly: ""
1414
encoding:
1515
match: "01111011001000000000000001110011"
1616
variables: []

spec/std/isa/inst/Smdbltrp/sctrclr.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ long_name: No synopsis available
1010
description: |
1111
No description available.
1212
definedBy: Smdbltrp
13-
assembly: sctrclr
13+
assembly: ""
1414
encoding:
1515
match: "00010000010000000000000001110011"
1616
variables: []

spec/std/isa/inst/Smrnmi/mnret.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ description: |
1414
also sets mstatus.MPRV to 0. If the Zicfilp extension is implemented, then if the new privileged mode is
1515
y, MNRET sets ELP to the logical AND of yLPE (see Section 22.1.1) and mnstatus.MNPELP.
1616
definedBy: Smrnmi
17-
assembly: mnret
17+
assembly: ""
1818
encoding:
1919
match: "01110000001000000000000001110011"
2020
variables: []

spec/std/isa/inst/Zicfiss/sspopchk.x1.yaml

Lines changed: 0 additions & 23 deletions
This file was deleted.

spec/std/isa/inst/Zicfiss/sspopchk.x5.yaml

Lines changed: 0 additions & 23 deletions
This file was deleted.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
2+
# SPDX-License-Identifier: BSD-3-Clause-Clear
3+
4+
# yaml-language-server: $schema=../../../../schemas/inst_schema.json
5+
6+
$schema: inst_schema.json#
7+
kind: instruction
8+
name: sspopchk
9+
long_name: Shadow Stack Pop
10+
description: |
11+
A shadow stack pop operation is defined as an XLEN wide read from the current
12+
top of the shadow stack followed by an increment of the ssp by XLEN/8.
13+
14+
Only x1 and x5 registers are supported as xs1 for SSPOPCHK.
15+
definedBy: Zicfiss
16+
assembly: xs1
17+
encoding:
18+
match: 110011011100-----100000000110011
19+
variables:
20+
- name: xs1
21+
location: 19-15
22+
# prettier-ignore
23+
not: [ 0, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 ]
24+
access:
25+
s: always
26+
u: always
27+
vs: always
28+
vu: always
29+
data_independent_timing: false
30+
operation(): |

spec/std/isa/inst/Zicfiss/sspush.x1.yaml

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)