Mercurial > repo
comparison interps/c-intercal/oilout00.c @ 996:859f9b4339e6
<Gregor> tar xf egobot.tar.xz
author | HackBot |
---|---|
date | Sun, 09 Dec 2012 19:30:08 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
995:6883f5911eb7 | 996:859f9b4339e6 |
---|---|
1 /* Automatically generated output, edit source and recompile to change */ | |
2 #include "oil.h" | |
3 int optimize_pass1_0(node *np) | |
4 { int opted=0; | |
5 unsigned long c,c1,c2,c3,c4,c5,c6,c7,c8,c9; | |
6 unsigned long x,x1,x2,x3,x4,x5,x6,x7,x8,x9,r; | |
7 int tempw; | |
8 node *tp; | |
9 checknodeactbits(np); | |
10 if(np->opcode==MINGLE && | |
11 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
12 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
13 do | |
14 { | |
15 x2=np->rval->constant; c2=np->rval->optdata; | |
16 x1=np->lval->constant; c1=np->lval->optdata; | |
17 OPTING(minglefold); | |
18 tp=newnode(); | |
19 MAYBENEWNODE(tp); | |
20 tp->opcode=MESH32; | |
21 tp->width=32; | |
22 tp->constant=(mingle(x1,x2)); | |
23 nodefree(np->lval); nodefree(np->rval); | |
24 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
25 } while(0); | |
26 | |
27 checknodeactbits(np); | |
28 if(np->opcode==SELECT && | |
29 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
30 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
31 do | |
32 { | |
33 x2=np->rval->constant; c2=np->rval->optdata; | |
34 x1=np->lval->constant; c1=np->lval->optdata; | |
35 OPTING(selectfold); | |
36 tp=newnode(); | |
37 MAYBENEWNODE(tp); | |
38 tp->opcode=MESH32; | |
39 tp->width=32; | |
40 tp->constant=(iselect(x1,x2)); | |
41 nodefree(np->lval); nodefree(np->rval); | |
42 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
43 } while(0); | |
44 | |
45 checknodeactbits(np); | |
46 if(np->opcode==AND && | |
47 np->width==32 && | |
48 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
49 do | |
50 { | |
51 x1=np->rval->constant; c1=np->rval->optdata; | |
52 OPTING(and32fold); | |
53 tp=newnode(); | |
54 MAYBENEWNODE(tp); | |
55 tp->opcode=MESH32; | |
56 tp->width=32; | |
57 tp->constant=(and32(x1)); | |
58 nodefree(np->lval); nodefree(np->rval); | |
59 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
60 } while(0); | |
61 | |
62 checknodeactbits(np); | |
63 if(np->opcode==OR && | |
64 np->width==32 && | |
65 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
66 do | |
67 { | |
68 x1=np->rval->constant; c1=np->rval->optdata; | |
69 OPTING(or32fold); | |
70 tp=newnode(); | |
71 MAYBENEWNODE(tp); | |
72 tp->opcode=MESH32; | |
73 tp->width=32; | |
74 tp->constant=(or32(x1)); | |
75 nodefree(np->lval); nodefree(np->rval); | |
76 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
77 } while(0); | |
78 | |
79 checknodeactbits(np); | |
80 if(np->opcode==XOR && | |
81 np->width==32 && | |
82 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
83 do | |
84 { | |
85 x1=np->rval->constant; c1=np->rval->optdata; | |
86 OPTING(xor32fold); | |
87 tp=newnode(); | |
88 MAYBENEWNODE(tp); | |
89 tp->opcode=MESH32; | |
90 tp->width=32; | |
91 tp->constant=(xor32(x1)); | |
92 nodefree(np->lval); nodefree(np->rval); | |
93 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
94 } while(0); | |
95 | |
96 checknodeactbits(np); | |
97 if(np->opcode==AND && | |
98 np->width==16 && | |
99 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
100 do | |
101 { | |
102 x1=np->rval->constant; c1=np->rval->optdata; | |
103 OPTING(and16fold); | |
104 tp=newnode(); | |
105 MAYBENEWNODE(tp); | |
106 tp->opcode=MESH32; | |
107 tp->width=32; | |
108 tp->constant=(and16(x1)); | |
109 nodefree(np->lval); nodefree(np->rval); | |
110 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
111 } while(0); | |
112 | |
113 checknodeactbits(np); | |
114 if(np->opcode==OR && | |
115 np->width==16 && | |
116 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
117 do | |
118 { | |
119 x1=np->rval->constant; c1=np->rval->optdata; | |
120 OPTING(or16fold); | |
121 tp=newnode(); | |
122 MAYBENEWNODE(tp); | |
123 tp->opcode=MESH32; | |
124 tp->width=32; | |
125 tp->constant=(or16(x1)); | |
126 nodefree(np->lval); nodefree(np->rval); | |
127 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
128 } while(0); | |
129 | |
130 checknodeactbits(np); | |
131 if(np->opcode==XOR && | |
132 np->width==16 && | |
133 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
134 do | |
135 { | |
136 x1=np->rval->constant; c1=np->rval->optdata; | |
137 OPTING(xor16fold); | |
138 tp=newnode(); | |
139 MAYBENEWNODE(tp); | |
140 tp->opcode=MESH32; | |
141 tp->width=32; | |
142 tp->constant=(xor16(x1)); | |
143 nodefree(np->lval); nodefree(np->rval); | |
144 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
145 } while(0); | |
146 | |
147 checknodeactbits(np); | |
148 if(np->opcode==C_AND && | |
149 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
150 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
151 do | |
152 { | |
153 x2=np->rval->constant; c2=np->rval->optdata; | |
154 x1=np->lval->constant; c1=np->lval->optdata; | |
155 OPTING(cfold); | |
156 tp=newnode(); | |
157 MAYBENEWNODE(tp); | |
158 tp->opcode=MESH32; | |
159 tp->width=32; | |
160 tp->constant=(x1 & x2); | |
161 nodefree(np->lval); nodefree(np->rval); | |
162 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
163 } while(0); | |
164 | |
165 checknodeactbits(np); | |
166 if(np->opcode==C_OR && | |
167 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
168 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
169 do | |
170 { | |
171 x2=np->rval->constant; c2=np->rval->optdata; | |
172 x1=np->lval->constant; c1=np->lval->optdata; | |
173 OPTING(cfold); | |
174 tp=newnode(); | |
175 MAYBENEWNODE(tp); | |
176 tp->opcode=MESH32; | |
177 tp->width=32; | |
178 tp->constant=(x1 | x2); | |
179 nodefree(np->lval); nodefree(np->rval); | |
180 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
181 } while(0); | |
182 | |
183 checknodeactbits(np); | |
184 if(np->opcode==C_XOR && | |
185 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
186 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
187 do | |
188 { | |
189 x2=np->rval->constant; c2=np->rval->optdata; | |
190 x1=np->lval->constant; c1=np->lval->optdata; | |
191 OPTING(cfold); | |
192 tp=newnode(); | |
193 MAYBENEWNODE(tp); | |
194 tp->opcode=MESH32; | |
195 tp->width=32; | |
196 tp->constant=(x1 ^ x2); | |
197 nodefree(np->lval); nodefree(np->rval); | |
198 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
199 } while(0); | |
200 | |
201 checknodeactbits(np); | |
202 if(np->opcode==C_PLUS && | |
203 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
204 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
205 do | |
206 { | |
207 x2=np->rval->constant; c2=np->rval->optdata; | |
208 x1=np->lval->constant; c1=np->lval->optdata; | |
209 OPTING(cfold); | |
210 tp=newnode(); | |
211 MAYBENEWNODE(tp); | |
212 tp->opcode=MESH32; | |
213 tp->width=32; | |
214 tp->constant=(x1 + x2); | |
215 nodefree(np->lval); nodefree(np->rval); | |
216 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
217 } while(0); | |
218 | |
219 checknodeactbits(np); | |
220 if(np->opcode==C_MINUS && | |
221 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
222 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
223 do | |
224 { | |
225 x2=np->rval->constant; c2=np->rval->optdata; | |
226 x1=np->lval->constant; c1=np->lval->optdata; | |
227 OPTING(cfold); | |
228 tp=newnode(); | |
229 MAYBENEWNODE(tp); | |
230 tp->opcode=MESH32; | |
231 tp->width=32; | |
232 tp->constant=(x1 - x2); | |
233 nodefree(np->lval); nodefree(np->rval); | |
234 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
235 } while(0); | |
236 | |
237 checknodeactbits(np); | |
238 if(np->opcode==C_TIMES && | |
239 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
240 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
241 do | |
242 { | |
243 x2=np->rval->constant; c2=np->rval->optdata; | |
244 x1=np->lval->constant; c1=np->lval->optdata; | |
245 OPTING(cfold); | |
246 tp=newnode(); | |
247 MAYBENEWNODE(tp); | |
248 tp->opcode=MESH32; | |
249 tp->width=32; | |
250 tp->constant=(x1 * x2); | |
251 nodefree(np->lval); nodefree(np->rval); | |
252 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
253 } while(0); | |
254 | |
255 checknodeactbits(np); | |
256 if(np->opcode==C_DIVIDEBY && | |
257 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
258 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
259 do | |
260 { | |
261 x2=np->rval->constant; c2=np->rval->optdata; | |
262 x1=np->lval->constant; c1=np->lval->optdata; | |
263 OPTING(cfold); | |
264 tp=newnode(); | |
265 MAYBENEWNODE(tp); | |
266 tp->opcode=MESH32; | |
267 tp->width=32; | |
268 tp->constant=(x1 / x2); | |
269 nodefree(np->lval); nodefree(np->rval); | |
270 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
271 } while(0); | |
272 | |
273 checknodeactbits(np); | |
274 if(np->opcode==C_MODULUS && | |
275 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
276 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
277 do | |
278 { | |
279 x2=np->rval->constant; c2=np->rval->optdata; | |
280 x1=np->lval->constant; c1=np->lval->optdata; | |
281 OPTING(cfold); | |
282 tp=newnode(); | |
283 MAYBENEWNODE(tp); | |
284 tp->opcode=MESH32; | |
285 tp->width=32; | |
286 tp->constant=(x1 % x2); | |
287 nodefree(np->lval); nodefree(np->rval); | |
288 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
289 } while(0); | |
290 | |
291 checknodeactbits(np); | |
292 if(np->opcode==C_GREATER && | |
293 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
294 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
295 do | |
296 { | |
297 x2=np->rval->constant; c2=np->rval->optdata; | |
298 x1=np->lval->constant; c1=np->lval->optdata; | |
299 OPTING(cfold); | |
300 tp=newnode(); | |
301 MAYBENEWNODE(tp); | |
302 tp->opcode=MESH32; | |
303 tp->width=32; | |
304 tp->constant=(x1 > x2); | |
305 nodefree(np->lval); nodefree(np->rval); | |
306 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
307 } while(0); | |
308 | |
309 checknodeactbits(np); | |
310 if(np->opcode==C_LESS && | |
311 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
312 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
313 do | |
314 { | |
315 x2=np->rval->constant; c2=np->rval->optdata; | |
316 x1=np->lval->constant; c1=np->lval->optdata; | |
317 OPTING(cfold); | |
318 tp=newnode(); | |
319 MAYBENEWNODE(tp); | |
320 tp->opcode=MESH32; | |
321 tp->width=32; | |
322 tp->constant=(x1 < x2); | |
323 nodefree(np->lval); nodefree(np->rval); | |
324 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
325 } while(0); | |
326 | |
327 checknodeactbits(np); | |
328 if(np->opcode==C_RSHIFTBY && | |
329 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
330 (np->rval->opcode==MESH || np->rval->opcode==MESH32)) | |
331 do | |
332 { | |
333 x2=np->rval->constant; c2=np->rval->optdata; | |
334 x1=np->lval->constant; c1=np->lval->optdata; | |
335 OPTING(cfold); | |
336 tp=newnode(); | |
337 MAYBENEWNODE(tp); | |
338 tp->opcode=MESH32; | |
339 tp->width=32; | |
340 tp->constant=(x1 >> x2); | |
341 nodefree(np->lval); nodefree(np->rval); | |
342 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
343 } while(0); | |
344 | |
345 c=c1=c2=c3=c4=c5=c6=c7=c8=c9=0; | |
346 x=x1=x2=x3=x4=x5=x6=x7=x8=x9=r=0; | |
347 if(c+c1+c2+c3+c4+c5+c6+c7+c8+c9+r+ | |
348 x+x1+x2+x3+x4+x5+x6+x7+x8+x9) raise(SIGSEGV); | |
349 return opted; | |
350 } |