Updated interpreters
[projects/chimara/chimara.git] / interpreters / git / labels.inc
1 // Pseudo-operations.
2
3 LABEL (jump_abs_L7)
4 LABEL (enter_function_L1)
5
6 LABEL (debug_step)
7
8 LABEL (args_stack_call_stub_discard)
9 LABEL (args_stack_call_stub_addr)
10 LABEL (args_stack_call_stub_local)
11 LABEL (args_stack_call_stub_stack)
12
13 LABEL (args_stack)
14 LABEL (args_0)
15 LABEL (args_1)
16 LABEL (args_2)
17 LABEL (args_3)
18
19 LABEL (call_stub_discard)
20 LABEL (call_stub_addr)
21 LABEL (call_stub_local)
22 LABEL (call_stub_stack)
23
24 LABEL (catch_stub_discard)
25 LABEL (catch_stub_addr)
26 LABEL (catch_stub_local)
27 LABEL (catch_stub_stack)
28
29 LABEL (save_stub_discard)
30 LABEL (save_stub_addr)
31 LABEL (save_stub_local)
32 LABEL (save_stub_stack)
33
34 LABEL (undo_stub_discard)
35 LABEL (undo_stub_addr)
36 LABEL (undo_stub_local)
37 LABEL (undo_stub_stack)
38
39 LABEL (tailcall)
40 LABEL (throw)
41
42 // Loading and storing registers.
43
44 #define LOAD_LABELS(tag)                        \
45         LABEL (L1_ ## tag)                      \
46         LABEL (L2_ ## tag)                      \
47         LABEL (L3_ ## tag)                      \
48         LABEL (L4_ ## tag)                      \
49         LABEL (L5_ ## tag)                      \
50         LABEL (L6_ ## tag)                      \
51         LABEL (L7_ ## tag)                      \
52         LABEL (L1_const_L2_ ## tag)             \
53         LABEL (L1_stack_L2_ ## tag)             \
54         LABEL (L1_local_L2_ ## tag)             \
55         LABEL (L1_addr_L2_ ## tag)
56
57 #define STORE_LABELS(tag)                       \
58         LABEL (S1_ ## tag)                      \
59         LABEL (S2_ ## tag)
60
61 LOAD_LABELS(const)
62 LOAD_LABELS(stack)
63 LOAD_LABELS(local)
64 LOAD_LABELS(addr)
65
66 STORE_LABELS(stack)
67 STORE_LABELS(local)
68 STORE_LABELS(addr)
69
70 LABEL(L1_addr16)
71 LABEL(L1_addr8)
72
73 LABEL(S1_addr16)
74 LABEL(S1_addr8)
75
76 #undef LOAD_LABELS
77 #undef STORE_LABELS
78
79 // Labels corresponding to glulx opcodes.
80
81 LABEL (nop)
82
83 #define PEEPHOLE_STORE_LABELS(tag) \
84         LABEL (add ## tag) \
85         LABEL (sub ## tag) \
86         LABEL (mul ## tag) \
87         LABEL (div ## tag) \
88         LABEL (mod ## tag) \
89         LABEL (neg ## tag) \
90         LABEL (bitand ## tag) \
91         LABEL (bitor ## tag) \
92         LABEL (bitxor ## tag) \
93         LABEL (bitnot ## tag) \
94         LABEL (shiftl ## tag) \
95         LABEL (sshiftr ## tag) \
96         LABEL (ushiftr ## tag) \
97         LABEL (copys ## tag) \
98         LABEL (copyb ## tag) \
99         LABEL (sexs ## tag) \
100         LABEL (sexb ## tag) \
101         LABEL (aload ## tag) \
102         LABEL (aloads ## tag) \
103         LABEL (aloadb ## tag) \
104         LABEL (aloadbit ## tag) \
105         LABEL (fadd ## tag) \
106         LABEL (fsub ## tag) \
107         LABEL (fmul ## tag) \
108         LABEL (fdiv ## tag)
109
110 PEEPHOLE_STORE_LABELS(_discard)
111 PEEPHOLE_STORE_LABELS(_S1_stack)
112 PEEPHOLE_STORE_LABELS(_S1_local)
113 PEEPHOLE_STORE_LABELS(_S1_addr)
114
115 #define PEEPHOLE_LOAD_LABELS(tag) \
116         LABEL (return_L1_ ## tag) \
117         LABEL (astore_L3_ ## tag) \
118         LABEL (astores_L3_ ## tag) \
119         LABEL (astoreb_L3_ ## tag) \
120         LABEL (astorebit_L3_ ## tag)
121
122 PEEPHOLE_LOAD_LABELS(const)
123 PEEPHOLE_LOAD_LABELS(stack)
124 PEEPHOLE_LOAD_LABELS(addr)
125 PEEPHOLE_LOAD_LABELS(local)
126
127 LABEL (return)
128 LABEL (astore)
129 LABEL (astores)
130 LABEL (astoreb)
131 LABEL (astorebit)
132
133 #undef PEEPHOLE_STORE_LABELS
134
135 #define BRANCH_LABELS(tag)    \
136         LABEL (jump ## tag)   \
137         LABEL (jz ## tag)     \
138         LABEL (jnz ## tag)    \
139         LABEL (jeq ## tag)    \
140         LABEL (jne ## tag)    \
141         LABEL (jlt ## tag)    \
142         LABEL (jge ## tag)    \
143         LABEL (jgt ## tag)    \
144         LABEL (jle ## tag)    \
145         LABEL (jltu ## tag)   \
146         LABEL (jgeu ## tag)   \
147         LABEL (jgtu ## tag)   \
148         LABEL (jleu ## tag)   \
149         LABEL (jflt ## tag)   \
150         LABEL (jfge ## tag)   \
151         LABEL (jfgt ## tag)   \
152         LABEL (jfle ## tag)   \
153         LABEL (jisnan ## tag) \
154         LABEL (jisinf ## tag) \
155         LABEL (jfeq ## tag)   \
156         LABEL (jfne ## tag)
157
158 BRANCH_LABELS(_var)
159 BRANCH_LABELS(_const)
160 BRANCH_LABELS(_by)
161 BRANCH_LABELS(_return0)
162 BRANCH_LABELS(_return1)
163
164 LABEL (stkcount)
165 LABEL (stkpeek)
166 LABEL (stkswap)
167 LABEL (stkroll)
168 LABEL (stkcopy)
169
170 LABEL (streamchar)
171 LABEL (streamnum)
172 LABEL (streamstr)
173 LABEL (streamunichar)
174
175 LABEL (gestalt)
176 LABEL (debugtrap)
177 LABEL (getmemsize)
178 LABEL (setmemsize)
179 LABEL (jumpabs)
180
181 LABEL (random)
182 LABEL (setrandom)
183
184 LABEL (quit)
185 LABEL (verify)
186 LABEL (restart)
187 LABEL (restore)
188 LABEL (restoreundo)
189 LABEL (protect)
190
191 LABEL (glk)
192
193 LABEL (getstringtbl)
194 LABEL (setstringtbl)
195 LABEL (getiosys)
196 LABEL (setiosys)
197
198 LABEL (linearsearch)
199 LABEL (binarysearch)
200 LABEL (linkedsearch)
201
202 LABEL (mzero)
203 LABEL (mcopy)
204 LABEL (malloc)
205 LABEL (mfree)
206
207 LABEL (accelfunc)
208 LABEL (accelparam)
209
210 LABEL (numtof)
211 LABEL (ftonumz)
212 LABEL (ftonumn)
213 LABEL (ceil)
214 LABEL (floor)
215 LABEL (fmod)
216 LABEL (sqrt)
217 LABEL (exp)
218 LABEL (log)
219 LABEL (pow)
220 LABEL (sin)
221 LABEL (cos)
222 LABEL (tan)
223 LABEL (asin)
224 LABEL (acos)
225 LABEL (atan)
226 LABEL (atan2)
227
228 LABEL (git_setcacheram)
229 LABEL (git_prunecache)
230
231 LABEL (error_bad_opcode)
232 LABEL (recompile)
233
234 // No more labels to define.
235 #undef LABEL