add first version setvl pseudocode
[libreriscv.git] / openpower / isa / simplev.mdwn
1 # setvl
2
3 SVL-Form
4
5 * setvl RT, RA, SVi, vs, ms
6
7 Pseudo-code:
8
9 VLimm <- SVi + 1
10
11 if vs = 1 then
12 if RA = 0 then
13 VL <- (RA)
14 else
15 VL <- VLimm
16 else
17 VL <- SVSTATE[7:13]
18
19 if ms = 1 then
20 MVL <- VLimm
21 else
22 MVL <- SVSTATE[0:6]
23
24 if VL > MVL then
25 VL = MVL
26
27 SVSTATE[0:6] = MVL
28 SVSTATE[7:13] = VL
29
30 if RT != 0 then
31 RT <- VL
32
33 Special Registers Altered:
34
35 CR0 (if Rc=1)
36