3
3
$schema : " inst_schema.json#"
4
4
kind : instruction
5
5
name : mop.r.n
6
- long_name : No synopsis available .
6
+ long_name : May-be-operation (1 source register) .
7
7
description : |
8
- No description available.
8
+ Unless redefined by another extension, this instructions simply writes 0 to X[xd].
9
+ The encoding allows future extensions to define them to read X[xs1], as well as write X[xd].
9
10
definedBy : Zimop
10
- assembly : mop_r_t_30, mop_r_t_27_26, mop_r_t_21_20, xd, xs1
11
+ assembly : xd, xs1
11
12
encoding :
12
13
match : 1-00--0111-------100-----1110011
13
14
variables :
14
- - name : mop_r_t_30
15
- location : 30-30
16
- - name : mop_r_t_27_26
17
- location : 27-26
18
- - name : mop_r_t_21_20
19
- location : 21-20
20
- - name : rs1
15
+ - name : n
16
+ location : 30|27-26|21-20
17
+ - name : xs1
21
18
location : 19-15
22
- - name : rd
19
+ - name : xd
23
20
location : 11-7
24
21
access :
25
22
s : always
@@ -32,68 +29,69 @@ hints:
32
29
- { $ref: inst/Zicfilp/sspopchk.x5.yaml# }
33
30
- { $ref: inst/Zicfilp/ssrdp.yaml# }
34
31
pseudoinstructions :
35
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x0)
32
+ - when : n == 0
36
33
to : mop.r.0
37
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x0)
34
+ - when : n == 1
38
35
to : mop.r.1
39
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x0)
36
+ - when : n == 2
40
37
to : mop.r.2
41
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x0)
38
+ - when : n == 3
42
39
to : mop.r.3
43
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x1)
40
+ - when : n == 4
44
41
to : mop.r.4
45
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x1)
42
+ - when : n == 5
46
43
to : mop.r.5
47
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x1)
44
+ - when : n == 6
48
45
to : mop.r.6
49
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x1)
46
+ - when : n == 7
50
47
to : mop.r.7
51
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x2)
48
+ - when : n == 8
52
49
to : mop.r.8
53
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x2)
50
+ - when : n == 9
54
51
to : mop.r.9
55
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x2)
52
+ - when : n == 10
56
53
to : mop.r.10
57
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x2)
54
+ - when : n == 11
58
55
to : mop.r.11
59
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x3)
56
+ - when : n == 12
60
57
to : mop.r.12
61
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x3)
58
+ - when : n == 13
62
59
to : mop.r.13
63
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x3)
60
+ - when : n == 14
64
61
to : mop.r.14
65
- - when : (mop_r_t_30 == 0x0) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x3)
62
+ - when : n == 15
66
63
to : mop.r.15
67
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x0)
64
+ - when : n == 16
68
65
to : mop.r.16
69
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x0)
66
+ - when : n == 17
70
67
to : mop.r.17
71
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x0)
68
+ - when : n == 18
72
69
to : mop.r.18
73
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x0)
70
+ - when : n == 19
74
71
to : mop.r.19
75
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x1)
72
+ - when : n == 20
76
73
to : mop.r.20
77
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x1)
74
+ - when : n == 21
78
75
to : mop.r.21
79
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x1)
76
+ - when : n == 22
80
77
to : mop.r.22
81
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x1)
78
+ - when : n == 23
82
79
to : mop.r.23
83
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x2)
80
+ - when : n == 24
84
81
to : mop.r.24
85
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x2)
82
+ - when : n == 25
86
83
to : mop.r.25
87
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x2)
84
+ - when : n == 26
88
85
to : mop.r.26
89
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x2)
86
+ - when : n == 27
90
87
to : mop.r.27
91
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x0) && (mop_r_t_27_26 == 0x3)
88
+ - when : n == 28
92
89
to : mop.r.28
93
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x1) && (mop_r_t_27_26 == 0x3)
90
+ - when : n == 29
94
91
to : mop.r.29
95
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x2) && (mop_r_t_27_26 == 0x3)
92
+ - when : n == 30
96
93
to : mop.r.30
97
- - when : (mop_r_t_30 == 0x1) && (mop_r_t_21_20 == 0x3) && (mop_r_t_27_26 == 0x3)
94
+ - when : n == 31
98
95
to : mop.r.31
99
96
operation() : |
97
+ X[xd] = 0;
0 commit comments