aboutsummaryrefslogtreecommitdiff
path: root/src/opcodes.h
blob: 2a0288c8d946924a1ef1f3bfb4e7626fe5c3ec54 (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
#define PUSHIMM    0x00
#define PUSHVAR    0x01
#define POP        0x02
#define MKCONST    0x03
#define INCVAR     0x04
#define DECVAR     0x05
#define WRITE_STR  0x06
#define REPEAT     0x07
#define JUMP       0x08
#define SUBCALL    0x09
#define SUBRET     0x0A
#define IF         0x0B
#define DELAY      0x0C
#define LOGVAR     0x0D
#define QUIT       0x0E
#define LOGASCII   0x0F
#define NEG        0x10
#define POW        0x11
#define MULT       0x12
#define DIV        0x13
#define MOD        0x14
#define ADD        0x15
#define SUB        0x16
#define EQ         0x17
#define NEQ        0x18
#define LEQ        0x19
#define GEQ        0x1A
#define LT         0x1B
#define GT         0x1C
#define LOGNOT     0x1D
#define LOGAND     0x1E
#define LOGOR      0x1F
#define BITAND     0x20
#define BITOR      0x21
#define BITXOR     0x22
#define BITCOMP    0x23
#define LSH        0x24
#define RSH        0x25
#define SQRT       0x26
#define DECL_CONST 0x27
#define SENDKEY    0x28
#define DFL_DELAY  0x29
#define STR_DELAY  0x2A
#define TYPE_DEC   0x2B
#define TYPE_STR   0x2C
#define ADD_CHAR   0x2D
#define NEWLINE    0x2E
#define READ_VAR   0x2F
#define MKSPECIAL  0x30
/* new opcodes here, be sure to update compile.c, vm.c, and emitc.c */
#define LINEMARK   0xFF