projects
/
riscv-isa-sim.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Changed supervisor mode
[riscv-isa-sim.git]
/
riscv
/
insns
/
mtpcr.h
1
require_supervisor
;
2
3
switch
(
insn
.
rtype
.
rs2
)
4
{
5
case
0
:
6
set_sr
(
RS1
);
7
break
;
8
case
1
:
9
epc
=
RS1
;
10
break
;
11
case
3
:
12
evec
=
RS1
;
13
break
;
14
case
4
:
15
count
=
RS1
;
16
break
;
17
case
5
:
18
interrupts_pending
&= ~(
1
<<
TIMER_IRQ
);
19
compare
=
RS1
;
20
break
;
21
case
7
:
22
mmu
.
set_ptbr
(
RS1
);
23
break
;
24
25
case
8
:
26
sim
.
send_ipi
(
RS1
);
27
break
;
28
case
9
:
29
interrupts_pending
&= ~(
1
<<
IPI_IRQ
);
30
break
;
31
32
case
12
:
33
pcr_k0
=
RS1
;
34
break
;
35
case
13
:
36
pcr_k1
=
RS1
;
37
break
;
38
39
case
16
:
40
sim
.
set_tohost
(
RS1
);
41
break
;
42
43
case
18
:
44
vecbanks
=
RS1
&
0xff
;
45
vecbanks_count
=
__builtin_popcountll
(
vecbanks
);
46
break
;
47
}