annotate Bison-Flex/BasicCompiler-MemoryBase/UTF8/vm_code.h @ 4:805d39d28230

add Compiler-stackbase
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 17 May 2011 08:00:38 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #ifdef VM_ENUMDEF
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #define VMCODE0(code_, name_) code_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #define VMCODE1(code_, name_) code_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #define VMCODE2(code_, name_) code_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #define VMCODE3(code_, name_) code_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #endif
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #ifdef VM_CREATE
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #define VMCODE0(code_, name_) void name_() \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 statement.push_back(CVMCode(code_)); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 }
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 #define VMCODE1(code_, name_) void name_(int arg1) \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 statement.push_back(CVMCode(code_, arg1)); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 }
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 #define VMCODE2(code_, name_) void name_(int arg1, int arg2) \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 statement.push_back(CVMCode(code_, arg1, arg2)); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 }
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 #define VMCODE3(code_, name_) void name_(int arg1, int arg2, int arg3) \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 statement.push_back(CVMCode(code_, arg1, arg2, arg3)); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 }
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 #endif
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 #ifdef VM_NAMETABLE
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 #define VMCODE0(code_, name_) #name_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 #define VMCODE1(code_, name_) #name_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 #define VMCODE2(code_, name_) #name_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 #define VMCODE3(code_, name_) #name_,
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 #endif
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 #ifdef VM_SWITCHTABLE
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 #define VMCODE0(code_, name_) case code_: \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 name_(); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 } \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 break;
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 #define VMCODE1(code_, name_) case code_: \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 const int *v = value(1); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 name_(v[0]); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 } \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 break;
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 #define VMCODE2(code_, name_) case code_: \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 const int *v = value(2); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 name_(v[0], v[1]); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 } \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 break;
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 #define VMCODE3(code_, name_) case code_: \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 { \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 const int *v = value(3); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 name_(v[0], v[1], v[2]); \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 } \
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 break;
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 #endif
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 VMCODE1(VM_PUSHCONST, PushConst)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 VMCODE1(VM_PUSHVALUE, PushValue)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 VMCODE1(VM_POPVALUE, PopValue)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 VMCODE0(VM_POP, OpPop)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 VMCODE2(VM_MOV_C, OpMovC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 VMCODE2(VM_MOV_V, OpMovV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 VMCODE2(VM_NEG_C, OpNegC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 VMCODE2(VM_NEG_V, OpNegV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 VMCODE3(VM_EQ_CC, OpEqCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 VMCODE3(VM_EQ_VC, OpEqVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 VMCODE3(VM_EQ_CV, OpEqCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 VMCODE3(VM_EQ_VV, OpEqVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 VMCODE3(VM_NE_CC, OpNeCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 VMCODE3(VM_NE_VC, OpNeVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 VMCODE3(VM_NE_CV, OpNeCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 VMCODE3(VM_NE_VV, OpNeVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 VMCODE3(VM_GT_CC, OpGtCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 VMCODE3(VM_GT_VC, OpGtVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 VMCODE3(VM_GT_CV, OpGtCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 VMCODE3(VM_GT_VV, OpGtVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 VMCODE3(VM_GE_CC, OpGeCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 VMCODE3(VM_GE_VC, OpGeVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 VMCODE3(VM_GE_CV, OpGeCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 VMCODE3(VM_GE_VV, OpGeVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 VMCODE3(VM_LT_CC, OpLtCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 VMCODE3(VM_LT_VC, OpLtVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 VMCODE3(VM_LT_CV, OpLtCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 VMCODE3(VM_LT_VV, OpLtVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 VMCODE3(VM_LE_CC, OpLeCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 VMCODE3(VM_LE_VC, OpLeVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 VMCODE3(VM_LE_CV, OpLeCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 VMCODE3(VM_LE_VV, OpLeVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 VMCODE3(VM_ADD_CC, OpAddCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 VMCODE3(VM_ADD_VC, OpAddVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 VMCODE3(VM_ADD_CV, OpAddCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 VMCODE3(VM_ADD_VV, OpAddVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 VMCODE3(VM_SUB_CC, OpSubCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 VMCODE3(VM_SUB_VC, OpSubVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 VMCODE3(VM_SUB_CV, OpSubCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 VMCODE3(VM_SUB_VV, OpSubVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 VMCODE3(VM_MUL_CC, OpMulCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 VMCODE3(VM_MUL_VC, OpMulVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 VMCODE3(VM_MUL_CV, OpMulCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 VMCODE3(VM_MUL_VV, OpMulVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 VMCODE3(VM_DIV_CC, OpDivCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 VMCODE3(VM_DIV_VC, OpDivVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 VMCODE3(VM_DIV_CV, OpDivCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 VMCODE3(VM_DIV_VV, OpDivVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 VMCODE3(VM_MOD_CC, OpModCC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 VMCODE3(VM_MOD_VC, OpModVC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 VMCODE3(VM_MOD_CV, OpModCV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 VMCODE3(VM_MOD_VV, OpModVV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 VMCODE1(VM_JMP, OpJmp)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 VMCODE2(VM_JMPC, OpJmpC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 VMCODE2(VM_JMPNC, OpJmpNC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 VMCODE1(VM_PRINT, OpPrint)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 VMCODE2(VM_RAND_C, OpRandC)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 VMCODE2(VM_RAND_V, OpRandV)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 VMCODE0(VM_HALT, OpHalt)
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
119
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 #undef VMCODE0
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 #undef VMCODE1
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 #undef VMCODE2
805d39d28230 add Compiler-stackbase
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 #undef VMCODE3