@@ -7146,9 +7146,6 @@ Included in::
7146
7146
Synopsis::
7147
7147
No synopsis available
7148
7148
7149
- Assembly::
7150
- dret dret
7151
-
7152
7149
Encoding::
7153
7150
[wavedrom, ,svg,subs='attributes',width="100%"]
7154
7151
....
@@ -15642,9 +15639,6 @@ Included in::
15642
15639
Synopsis::
15643
15640
Machine mode resume from the RNMI or Double Trap handler
15644
15641
15645
- Assembly::
15646
- mnret mnret
15647
-
15648
15642
Encoding::
15649
15643
[wavedrom, ,svg,subs='attributes',width="100%"]
15650
15644
....
@@ -17191,9 +17185,6 @@ Included in::
17191
17185
Synopsis::
17192
17186
No synopsis available
17193
17187
17194
- Assembly::
17195
- sctrclr sctrclr
17196
-
17197
17188
Encoding::
17198
17189
[wavedrom, ,svg,subs='attributes',width="100%"]
17199
17190
....
@@ -19593,60 +19584,35 @@ Included in::
19593
19584
|===
19594
19585
19595
19586
19596
- [#udb:doc:inst:sspopchk_x1 ]
19597
- == sspopchk.x1
19587
+ [#udb:doc:inst:sspopchk ]
19588
+ == sspopchk
19598
19589
19599
19590
Synopsis::
19600
- No synopsis available
19591
+ Shadow Stack Pop
19601
19592
19602
19593
Assembly::
19603
- sspopchk.x1 sspopchk_x1
19594
+ sspopchk xs1
19604
19595
19605
19596
Encoding::
19606
19597
[wavedrom, ,svg,subs='attributes',width="100%"]
19607
19598
....
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}]}
19609
19600
....
19610
19601
19611
19602
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.
19613
19605
19606
+ Only x1 and x5 registers are supported as xs1 for SSPOPCHK.
19614
19607
19615
- Decode Variables::
19616
- sspopchk.x1 has no decode variables.
19617
19608
19618
- Included in ::
19619
- [options="autowrap,autowidth "]
19609
+ Decode Variables ::
19610
+ [width="100%", cols="1,2", options="header "]
19620
19611
|===
19621
- | Extension | Version
19622
-
19623
- | *Zicfiss* | ~> 1.0.0
19624
-
19612
+ |Variable Name |Location
19613
+ |xs1 |$encoding[19:15]
19625
19614
|===
19626
19615
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
-
19650
19616
Included in::
19651
19617
[options="autowrap,autowidth"]
19652
19618
|===
@@ -19657,60 +19623,36 @@ Included in::
19657
19623
|===
19658
19624
19659
19625
19660
- [#udb:doc:inst:sspush_x1 ]
19661
- == sspush.x1
19626
+ [#udb:doc:inst:sspush ]
19627
+ == sspush
19662
19628
19663
19629
Synopsis::
19664
- No synopsis available
19630
+ Shadow Stack Push
19665
19631
19666
19632
Assembly::
19667
- sspush.x1 sspush_x1
19633
+ sspush xs2
19668
19634
19669
19635
Encoding::
19670
19636
[wavedrom, ,svg,subs='attributes',width="100%"]
19671
19637
....
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}]}
19673
19639
....
19674
19640
19675
19641
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.
19677
19645
19646
+ Only x1 and x5 registers are supported as xs2 for SSPUSH.
19678
19647
19679
- Decode Variables::
19680
- sspush.x1 has no decode variables.
19681
19648
19682
- Included in ::
19683
- [options="autowrap,autowidth "]
19649
+ Decode Variables ::
19650
+ [width="100%", cols="1,2", options="header "]
19684
19651
|===
19685
- | Extension | Version
19686
-
19687
- | *Zicfiss* | ~> 1.0.0
19688
-
19652
+ |Variable Name |Location
19653
+ |xs2 |$encoding[24:20]
19689
19654
|===
19690
19655
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
-
19714
19656
Included in::
19715
19657
[options="autowrap,autowidth"]
19716
19658
|===
@@ -20641,7 +20583,7 @@ vaeskf1.vi vd, vs2, imm
20641
20583
Encoding::
20642
20584
[wavedrom, ,svg,subs='attributes',width="100%"]
20643
20585
....
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}]}
20645
20587
....
20646
20588
20647
20589
Description::
@@ -20653,7 +20595,7 @@ Decode Variables::
20653
20595
|===
20654
20596
|Variable Name |Location
20655
20597
|vs2 |$encoding[24:20]
20656
- |zimm5 |$encoding[19:15]
20598
+ |imm |$encoding[19:15]
20657
20599
|vd |$encoding[11:7]
20658
20600
|===
20659
20601
@@ -20679,7 +20621,7 @@ vaeskf2.vi vd, vs2, imm
20679
20621
Encoding::
20680
20622
[wavedrom, ,svg,subs='attributes',width="100%"]
20681
20623
....
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}]}
20683
20625
....
20684
20626
20685
20627
Description::
@@ -20691,7 +20633,7 @@ Decode Variables::
20691
20633
|===
20692
20634
|Variable Name |Location
20693
20635
|vs2 |$encoding[24:20]
20694
- |zimm5 |$encoding[19:15]
20636
+ |imm |$encoding[19:15]
20695
20637
|vd |$encoding[11:7]
20696
20638
|===
20697
20639
@@ -38558,7 +38500,7 @@ vsm3c.vi vd, vs2, imm
38558
38500
Encoding::
38559
38501
[wavedrom, ,svg,subs='attributes',width="100%"]
38560
38502
....
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}]}
38562
38504
....
38563
38505
38564
38506
Description::
@@ -38570,7 +38512,7 @@ Decode Variables::
38570
38512
|===
38571
38513
|Variable Name |Location
38572
38514
|vs2 |$encoding[24:20]
38573
- |zimm5 |$encoding[19:15]
38515
+ |imm |$encoding[19:15]
38574
38516
|vd |$encoding[11:7]
38575
38517
|===
38576
38518
@@ -38638,7 +38580,7 @@ vsm4k.vi vd, vs2, imm
38638
38580
Encoding::
38639
38581
[wavedrom, ,svg,subs='attributes',width="100%"]
38640
38582
....
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}]}
38642
38584
....
38643
38585
38644
38586
Description::
@@ -38650,7 +38592,7 @@ Decode Variables::
38650
38592
|===
38651
38593
|Variable Name |Location
38652
38594
|vs2 |$encoding[24:20]
38653
- |zimm5 |$encoding[19:15]
38595
+ |imm |$encoding[19:15]
38654
38596
|vd |$encoding[11:7]
38655
38597
|===
38656
38598
@@ -45241,7 +45183,7 @@ vwsll.vi vd, vs2, imm, vm
45241
45183
Encoding::
45242
45184
[wavedrom, ,svg,subs='attributes',width="100%"]
45243
45185
....
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}]}
45245
45187
....
45246
45188
45247
45189
Description::
@@ -45254,7 +45196,7 @@ Decode Variables::
45254
45196
|Variable Name |Location
45255
45197
|vm |$encoding[25]
45256
45198
|vs2 |$encoding[24:20]
45257
- |zimm5 |$encoding[19:15]
45199
+ |imm |$encoding[19:15]
45258
45200
|vd |$encoding[11:7]
45259
45201
|===
45260
45202
0 commit comments