summaryrefslogtreecommitdiff
path: root/gen/docs/isa_defs/registers.isa
blob: baa812498e4302d55216014ca7a3cc626cacacc3 (plain)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
# Fyntv Register Definitions

REGISTER x0
  ABBR zero
  DESC Always-zero register — reads return 0, writes are discarded
  PRESERVE false
  CALLER false
  ARG false
  INDEX 0
END

REGISTER x1
  ABBR ra
  DESC Return address link register
  PRESERVE false
  CALLER false
  ARG false
  INDEX 1
END

REGISTER x2
  ABBR sp
  DESC Stack pointer
  PRESERVE true
  CALLER false
  ARG false
  INDEX 2
END

REGISTER x3
  ABBR gp
  DESC Global pointer
  PRESERVE true
  CALLER false
  ARG false
  INDEX 3
END

REGISTER x4
  ABBR tp
  DESC Thread pointer
  PRESERVE true
  CALLER false
  ARG false
  INDEX 4
END

REGISTER x5
  ABBR t0
  DESC Temporary register 0
  PRESERVE false
  CALLER true
  ARG false
  INDEX 5
END

REGISTER x6
  ABBR t1
  DESC Temporary register 1
  PRESERVE false
  CALLER true
  ARG false
  INDEX 6
END

REGISTER x7
  ABBR t2
  DESC Temporary register 2
  PRESERVE false
  CALLER true
  ARG false
  INDEX 7
END

REGISTER x8
  ABBR s0
  DESC Saved register 0 / frame pointer
  PRESERVE true
  CALLER false
  ARG false
  INDEX 8
END

REGISTER x9
  ABBR s1
  DESC Saved register 1
  PRESERVE true
  CALLER false
  ARG false
  INDEX 9
END

REGISTER x10
  ABBR a0
  DESC Function argument 0 / return value 0
  PRESERVE false
  CALLER true
  ARG true
  INDEX 10
END

REGISTER x11
  ABBR a1
  DESC Function argument 1 / return value 1
  PRESERVE false
  CALLER true
  ARG true
  INDEX 11
END

REGISTER x12
  ABBR a2
  DESC Function argument 2
  PRESERVE false
  CALLER true
  ARG true
  INDEX 12
END

REGISTER x13
  ABBR a3
  DESC Function argument 3
  PRESERVE false
  CALLER true
  ARG true
  INDEX 13
END

REGISTER x14
  ABBR a4
  DESC Function argument 4
  PRESERVE false
  CALLER true
  ARG true
  INDEX 14
END

REGISTER x15
  ABBR a5
  DESC Function argument 5
  PRESERVE false
  CALLER true
  ARG true
  INDEX 15
END

REGISTER x16
  ABBR a6
  DESC Function argument 6
  PRESERVE false
  CALLER true
  ARG true
  INDEX 16
END

REGISTER x17
  ABBR a7
  DESC Function argument 7
  PRESERVE false
  CALLER true
  ARG true
  INDEX 17
END

REGISTER x18
  ABBR s2
  DESC Saved register 2
  PRESERVE true
  CALLER false
  ARG false
  INDEX 18
END

REGISTER x19
  ABBR s3
  DESC Saved register 3
  PRESERVE true
  CALLER false
  ARG false
  INDEX 19
END

REGISTER x20
  ABBR s4
  DESC Saved register 4
  PRESERVE true
  CALLER false
  ARG false
  INDEX 20
END

REGISTER x21
  ABBR s5
  DESC Saved register 5
  PRESERVE true
  CALLER false
  ARG false
  INDEX 21
END

REGISTER x22
  ABBR s6
  DESC Saved register 6
  PRESERVE true
  CALLER false
  ARG false
  INDEX 22
END

REGISTER x23
  ABBR s7
  DESC Saved register 7
  PRESERVE true
  CALLER false
  ARG false
  INDEX 23
END

REGISTER x24
  ABBR s8
  DESC Saved register 8
  PRESERVE true
  CALLER false
  ARG false
  INDEX 24
END

REGISTER x25
  ABBR s9
  DESC Saved register 9
  PRESERVE true
  CALLER false
  ARG false
  INDEX 25
END

REGISTER x26
  ABBR s10
  DESC Saved register 10
  PRESERVE true
  CALLER false
  ARG false
  INDEX 26
END

REGISTER x27
  ABBR s11
  DESC Saved register 11
  PRESERVE true
  CALLER false
  ARG false
  INDEX 27
END

REGISTER x28
  ABBR t3
  DESC Temporary register 3
  PRESERVE false
  CALLER true
  ARG false
  INDEX 28
END

REGISTER x29
  ABBR t4
  DESC Temporary register 4
  PRESERVE false
  CALLER true
  ARG false
  INDEX 29
END

REGISTER x30
  ABBR t5
  DESC Temporary register 5
  PRESERVE false
  CALLER true
  ARG false
  INDEX 30
END

REGISTER x31
  ABBR t6
  DESC Temporary register 6
  PRESERVE false
  CALLER true
  ARG false
  INDEX 31
END