annotate Bison-Flex/BasicCompiler-StackBase/UTF8/vm_code.h @ 2:fbe42292d479

upload test
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 10 May 2011 06:43:55 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #ifdef VM_ENUMDEF
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #define VMCODE0(code_, name_) code_,
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 #define VMCODE1(code_, name_) code_,
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #endif
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #ifdef VM_CREATE
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #define VMCODE0(code_, name_) void name_() { statement.push_back(CVMCode(code_)); }
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 #define VMCODE1(code_, name_) void name_(int arg1) { statement.push_back(CVMCode(code_, arg1)); }
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 #endif
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 #ifdef VM_EXEC
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 #define VMCODE0(code_, name_) void name_();
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 #define VMCODE1(code_, name_) void name_();
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 #endif
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 #ifdef VM_EXECTABLE
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 #define VMCODE0(code_, name_) &vcpu::name_,
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 #define VMCODE1(code_, name_) &vcpu::name_,
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 #endif
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 #ifdef VM_NAMETABLE
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 #define VMCODE0(code_, name_) #name_,
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 #define VMCODE1(code_, name_) #name_,
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 #endif
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 VMCODE1(VM_PUSHCONST, PushConst)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 VMCODE1(VM_PUSHVALUE, PushValue)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 VMCODE1(VM_POPVALUE, PopValue)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 VMCODE0(VM_POP, OpPop)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 VMCODE0(VM_NEG, OpNeg)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 VMCODE0(VM_EQ, OpEq)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 VMCODE0(VM_NE, OpNe)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 VMCODE0(VM_GT, OpGt)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 VMCODE0(VM_GE, OpGe)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 VMCODE0(VM_LT, OpLt)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 VMCODE0(VM_LE, OpLe)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 VMCODE0(VM_ADD, OpAdd)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 VMCODE0(VM_SUB, OpSub)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 VMCODE0(VM_MUL, OpMul)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 VMCODE0(VM_DIV, OpDiv)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 VMCODE0(VM_MOD, OpMod)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 VMCODE1(VM_JMP, OpJmp)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 VMCODE1(VM_JMPC, OpJmpC)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 VMCODE1(VM_JMPNC, OpJmpNC)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 VMCODE1(VM_PRINT, OpPrint)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 VMCODE0(VM_RAND, OpRand)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 VMCODE0(VM_HALT, OpHalt)
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 #undef VMCODE0
fbe42292d479 upload test
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 #undef VMCODE1