@@ -18268,54 +18268,32 @@ Included in::
18268
18268
|===
18269
18269
18270
18270
18271
- [#udb:doc:inst:sspopchk_x1 ]
18272
- == sspopchk.x1
18271
+ [#udb:doc:inst:sspopchk ]
18272
+ == sspopchk
18273
18273
18274
18274
Synopsis::
18275
- No synopsis available
18275
+ Shadow Stack Pop
18276
18276
18277
18277
Encoding::
18278
18278
[wavedrom, ,svg,subs='attributes',width="100%"]
18279
18279
....
18280
- {"reg":[{"bits":32 ,"name": 0xcdc0c073 ,"type":2}]}
18280
+ {"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}]}
18281
18281
....
18282
18282
18283
18283
Description::
18284
- No description available.
18284
+ A shadow stack pop operation is defined as an XLEN wide read from the current
18285
+ top of the shadow stack followed by an increment of the ssp by XLEN/8.
18285
18286
18287
+ Only x1 and x5 registers are supported as xs1 for SSPOPCHK.
18286
18288
18287
- Decode Variables::
18288
- sspopchk.x1 has no decode variables.
18289
18289
18290
- Included in ::
18291
- [options="autowrap,autowidth "]
18290
+ Decode Variables ::
18291
+ [width="100%", cols="1,2", options="header "]
18292
18292
|===
18293
- | Extension | Version
18294
-
18295
- | *Zicfiss* | ~> 1.0.0
18296
-
18293
+ |Variable Name |Location
18294
+ |xs1 |$encoding[19:15]
18297
18295
|===
18298
18296
18299
-
18300
- [#udb:doc:inst:sspopchk_x5]
18301
- == sspopchk.x5
18302
-
18303
- Synopsis::
18304
- No synopsis available
18305
-
18306
- Encoding::
18307
- [wavedrom, ,svg,subs='attributes',width="100%"]
18308
- ....
18309
- {"reg":[{"bits":32,"name": 0xcdc2c073,"type":2}]}
18310
- ....
18311
-
18312
- Description::
18313
- No description available.
18314
-
18315
-
18316
- Decode Variables::
18317
- sspopchk.x5 has no decode variables.
18318
-
18319
18297
Included in::
18320
18298
[options="autowrap,autowidth"]
18321
18299
|===
@@ -18326,54 +18304,33 @@ Included in::
18326
18304
|===
18327
18305
18328
18306
18329
- [#udb:doc:inst:sspush_x1 ]
18330
- == sspush.x1
18307
+ [#udb:doc:inst:sspush ]
18308
+ == sspush
18331
18309
18332
18310
Synopsis::
18333
- No synopsis available
18311
+ Shadow Stack Push
18334
18312
18335
18313
Encoding::
18336
18314
[wavedrom, ,svg,subs='attributes',width="100%"]
18337
18315
....
18338
- {"reg":[{"bits":32 ,"name": 0xce104073 ,"type":2}]}
18316
+ {"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}]}
18339
18317
....
18340
18318
18341
18319
Description::
18342
- No description available.
18320
+ A shadow stack push operation is defined as decrement of the ssp by XLEN/8
18321
+ followed by a store of the value in the link register to memory at the new
18322
+ top of the shadow stack.
18343
18323
18324
+ Only x1 and x5 registers are supported as xs2 for SSPUSH.
18344
18325
18345
- Decode Variables::
18346
- sspush.x1 has no decode variables.
18347
18326
18348
- Included in ::
18349
- [options="autowrap,autowidth "]
18327
+ Decode Variables ::
18328
+ [width="100%", cols="1,2", options="header "]
18350
18329
|===
18351
- | Extension | Version
18352
-
18353
- | *Zicfiss* | ~> 1.0.0
18354
-
18330
+ |Variable Name |Location
18331
+ |xs2 |$encoding[24:20]
18355
18332
|===
18356
18333
18357
-
18358
- [#udb:doc:inst:sspush_x5]
18359
- == sspush.x5
18360
-
18361
- Synopsis::
18362
- No synopsis available
18363
-
18364
- Encoding::
18365
- [wavedrom, ,svg,subs='attributes',width="100%"]
18366
- ....
18367
- {"reg":[{"bits":32,"name": 0xce504073,"type":2}]}
18368
- ....
18369
-
18370
- Description::
18371
- No description available.
18372
-
18373
-
18374
- Decode Variables::
18375
- sspush.x5 has no decode variables.
18376
-
18377
18334
Included in::
18378
18335
[options="autowrap,autowidth"]
18379
18336
|===
@@ -19229,7 +19186,7 @@ No synopsis available
19229
19186
Encoding::
19230
19187
[wavedrom, ,svg,subs='attributes',width="100%"]
19231
19188
....
19232
- {"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}]}
19189
+ {"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}]}
19233
19190
....
19234
19191
19235
19192
Description::
@@ -19241,7 +19198,7 @@ Decode Variables::
19241
19198
|===
19242
19199
|Variable Name |Location
19243
19200
|vs2 |$encoding[24:20]
19244
- |zimm5 |$encoding[19:15]
19201
+ |imm |$encoding[19:15]
19245
19202
|vd |$encoding[11:7]
19246
19203
|===
19247
19204
@@ -19264,7 +19221,7 @@ No synopsis available
19264
19221
Encoding::
19265
19222
[wavedrom, ,svg,subs='attributes',width="100%"]
19266
19223
....
19267
- {"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}]}
19224
+ {"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}]}
19268
19225
....
19269
19226
19270
19227
Description::
@@ -19276,7 +19233,7 @@ Decode Variables::
19276
19233
|===
19277
19234
|Variable Name |Location
19278
19235
|vs2 |$encoding[24:20]
19279
- |zimm5 |$encoding[19:15]
19236
+ |imm |$encoding[19:15]
19280
19237
|vd |$encoding[11:7]
19281
19238
|===
19282
19239
@@ -35751,7 +35708,7 @@ No synopsis available
35751
35708
Encoding::
35752
35709
[wavedrom, ,svg,subs='attributes',width="100%"]
35753
35710
....
35754
- {"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}]}
35711
+ {"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}]}
35755
35712
....
35756
35713
35757
35714
Description::
@@ -35763,7 +35720,7 @@ Decode Variables::
35763
35720
|===
35764
35721
|Variable Name |Location
35765
35722
|vs2 |$encoding[24:20]
35766
- |zimm5 |$encoding[19:15]
35723
+ |imm |$encoding[19:15]
35767
35724
|vd |$encoding[11:7]
35768
35725
|===
35769
35726
@@ -35825,7 +35782,7 @@ No synopsis available
35825
35782
Encoding::
35826
35783
[wavedrom, ,svg,subs='attributes',width="100%"]
35827
35784
....
35828
- {"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}]}
35785
+ {"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}]}
35829
35786
....
35830
35787
35831
35788
Description::
@@ -35837,7 +35794,7 @@ Decode Variables::
35837
35794
|===
35838
35795
|Variable Name |Location
35839
35796
|vs2 |$encoding[24:20]
35840
- |zimm5 |$encoding[19:15]
35797
+ |imm |$encoding[19:15]
35841
35798
|vd |$encoding[11:7]
35842
35799
|===
35843
35800
@@ -41918,7 +41875,7 @@ No synopsis available
41918
41875
Encoding::
41919
41876
[wavedrom, ,svg,subs='attributes',width="100%"]
41920
41877
....
41921
- {"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}]}
41878
+ {"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}]}
41922
41879
....
41923
41880
41924
41881
Description::
@@ -41931,7 +41888,7 @@ Decode Variables::
41931
41888
|Variable Name |Location
41932
41889
|vm |$encoding[25]
41933
41890
|vs2 |$encoding[24:20]
41934
- |zimm5 |$encoding[19:15]
41891
+ |imm |$encoding[19:15]
41935
41892
|vd |$encoding[11:7]
41936
41893
|===
41937
41894
0 commit comments