Skip to content

Commit af2586b

Browse files
committed
Added TIDC registers
1 parent c93d5ef commit af2586b

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

src/cheri_insts.sail

+5
Original file line numberDiff line numberDiff line change
@@ -364,10 +364,12 @@ function clause execute (CSpecialRW(cd, scr, cs1)) = {
364364
let (specialExists, ro, priv, needASR) : (bool, bool, Privilege, bool) = match unsigned(scr) {
365365
0 => (true, true, User, false),
366366
1 => (true, false, User, false),
367+
3 if haveUsrMode() => (true, true, User, false),
367368
4 if haveNExt() => (true, false, User, true),
368369
5 if haveNExt() => (true, false, User, true),
369370
6 if haveNExt() => (true, false, User, true),
370371
7 if haveNExt() => (true, false, User, true),
372+
11 if haveSupMode() => (true, false, Supervisor, true),
371373
12 if haveSupMode() => (true, false, Supervisor, true),
372374
13 if haveSupMode() => (true, false, Supervisor, true),
373375
14 if haveSupMode() => (true, false, Supervisor, true),
@@ -395,10 +397,12 @@ function clause execute (CSpecialRW(cd, scr, cs1)) = {
395397
pcc
396398
},
397399
1 => DDC,
400+
3 => STIDC,
398401
4 => UTCC,
399402
5 => UTDC,
400403
6 => UScratchC,
401404
7 => legalize_epcc(UEPCC),
405+
11 => STIDC,
402406
12 => STCC,
403407
13 => STDC,
404408
14 => SScratchC,
@@ -416,6 +420,7 @@ function clause execute (CSpecialRW(cd, scr, cs1)) = {
416420
5 => UTDC = cs1_val,
417421
6 => UScratchC = cs1_val,
418422
7 => UEPCC = cs1_val,
423+
12 => STIDC = cs1_val,
419424
12 => STCC = legalize_tcc(STCC, cs1_val),
420425
13 => STDC = cs1_val,
421426
14 => SScratchC = cs1_val,

src/cheri_regs.sail

+2
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,13 @@ function ext_init_regs () = {
159159
DDC = default_cap;
160160
nextPCC = default_cap;
161161

162+
UTIDC = null_cap;
162163
UTCC = default_cap;
163164
UTDC = null_cap;
164165
UScratchC = null_cap;
165166
UEPCC = default_cap;
166167

168+
STIDC = null_cap;
167169
STCC = default_cap;
168170
STDC = null_cap;
169171
SScratchC = null_cap;

src/cheri_scr_map.sail

+1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ scattered mapping scr_name_map
6969
mapping clause scr_name_map = 0b00000 <-> "pcc"
7070
mapping clause scr_name_map = 0b00001 <-> "ddc"
7171

72+
mapping clause scr_name_map = 0b00011 <-> "utidc"
7273
mapping clause scr_name_map = 0b00100 <-> "utcc"
7374
mapping clause scr_name_map = 0b00101 <-> "utdc"
7475
mapping clause scr_name_map = 0b00110 <-> "uscratchc"

src/cheri_sys_regs.sail

+2
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,12 @@ register PCC : Capability
114114
register nextPCC : Capability
115115
register DDC : Capability
116116

117+
register UTIDC : Capability
117118
register UTCC : Capability
118119
register UTDC : Capability
119120
register UScratchC : Capability
120121
register UEPCC : Capability
122+
register STIDC : Capability
121123
register STCC : Capability
122124
register STDC : Capability
123125
register SScratchC : Capability

0 commit comments

Comments
 (0)