-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathMilOps.h
More file actions
79 lines (72 loc) · 3.1 KB
/
MilOps.h
File metadata and controls
79 lines (72 loc) · 3.1 KB
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
#ifndef MICMILOPS_H
#define MICMILOPS_H
/*
* Copyright 2019-2024 Rochus Keller <mailto:me@rochus-keller.ch>
*
* This file is part of the Micron language project.
*
* The following is the license that applies to this copy of the
* file. For a license to use the file under conditions
* other than those described here, please email to me@rochus-keller.ch.
*
* GNU General Public License Usage
* This file may be used under the terms of the GNU General Public
* License (GPL) versions 2.0 or 3.0 as published by the Free Software
* Foundation and appearing in the file LICENSE.GPL included in
* the packaging of this file. Please review the following information
* to ensure GNU General Public Licensing requirements will be met:
* http://www.fsf.org/licensing/licenses/info/GPLv2.html and
* http://www.gnu.org/copyleft/gpl.html.
*/
namespace Mil
{
enum IL_op
{
IL_invalid,
// expressions
IL_EXPRESSIONS,
IL_add, IL_abs, IL_and, IL_call, IL_calli, IL_callinst, IL_callmi, IL_callvirt, IL_castptr,
IL_ceq, IL_cgt, IL_cgt_un, IL_clt, IL_clt_un,
IL_cast_i4, IL_cast_i8, IL_cast_r4, IL_cast_r8,
IL_conv_i1, IL_conv_i2, IL_conv_i4, IL_conv_i8, IL_conv_r4, IL_conv_r8,
IL_conv_u1, IL_conv_u2, IL_conv_u4, IL_conv_u8,
IL_div, IL_div_un, IL_dup, IL_iif, IL_initobj, IL_isinst, IL_ldarg, IL_ldarg_s,
IL_ldarg_0, IL_ldarg_1, IL_ldarg_2, IL_ldarg_3,
IL_ldarga, IL_ldarga_s,
IL_ldc_i4, IL_ldc_i8, IL_ldc_i4_s, IL_ldc_r4, IL_ldc_r8,
IL_ldc_i4_0, IL_ldc_i4_1, IL_ldc_i4_2, IL_ldc_i4_3, IL_ldc_i4_4, IL_ldc_i4_5,
IL_ldc_i4_6, IL_ldc_i4_7, IL_ldc_i4_8, IL_ldc_i4_m1, IL_ldc_obj,
IL_ldelem, IL_ldelema, IL_ldelem_i1, IL_ldelem_i2,
IL_ldelem_i4, IL_ldelem_i8, IL_ldelem_u1, IL_ldelem_u2,
IL_ldelem_u4, IL_ldelem_u8, IL_ldelem_r4, IL_ldelem_r8, IL_ldelem_ip, IL_ldelem_ipp,
IL_ldfld, IL_ldflda,
IL_ldiface,
IL_ldind_i1, IL_ldind_i2, IL_ldind_i4, IL_ldind_i8, IL_ldind_u1, IL_ldind_u2,
IL_ldind_u4, IL_ldind_r4, IL_ldind_u8, IL_ldind_r8, IL_ldind_ip, IL_ldind_ipp,
IL_ldloc, IL_ldloc_s, IL_ldloca, IL_ldloca_s,
IL_ldloc_0, IL_ldloc_1, IL_ldloc_2, IL_ldloc_3, IL_ldnull,
IL_ldind, IL_ldproc, IL_ldmeth, IL_ldstr,
IL_ldvar, IL_ldvara, IL_mul, IL_neg,
IL_newarr, IL_newvla, IL_newobj,
IL_not, IL_or, IL_rem, IL_rem_un, IL_shl, IL_shr, IL_shr_un,
IL_sizeof, IL_sub, IL_xor, IL_ptroff, IL_nop,
// statements
IL_STATEMENTS,
IL_free, IL_repeat, IL_until,
IL_exit, IL_goto, IL_if, IL_then, IL_else, IL_end,
IL_label, IL_line, IL_loop, IL_pop, IL_ret,
IL_starg, IL_starg_s,
IL_stelem, IL_stelem_i1, IL_stelem_i2, IL_stelem_i4, IL_stelem_i8,
IL_stelem_r4, IL_stelem_r8, IL_stelem_ip, IL_stelem_ipp, IL_stfld,
IL_stind_i1, IL_stind_i2, IL_stind_i4, IL_stind_i8, IL_stind_r4, IL_stind_r8, IL_stind_ip, IL_stind_ipp,
IL_stloc, IL_stloc_s, IL_stloc_0, IL_stloc_1, IL_stloc_2, IL_stloc_3,
IL_stind, IL_strcpy, IL_stvar, IL_switch, IL_case, IL_while, IL_do,
IL_NUM_OF_OPS
}; // Update s_opName !!!
extern const char* s_opName[];
static inline bool isExprOp(IL_op op)
{
return op > IL_EXPRESSIONS && op < IL_STATEMENTS;
}
}
#endif // MICMILOPS_H