summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/118/assembly-risc-v/904
blob: 4840d63680f43d3dce806ffb77850dcd82305fa4 (plain) (blame)
1
2
3
4
5
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
risc-v: 0.994
assembly: 0.991
register: 0.963
permissions: 0.887
architecture: 0.881
graphic: 0.875
device: 0.846
peripherals: 0.767
performance: 0.730
semantic: 0.662
debug: 0.641
network: 0.599
kernel: 0.551
mistranslation: 0.507
vnc: 0.485
PID: 0.479
ppc: 0.468
boot: 0.425
socket: 0.381
files: 0.356
arm: 0.335
TCG: 0.263
i386: 0.257
VMM: 0.234
KVM: 0.219
x86: 0.201
hypervisor: 0.191
user-level: 0.185
virtual: 0.165
--------------------
register: 0.932
assembly: 0.927
risc-v: 0.913
debug: 0.794
architecture: 0.412
TCG: 0.093
files: 0.026
PID: 0.019
device: 0.015
peripherals: 0.014
semantic: 0.014
performance: 0.011
kernel: 0.009
virtual: 0.007
hypervisor: 0.005
VMM: 0.003
vnc: 0.003
KVM: 0.002
user-level: 0.002
boot: 0.002
network: 0.002
graphic: 0.001
socket: 0.001
permissions: 0.001
mistranslation: 0.000
arm: 0.000
i386: 0.000
x86: 0.000
ppc: 0.000

RISC-V: Cannot set SEIP bit of mip csr register in M mode
Description of problem:

Steps to reproduce:
1.   run assembly instructions **in M mode**: 
```
not t0, x0    // set t0 to 0b11..11
csrs mip, t0  // write mip with t0, mip registers are WARL(Write Any Values, Reads Legal Values)
csrr t1, mip  // read value from mip to t1
```
2.   GDB enters the command `display/z $t1` to see that the content of the t1 register is 0x466, which means that the SEIP bit of mip is not set.
3.   According to page 47 of [riscv-privileged-20211203](https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf), `SEIP is writable in mip`.
4.   According to page 81 of the same manual,`If implemented, SEIP is read-only in sip`.
5.   However, the above code and results show that the SEIP bit of mip cannot be set by software **in M mode**.
Additional information: