This repository has been archived by the owner on Mar 16, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
instructions_generated.h
386 lines (381 loc) · 13.2 KB
/
instructions_generated.h
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
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
/*
* Project name:
* Implementace interpretu imperativního jazyka IFJ14
*
* Repository:
* https://github.com/Dasio/IFJ
*
* Team:
* Dávid Mikuš (xmikus15)
* Peter Hostačný (xhosta03)
* Tomáš Kello (xkello00)
* Adam Lučanský (xlucan01)
* Michaela Lukášová (xlukas09)
*/
#include "system.h"
#include "instruction.h"
#include "stack.h"
#include "memory_mgmt.h"
#ifndef _INSTRUCTIONS_GENERATED_H
#define _INSTRUCTIONS_GENERATED_H
char *stringifyInstructionPtr(InstrFuncPtr ptr);
void Instr_NEG_LxIx(Instruction *i);
void Instr_NEG_LxDx(Instruction *i);
void Instr_NEG_GxIx(Instruction *i);
void Instr_NEG_GxDx(Instruction *i);
void Instr_NOT_LxBx(Instruction *i);
void Instr_NOT_GxBx(Instruction *i);
void Instr_MUL_CLII(Instruction *i);
void Instr_MUL_CLID(Instruction *i);
void Instr_MUL_CLDI(Instruction *i);
void Instr_MUL_CLDD(Instruction *i);
void Instr_MUL_CGII(Instruction *i);
void Instr_MUL_CGID(Instruction *i);
void Instr_MUL_CGDI(Instruction *i);
void Instr_MUL_CGDD(Instruction *i);
void Instr_MUL_LCII(Instruction *i);
void Instr_MUL_LCID(Instruction *i);
void Instr_MUL_LCDI(Instruction *i);
void Instr_MUL_LCDD(Instruction *i);
void Instr_MUL_LLII(Instruction *i);
void Instr_MUL_LLID(Instruction *i);
void Instr_MUL_LLDI(Instruction *i);
void Instr_MUL_LLDD(Instruction *i);
void Instr_MUL_LGII(Instruction *i);
void Instr_MUL_LGID(Instruction *i);
void Instr_MUL_LGDI(Instruction *i);
void Instr_MUL_LGDD(Instruction *i);
void Instr_MUL_GCII(Instruction *i);
void Instr_MUL_GCID(Instruction *i);
void Instr_MUL_GCDI(Instruction *i);
void Instr_MUL_GCDD(Instruction *i);
void Instr_MUL_GLII(Instruction *i);
void Instr_MUL_GLID(Instruction *i);
void Instr_MUL_GLDI(Instruction *i);
void Instr_MUL_GLDD(Instruction *i);
void Instr_MUL_GGII(Instruction *i);
void Instr_MUL_GGID(Instruction *i);
void Instr_MUL_GGDI(Instruction *i);
void Instr_MUL_GGDD(Instruction *i);
void Instr_DIV_CLII(Instruction *i);
void Instr_DIV_CLID(Instruction *i);
void Instr_DIV_CLDI(Instruction *i);
void Instr_DIV_CLDD(Instruction *i);
void Instr_DIV_CGII(Instruction *i);
void Instr_DIV_CGID(Instruction *i);
void Instr_DIV_CGDI(Instruction *i);
void Instr_DIV_CGDD(Instruction *i);
void Instr_DIV_LCII(Instruction *i);
void Instr_DIV_LCID(Instruction *i);
void Instr_DIV_LCDI(Instruction *i);
void Instr_DIV_LCDD(Instruction *i);
void Instr_DIV_LLII(Instruction *i);
void Instr_DIV_LLID(Instruction *i);
void Instr_DIV_LLDI(Instruction *i);
void Instr_DIV_LLDD(Instruction *i);
void Instr_DIV_LGII(Instruction *i);
void Instr_DIV_LGID(Instruction *i);
void Instr_DIV_LGDI(Instruction *i);
void Instr_DIV_LGDD(Instruction *i);
void Instr_DIV_GCII(Instruction *i);
void Instr_DIV_GCID(Instruction *i);
void Instr_DIV_GCDI(Instruction *i);
void Instr_DIV_GCDD(Instruction *i);
void Instr_DIV_GLII(Instruction *i);
void Instr_DIV_GLID(Instruction *i);
void Instr_DIV_GLDI(Instruction *i);
void Instr_DIV_GLDD(Instruction *i);
void Instr_DIV_GGII(Instruction *i);
void Instr_DIV_GGID(Instruction *i);
void Instr_DIV_GGDI(Instruction *i);
void Instr_DIV_GGDD(Instruction *i);
void Instr_AND_CLBB(Instruction *i);
void Instr_AND_CGBB(Instruction *i);
void Instr_AND_LCBB(Instruction *i);
void Instr_AND_LLBB(Instruction *i);
void Instr_AND_LGBB(Instruction *i);
void Instr_AND_GCBB(Instruction *i);
void Instr_AND_GLBB(Instruction *i);
void Instr_AND_GGBB(Instruction *i);
void Instr_ADD_CLII(Instruction *i);
void Instr_ADD_CLID(Instruction *i);
void Instr_ADD_CLDI(Instruction *i);
void Instr_ADD_CLDD(Instruction *i);
void Instr_ADD_CLSS(Instruction *i);
void Instr_ADD_CGII(Instruction *i);
void Instr_ADD_CGID(Instruction *i);
void Instr_ADD_CGDI(Instruction *i);
void Instr_ADD_CGDD(Instruction *i);
void Instr_ADD_CGSS(Instruction *i);
void Instr_ADD_LCII(Instruction *i);
void Instr_ADD_LCID(Instruction *i);
void Instr_ADD_LCDI(Instruction *i);
void Instr_ADD_LCDD(Instruction *i);
void Instr_ADD_LCSS(Instruction *i);
void Instr_ADD_LLII(Instruction *i);
void Instr_ADD_LLID(Instruction *i);
void Instr_ADD_LLDI(Instruction *i);
void Instr_ADD_LLDD(Instruction *i);
void Instr_ADD_LLSS(Instruction *i);
void Instr_ADD_LGII(Instruction *i);
void Instr_ADD_LGID(Instruction *i);
void Instr_ADD_LGDI(Instruction *i);
void Instr_ADD_LGDD(Instruction *i);
void Instr_ADD_LGSS(Instruction *i);
void Instr_ADD_GCII(Instruction *i);
void Instr_ADD_GCID(Instruction *i);
void Instr_ADD_GCDI(Instruction *i);
void Instr_ADD_GCDD(Instruction *i);
void Instr_ADD_GCSS(Instruction *i);
void Instr_ADD_GLII(Instruction *i);
void Instr_ADD_GLID(Instruction *i);
void Instr_ADD_GLDI(Instruction *i);
void Instr_ADD_GLDD(Instruction *i);
void Instr_ADD_GLSS(Instruction *i);
void Instr_ADD_GGII(Instruction *i);
void Instr_ADD_GGID(Instruction *i);
void Instr_ADD_GGDI(Instruction *i);
void Instr_ADD_GGDD(Instruction *i);
void Instr_ADD_GGSS(Instruction *i);
void Instr_SUB_CLII(Instruction *i);
void Instr_SUB_CLID(Instruction *i);
void Instr_SUB_CLDI(Instruction *i);
void Instr_SUB_CLDD(Instruction *i);
void Instr_SUB_CGII(Instruction *i);
void Instr_SUB_CGID(Instruction *i);
void Instr_SUB_CGDI(Instruction *i);
void Instr_SUB_CGDD(Instruction *i);
void Instr_SUB_LCII(Instruction *i);
void Instr_SUB_LCID(Instruction *i);
void Instr_SUB_LCDI(Instruction *i);
void Instr_SUB_LCDD(Instruction *i);
void Instr_SUB_LLII(Instruction *i);
void Instr_SUB_LLID(Instruction *i);
void Instr_SUB_LLDI(Instruction *i);
void Instr_SUB_LLDD(Instruction *i);
void Instr_SUB_LGII(Instruction *i);
void Instr_SUB_LGID(Instruction *i);
void Instr_SUB_LGDI(Instruction *i);
void Instr_SUB_LGDD(Instruction *i);
void Instr_SUB_GCII(Instruction *i);
void Instr_SUB_GCID(Instruction *i);
void Instr_SUB_GCDI(Instruction *i);
void Instr_SUB_GCDD(Instruction *i);
void Instr_SUB_GLII(Instruction *i);
void Instr_SUB_GLID(Instruction *i);
void Instr_SUB_GLDI(Instruction *i);
void Instr_SUB_GLDD(Instruction *i);
void Instr_SUB_GGII(Instruction *i);
void Instr_SUB_GGID(Instruction *i);
void Instr_SUB_GGDI(Instruction *i);
void Instr_SUB_GGDD(Instruction *i);
void Instr_OR_CLBB(Instruction *i);
void Instr_OR_CGBB(Instruction *i);
void Instr_OR_LCBB(Instruction *i);
void Instr_OR_LLBB(Instruction *i);
void Instr_OR_LGBB(Instruction *i);
void Instr_OR_GCBB(Instruction *i);
void Instr_OR_GLBB(Instruction *i);
void Instr_OR_GGBB(Instruction *i);
void Instr_XOR_CLBB(Instruction *i);
void Instr_XOR_CGBB(Instruction *i);
void Instr_XOR_LCBB(Instruction *i);
void Instr_XOR_LLBB(Instruction *i);
void Instr_XOR_LGBB(Instruction *i);
void Instr_XOR_GCBB(Instruction *i);
void Instr_XOR_GLBB(Instruction *i);
void Instr_XOR_GGBB(Instruction *i);
void Instr_L_CLII(Instruction *i);
void Instr_L_CLDD(Instruction *i);
void Instr_L_CLBB(Instruction *i);
void Instr_L_CLSS(Instruction *i);
void Instr_L_CGII(Instruction *i);
void Instr_L_CGDD(Instruction *i);
void Instr_L_CGBB(Instruction *i);
void Instr_L_CGSS(Instruction *i);
void Instr_L_LCII(Instruction *i);
void Instr_L_LCDD(Instruction *i);
void Instr_L_LCBB(Instruction *i);
void Instr_L_LCSS(Instruction *i);
void Instr_L_LLII(Instruction *i);
void Instr_L_LLDD(Instruction *i);
void Instr_L_LLBB(Instruction *i);
void Instr_L_LLSS(Instruction *i);
void Instr_L_LGII(Instruction *i);
void Instr_L_LGDD(Instruction *i);
void Instr_L_LGBB(Instruction *i);
void Instr_L_LGSS(Instruction *i);
void Instr_L_GCII(Instruction *i);
void Instr_L_GCDD(Instruction *i);
void Instr_L_GCBB(Instruction *i);
void Instr_L_GCSS(Instruction *i);
void Instr_L_GLII(Instruction *i);
void Instr_L_GLDD(Instruction *i);
void Instr_L_GLBB(Instruction *i);
void Instr_L_GLSS(Instruction *i);
void Instr_L_GGII(Instruction *i);
void Instr_L_GGDD(Instruction *i);
void Instr_L_GGBB(Instruction *i);
void Instr_L_GGSS(Instruction *i);
void Instr_G_CLII(Instruction *i);
void Instr_G_CLDD(Instruction *i);
void Instr_G_CLBB(Instruction *i);
void Instr_G_CLSS(Instruction *i);
void Instr_G_CGII(Instruction *i);
void Instr_G_CGDD(Instruction *i);
void Instr_G_CGBB(Instruction *i);
void Instr_G_CGSS(Instruction *i);
void Instr_G_LCII(Instruction *i);
void Instr_G_LCDD(Instruction *i);
void Instr_G_LCBB(Instruction *i);
void Instr_G_LCSS(Instruction *i);
void Instr_G_LLII(Instruction *i);
void Instr_G_LLDD(Instruction *i);
void Instr_G_LLBB(Instruction *i);
void Instr_G_LLSS(Instruction *i);
void Instr_G_LGII(Instruction *i);
void Instr_G_LGDD(Instruction *i);
void Instr_G_LGBB(Instruction *i);
void Instr_G_LGSS(Instruction *i);
void Instr_G_GCII(Instruction *i);
void Instr_G_GCDD(Instruction *i);
void Instr_G_GCBB(Instruction *i);
void Instr_G_GCSS(Instruction *i);
void Instr_G_GLII(Instruction *i);
void Instr_G_GLDD(Instruction *i);
void Instr_G_GLBB(Instruction *i);
void Instr_G_GLSS(Instruction *i);
void Instr_G_GGII(Instruction *i);
void Instr_G_GGDD(Instruction *i);
void Instr_G_GGBB(Instruction *i);
void Instr_G_GGSS(Instruction *i);
void Instr_LE_CLII(Instruction *i);
void Instr_LE_CLDD(Instruction *i);
void Instr_LE_CLBB(Instruction *i);
void Instr_LE_CLSS(Instruction *i);
void Instr_LE_CGII(Instruction *i);
void Instr_LE_CGDD(Instruction *i);
void Instr_LE_CGBB(Instruction *i);
void Instr_LE_CGSS(Instruction *i);
void Instr_LE_LCII(Instruction *i);
void Instr_LE_LCDD(Instruction *i);
void Instr_LE_LCBB(Instruction *i);
void Instr_LE_LCSS(Instruction *i);
void Instr_LE_LLII(Instruction *i);
void Instr_LE_LLDD(Instruction *i);
void Instr_LE_LLBB(Instruction *i);
void Instr_LE_LLSS(Instruction *i);
void Instr_LE_LGII(Instruction *i);
void Instr_LE_LGDD(Instruction *i);
void Instr_LE_LGBB(Instruction *i);
void Instr_LE_LGSS(Instruction *i);
void Instr_LE_GCII(Instruction *i);
void Instr_LE_GCDD(Instruction *i);
void Instr_LE_GCBB(Instruction *i);
void Instr_LE_GCSS(Instruction *i);
void Instr_LE_GLII(Instruction *i);
void Instr_LE_GLDD(Instruction *i);
void Instr_LE_GLBB(Instruction *i);
void Instr_LE_GLSS(Instruction *i);
void Instr_LE_GGII(Instruction *i);
void Instr_LE_GGDD(Instruction *i);
void Instr_LE_GGBB(Instruction *i);
void Instr_LE_GGSS(Instruction *i);
void Instr_GE_CLII(Instruction *i);
void Instr_GE_CLDD(Instruction *i);
void Instr_GE_CLBB(Instruction *i);
void Instr_GE_CLSS(Instruction *i);
void Instr_GE_CGII(Instruction *i);
void Instr_GE_CGDD(Instruction *i);
void Instr_GE_CGBB(Instruction *i);
void Instr_GE_CGSS(Instruction *i);
void Instr_GE_LCII(Instruction *i);
void Instr_GE_LCDD(Instruction *i);
void Instr_GE_LCBB(Instruction *i);
void Instr_GE_LCSS(Instruction *i);
void Instr_GE_LLII(Instruction *i);
void Instr_GE_LLDD(Instruction *i);
void Instr_GE_LLBB(Instruction *i);
void Instr_GE_LLSS(Instruction *i);
void Instr_GE_LGII(Instruction *i);
void Instr_GE_LGDD(Instruction *i);
void Instr_GE_LGBB(Instruction *i);
void Instr_GE_LGSS(Instruction *i);
void Instr_GE_GCII(Instruction *i);
void Instr_GE_GCDD(Instruction *i);
void Instr_GE_GCBB(Instruction *i);
void Instr_GE_GCSS(Instruction *i);
void Instr_GE_GLII(Instruction *i);
void Instr_GE_GLDD(Instruction *i);
void Instr_GE_GLBB(Instruction *i);
void Instr_GE_GLSS(Instruction *i);
void Instr_GE_GGII(Instruction *i);
void Instr_GE_GGDD(Instruction *i);
void Instr_GE_GGBB(Instruction *i);
void Instr_GE_GGSS(Instruction *i);
void Instr_EQ_CLII(Instruction *i);
void Instr_EQ_CLDD(Instruction *i);
void Instr_EQ_CLBB(Instruction *i);
void Instr_EQ_CLSS(Instruction *i);
void Instr_EQ_CGII(Instruction *i);
void Instr_EQ_CGDD(Instruction *i);
void Instr_EQ_CGBB(Instruction *i);
void Instr_EQ_CGSS(Instruction *i);
void Instr_EQ_LCII(Instruction *i);
void Instr_EQ_LCDD(Instruction *i);
void Instr_EQ_LCBB(Instruction *i);
void Instr_EQ_LCSS(Instruction *i);
void Instr_EQ_LLII(Instruction *i);
void Instr_EQ_LLDD(Instruction *i);
void Instr_EQ_LLBB(Instruction *i);
void Instr_EQ_LLSS(Instruction *i);
void Instr_EQ_LGII(Instruction *i);
void Instr_EQ_LGDD(Instruction *i);
void Instr_EQ_LGBB(Instruction *i);
void Instr_EQ_LGSS(Instruction *i);
void Instr_EQ_GCII(Instruction *i);
void Instr_EQ_GCDD(Instruction *i);
void Instr_EQ_GCBB(Instruction *i);
void Instr_EQ_GCSS(Instruction *i);
void Instr_EQ_GLII(Instruction *i);
void Instr_EQ_GLDD(Instruction *i);
void Instr_EQ_GLBB(Instruction *i);
void Instr_EQ_GLSS(Instruction *i);
void Instr_EQ_GGII(Instruction *i);
void Instr_EQ_GGDD(Instruction *i);
void Instr_EQ_GGBB(Instruction *i);
void Instr_EQ_GGSS(Instruction *i);
void Instr_NE_CLII(Instruction *i);
void Instr_NE_CLDD(Instruction *i);
void Instr_NE_CLBB(Instruction *i);
void Instr_NE_CLSS(Instruction *i);
void Instr_NE_CGII(Instruction *i);
void Instr_NE_CGDD(Instruction *i);
void Instr_NE_CGBB(Instruction *i);
void Instr_NE_CGSS(Instruction *i);
void Instr_NE_LCII(Instruction *i);
void Instr_NE_LCDD(Instruction *i);
void Instr_NE_LCBB(Instruction *i);
void Instr_NE_LCSS(Instruction *i);
void Instr_NE_LLII(Instruction *i);
void Instr_NE_LLDD(Instruction *i);
void Instr_NE_LLBB(Instruction *i);
void Instr_NE_LLSS(Instruction *i);
void Instr_NE_LGII(Instruction *i);
void Instr_NE_LGDD(Instruction *i);
void Instr_NE_LGBB(Instruction *i);
void Instr_NE_LGSS(Instruction *i);
void Instr_NE_GCII(Instruction *i);
void Instr_NE_GCDD(Instruction *i);
void Instr_NE_GCBB(Instruction *i);
void Instr_NE_GCSS(Instruction *i);
void Instr_NE_GLII(Instruction *i);
void Instr_NE_GLDD(Instruction *i);
void Instr_NE_GLBB(Instruction *i);
void Instr_NE_GLSS(Instruction *i);
void Instr_NE_GGII(Instruction *i);
void Instr_NE_GGDD(Instruction *i);
void Instr_NE_GGBB(Instruction *i);
void Instr_NE_GGSS(Instruction *i);
const InstrFuncPtr instruction_table[3744];
#endif