-
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathoptokens.h
90 lines (83 loc) · 1.34 KB
/
optokens.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
//
// definitions for various binary (and unary) operators
//
#ifndef BINOP_H
#define BINOP_H
enum OpToken {
K_ASSIGN = 0x100,
K_BOOL_OR,
K_BOOL_AND,
K_GE,
K_LE,
K_NE,
K_EQ,
K_LIMITMIN,
K_LIMITMAX,
K_MODULUS,
K_HIGHMULT,
K_ROTR,
K_ROTL,
K_SHL,
K_SHR,
K_SAR,
K_REV,
K_NEGATE,
K_BIT_NOT,
K_SQRT,
K_ABS,
K_DECODE,
K_ENCODE,
K_BOOL_NOT,
K_SGNCOMP,
K_INCREMENT,
K_DECREMENT,
K_BOOL_XOR,
K_UNS_DIV,
K_UNS_MOD,
K_SIGNEXTEND,
K_ZEROEXTEND,
K_LTU,
K_LEU,
K_GTU,
K_GEU,
K_ASC, /* BASIC ASC operator */
K_STRLEN, /* BASIC LEN operator */
K_LIMITMIN_UNS,
K_LIMITMAX_UNS,
K_POWER,
K_FRAC64,
K_UNS_HIGHMULT,
K_ONES_COUNT,
K_QLOG,
K_QEXP,
K_SCAS,
K_ENCODE2,
/* spin versions of && and ||, which cannot short-circuit */
K_LOGIC_AND,
K_LOGIC_OR,
K_LOGIC_XOR,
/* floating point */
/* these get turned into function calls */
K_FEQ,
K_FNE,
K_FLT,
K_FGT,
K_FLE,
K_FGE,
K_FADD,
K_FSUB,
K_FMUL,
K_FDIV,
K_FNEGATE,
K_FABS,
K_FSQRT,
/* special 16 bit multiplies */
K_MULU16,
K_MULS16,
/* reference pointer pre-inc/dec */
K_REF_PREINC,
K_REF_PREDEC,
K_REF_POSTINC,
K_REF_POSTDEC,
};
#endif