more
[libfirm] / ir / ir / irreflect.def
1
2 BEGIN_OP(Block)
3   BEGIN_ARGS
4     ARG("Block", BB)
5     MARK
6     ARG("predecessors", X)
7   END_ARGS
8 END_OP
9
10 BEGIN_OP(Start)
11   BEGIN_ARGS
12     ARG("Execution", X)
13     ARG("Memory", Mem)
14     ARG("Stack", Ref)
15     ARG("Global", Ref)
16     VARG("Arguments", Data)
17     ARG("Call By Value", Ref)
18     MARK
19     BLOCK
20   END_ARGS
21 END_OP
22
23 BEGIN_OP(End)
24   BEGIN_ARGS
25     MARK
26     BLOCK
27     VARG("Memory & Preds", Lh)
28   END_ARGS
29 END_OP
30
31 /*
32  * EndReg
33  */
34
35 /*
36  * EndExcept
37  */
38
39 /*
40  * Jmp
41  */
42
43 BEGIN_OP(Jmp)
44   BEGIN_ARGS
45     ARG("Target", X)
46     MARK
47     BLOCK
48   END_ARGS
49 END_OP
50
51 BEGIN_OP(Break)
52   BEGIN_ARGS
53     ARG("Target", X)
54     MARK
55     BLOCK
56   END_ARGS
57 END_ARGS
58
59 BEGIN_OP(Cond)
60   BEGIN_ARGS
61     ARG("False Branch", X)
62     ARG("True Branch", X)
63     MARK
64     BLOCK
65     ARG("Condition", Bool)
66   END_ARGS
67
68   BEGIN_ARGS
69     VARG("Cases", X)
70     MARK
71     BLOCK
72     ARG("Switch", Int)
73   END_ARGS
74 END_OP
75
76 BEGIN_OP(Return)
77   BEGIN_ARGS
78     ARG("CF", X)
79     MARK
80     BLOCK
81     ARG("Memory", Mem)
82     VARG("Args", Data)
83   END_ARGS
84 END_OP
85
86 BEGIN_OP(CallBegin)
87   BEGIN_ARGS
88     VARG("CF", X)
89     MARK
90     BLOCK
91     ARG("Addr", Ref)
92   END_ARGS
93 END_OP
94
95 BEGIN_OP(Const)
96   BEGIN_ARGS
97     ARG("Value", Data)
98     MARK
99     BLOCK
100   END_ARGS
101 END_OP
102
103 BEGIN_OP(SymConst)
104   BEGIN_ARGS
105     ARG("Value", Int)
106     MARK
107     BLOCK
108   END_ARGS
109
110   BEGIN_ARGS
111     ARG("Value", Ref)
112     MARK
113     BLOCK
114   END_ARGS
115 END_OP
116
117 BEGIN_OP(Unknown)
118   BEGIN_ARGS
119     ARG("Value", Any)
120     MARK
121     BLOCK
122   END_ARGS
123 END_OP
124
125 BEGIN_OP(Sel)
126   BEGIN_ARGS
127     ARG("Addr", Ref)
128     MARK
129     BLOCK
130     ARG("Memory", Mem)
131     ARG("Base", Ref)
132     VARG_SAME("Indices", Int)
133   END_ARGS
134 END_OP
135
136 BEGIN_OP(Call)
137   BEGIN_ARGS
138     ARG("Memory", Mem)
139     ARG("CF", X)
140     VARG("Results", Data)
141     ARG("Exception Memory", Mem)
142     ARG("Stack", Ref)
143     MARK
144     BLOCK
145     ARG("Memory", Mem)
146     ARG("Addr", Ref)
147     VARG("Parameters", Data)
148   END_ARGS
149 END_OP
150
151 BEGIN_OP(Add)
152   BEGIN_ARGS
153     ARG("Result", NumP)
154     MARK
155     BLOCK
156     ARG_SAME("Op 1", NumP, 0)
157     ARG_SAME("Op 2", NumP, 0)
158   END_ARGS
159
160   BEGIN_ARGS
161     ARG("Result", Ref)
162     MARK
163     BLOCK
164     ARG("Op 1", Ref)
165     ARG("Op 2", Num)
166   END_ARGS
167
168   BEGIN_ARGS
169     ARG("Result", Ref)
170     MARK
171     BLOCK
172     ARG("Op 1", Num)
173     ARG("Op 2", Ref)
174   END_ARGS
175 END_OP
176
177 BEGIN_OP(Sub)
178   BEGIN_ARGS
179     ARG("Result", NumP)
180     MARK
181     BLOCK
182     ARG_SAME("Op 1", NumP, 0)
183     ARG_SAME("Op 2", NumP, 0)
184   END_ARGS
185
186   BEGIN_ARGS
187     ARG("Result", Ref)
188     MARK
189     BLOCK
190     ARG("Op 1", NumP)
191     ARG("Op 2", Ref)
192   END_ARGS
193
194   BEGIN_ARGS
195     ARG("Result", Ref)
196     MARK
197     BLOCK
198     ARG("Op 1", Ref)
199     ARG("Op 2", NumP)
200   END_ARGS
201
202   BEGIN_ARGS
203     ARG("Result", Num)
204     MARK
205     BLOCK
206     ARG("Op 1", Ref)
207     ARG("Op 2", Ref)
208   END_ARGS
209 END_OP
210
211 BEGIN_OP(Minus)
212   BEGIN_ARGS
213     ARG("Result", Float)
214     MARK
215     BLOCK
216     ARG_SAME("Op 0", Float, 0)
217   END_ARGS
218 END_OP
219
220 BEGIN_OP(Mul)
221   BEGIN_ARGS
222     ARG("Result", Int)
223     MARK
224     BLOCK
225     ARG("Op 0", Int)
226     ARG_SAME("Op 1", Int, 3)
227   END_ARGS
228
229   BEGIN_ARGS
230     ARG("Result", Float)
231     MARK
232     BLOCK
233     ARG_SAME("Op 0", Float, 0)
234     ARG_SAME("Op 1", Float, 0)
235   END_ARGS
236 END_OP
237
238 BEGIN_OP(Quot)
239   BEGIN_ARGS
240     ARG("Memory", Mem)
241     ARG("CF", X)
242     ARG("Op 0", Float)
243     MARK
244     BLOCK
245     ARG("Memory", Mem)
246     ARG_SAME("Op 0", Float, 2)
247     ARG_SAME("Op 1", Float, 2)
248   END_ARGS
249 END_OP
250
251 BEGIN_OP(DivMod)
252   BEGIN_ARGS
253     ARG("Memory", Mem)
254     ARG("CF", X)
255     ARG("Res 0", Int)
256     ARG_SAME("Res 1", Int, 2)
257     MARK
258     BLOCK
259     ARG("Memory", Mem)
260     ARG_SAME("Op 0", Int, 2)
261     ARG_SAME("Op 1", Int, 2)
262   END_ARGS
263 END_OP
264
265 BEGIN_OP(Div)
266 BEGIN_ARGS
267   ARG("Memory", Mem)
268   ARG("CF", X)
269   ARG("Result", Int)
270   MARK
271   BLOCK
272   ARG("Memory", Mem)
273   ARG_SAME("Op 0", Int, 2)
274   ARG_SAME("Op 1", Int, 2)
275 END_ARGS
276 END_OP
277
278 BEGIN_OP(Abs)
279 BEGIN_ARGS
280   ARG("Res", Num)
281   MARK
282   BLOCK
283   ARG_SAME("Op", Num, 0)
284 END_ARGS
285 END_OP
286
287 BEGIN_OP(And)
288 BEGIN_ARGS
289   ARG("Res", Int)
290   MARK
291   BLOCK
292   ARG_SAME("Op 0", Int, 0)
293   ARG_SAME("Op 1", Int, 0)
294 END_ARGS
295 END_OP
296
297 BEGIN_OP(Or)
298 BEGIN_ARGS
299   ARG("Res", Int)
300   MARK
301   BLOCK
302   ARG_SAME("Op 0", Int, 0)
303   ARG_SAME("Op 1", Int, 0)
304 END_ARGS
305 END_OP
306
307 BEGIN_OP(Eor)
308 BEGIN_ARGS
309   ARG("Res", Int)
310   MARK
311   BLOCK
312   ARG_SAME("Op 0", Int, 0)
313   ARG_SAME("Op 1", Int, 0)
314 END_ARGS
315 END_OP
316
317 BEGIN_OP(Not)
318 BEGIN_ARGS
319   ARG("Res", Int)
320   MARK
321   BLOCK
322   ARG_SAME("Op", Int, 0)
323 END_ARGS
324 END_OP
325
326 BEGIN_OP(Shl)
327 BEGIN_ARGS
328   ARG("Res", Int)
329   MARK
330   BLOCK
331   ARG_SAME("Op 0", Int, 0)
332   ARG("Op 1", IntU)
333 END_ARGS
334 END_OP
335
336 BEGIN_OP(Shr)
337 BEGIN_ARGS
338   ARG("Res", Int)
339   MARK
340   BLOCK
341   ARG_SAME("Op 0", Int, 0)
342   ARG("Op 1", IntU)
343 END_ARGS
344 END_OP
345
346 BEGIN_OP(Shrs)
347 BEGIN_ARGS
348   ARG("Res", Int)
349   MARK
350   BLOCK
351   ARG_SAME("Op 0", Int, 0)
352   ARG("Op 1", IntU)
353 END_ARGS
354 END_OP
355
356 BEGIN_OP(Rot)
357 BEGIN_ARGS
358   ARG("Res", Int)
359   MARK
360   BLOCK
361   ARG_SAME("Op 0", Int, 0)
362   ARG("Op 1", Int)
363 END_ARGS
364 END_OP
365
366 BEGIN_OP(Cmp)
367 BEGIN_ARGS
368   VARG("Res", Bool)
369   MARK
370   BLOCK
371   ARG("Op 0", Datab)
372   ARG_SAME("Op 1", Datab, 3)
373 END_ARGS
374 END_OP
375
376 BEGIN_OP(Conv)
377 BEGIN_ARGS
378   VARG("Res", Datab)
379   MARK
380   BLOCK
381   ARG("Op 0", Datab)
382 END_ARGS
383 END_OP
384
385 BEGIN_OP(Phi)
386 BEGIN_ARGS
387   ARG_SAME("Res", DataM, 3)
388   MARK
389   BLOCK
390   VARG("Op 0", DataM)
391 END_ARGS
392 END_OP
393
394 BEGIN_OP(Filter)
395 BEGIN_ARGS
396   ARG_SAME("Res", DataM, 3)
397   MARK
398   BLOCK
399   VARG("Op 0", DataM)
400 END_ARGS
401 END_OP
402
403 BEGIN_OP(Load)
404 BEGIN_ARGS
405   ARG("Memory", Mem)
406   ARG("CF", X)
407   ARG("Data", Data)
408   MARK
409   BLOCK
410   ARG("Memory", Mem)
411   ARG("Addr", Ref)
412 END_ARGS
413 END_OP
414
415 BEGIN_OP(Store)
416 BEGIN_ARGS
417   ARG("Memory", Mem)
418   ARG("CF", X)
419   MARK
420   BLOCK
421   ARG("Memory", Mem)
422   ARG("Addr", Ref)
423   ARG("Data", Data)
424 END_ARGS
425 END_OP
426
427 BEGIN_OP(Alloc)
428 BEGIN_ARGS
429   ARG("Memory", Mem)
430   ARG("CF", X)
431   ARG("Addr", Ref)
432   MARK
433   BLOCK
434   ARG("Memory", Mem)
435   ARG("Size", IntU)
436 END_ARGS
437 END_OP
438
439 BEGIN_OP(Free)
440 BEGIN_ARGS
441   ARG("Memory", Mem)
442   MARK
443   BLOCK
444   ARG("Memory", Mem)
445   ARG("Addr", Ref)
446 END_ARGS
447 END_OP
448
449 BEGIN_OP(Sync)
450 BEGIN_ARGS
451   ARG("Memory", Mem)
452   MARK
453   BLOCK
454   VARG_SAME("Memory", Mem)
455 END_ARGS
456 END_OP