comparison interps/c-intercal/oilout0d.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_d(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==C_AND)
11 do
12 {
13 if(!nodessame(np->lval,np->rval)) break;
14 x1=np->rval->constant; c1=np->rval->optdata;
15 OPTING(anditself);
16 tp=newnode();
17 tp=np->rval;
18 np->rval=0;
19 nodefree(np->lval); nodefree(np->rval);
20 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
21 } while(0);
22
23 checknodeactbits(np);
24 if(np->opcode==C_OR)
25 do
26 {
27 if(!nodessame(np->lval,np->rval)) break;
28 x1=np->rval->constant; c1=np->rval->optdata;
29 OPTING(oritself);
30 tp=newnode();
31 tp=np->rval;
32 np->rval=0;
33 nodefree(np->lval); nodefree(np->rval);
34 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
35 } while(0);
36
37 checknodeactbits(np);
38 if(np->opcode==C_XOR)
39 do
40 {
41 if(!nodessame(np->lval,np->rval)) break;
42 x1=np->rval->constant; c1=np->rval->optdata;
43 OPTING(xoritself);
44 tp=newnode();
45 MAYBENEWNODE(tp);
46 tp->opcode=MESH32;
47 tp->width=32;
48 tp->constant=(0LU);
49 nodefree(np->lval); nodefree(np->rval);
50 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
51 } while(0);
52
53 checknodeactbits(np);
54 if(np->opcode==C_XOR &&
55 np->lval->opcode==C_XOR)
56 do
57 {
58 x2=np->lval->rval->constant; c2=np->lval->rval->optdata;
59 if(!nodessame(np->lval->lval,np->rval)) break;
60 x1=np->rval->constant; c1=np->rval->optdata;
61 OPTING(xoritself);
62 tp=newnode();
63 tp=np->lval->rval;
64 np->lval->rval=0;
65 nodefree(np->lval); nodefree(np->rval);
66 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
67 } while(0);
68
69 checknodeactbits(np);
70 if(np->opcode==C_XOR &&
71 np->lval->opcode==C_XOR)
72 do
73 {
74 x2=np->lval->lval->constant; c2=np->lval->lval->optdata;
75 if(!nodessame(np->lval->rval,np->rval)) break;
76 x1=np->rval->constant; c1=np->rval->optdata;
77 OPTING(xoritself);
78 tp=newnode();
79 tp=np->lval->lval;
80 np->lval->lval=0;
81 nodefree(np->lval); nodefree(np->rval);
82 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
83 } while(0);
84
85 checknodeactbits(np);
86 if(np->opcode==C_XOR &&
87 np->rval->opcode==C_XOR)
88 do
89 {
90 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
91 if(!nodessame(np->lval,np->rval->lval)) break;
92 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
93 OPTING(xoritself);
94 tp=newnode();
95 tp=np->rval->rval;
96 np->rval->rval=0;
97 nodefree(np->lval); nodefree(np->rval);
98 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
99 } while(0);
100
101 checknodeactbits(np);
102 if(np->opcode==C_XOR &&
103 np->rval->opcode==C_XOR)
104 do
105 {
106 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
107 if(!nodessame(np->lval,np->rval->rval)) break;
108 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
109 OPTING(xoritself);
110 tp=newnode();
111 tp=np->rval->lval;
112 np->rval->lval=0;
113 nodefree(np->lval); nodefree(np->rval);
114 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
115 } while(0);
116
117 checknodeactbits(np);
118 if(np->opcode==C_LOGICALNOT &&
119 np->rval->opcode==C_XOR)
120 do
121 {
122 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
123 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
124 OPTING(xortoequal);
125 tp=newnode();
126 MAYBENEWNODE(tp);
127 tp->opcode=C_ISEQUAL;
128 tp->width=16;
129 tp->lval=np->rval->lval;
130 np->rval->lval=0;
131 tp->rval=np->rval->rval;
132 np->rval->rval=0;
133 nodefree(np->lval); nodefree(np->rval);
134 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
135 } while(0);
136
137 checknodeactbits(np);
138 if(np->opcode==C_LOGICALNOT &&
139 np->rval->opcode==C_ISEQUAL)
140 do
141 {
142 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
143 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
144 OPTING(negatingequal);
145 tp=newnode();
146 MAYBENEWNODE(tp);
147 tp->opcode=C_NOTEQUAL;
148 tp->width=16;
149 tp->lval=np->rval->lval;
150 np->rval->lval=0;
151 tp->rval=np->rval->rval;
152 np->rval->rval=0;
153 nodefree(np->lval); nodefree(np->rval);
154 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
155 } while(0);
156
157 checknodeactbits(np);
158 if(np->opcode==C_LOGICALNOT &&
159 np->rval->opcode==C_NOTEQUAL)
160 do
161 {
162 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
163 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
164 OPTING(negatingequal);
165 tp=newnode();
166 MAYBENEWNODE(tp);
167 tp->opcode=C_ISEQUAL;
168 tp->width=16;
169 tp->lval=np->rval->lval;
170 np->rval->lval=0;
171 tp->rval=np->rval->rval;
172 np->rval->rval=0;
173 nodefree(np->lval); nodefree(np->rval);
174 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
175 } while(0);
176
177 checknodeactbits(np);
178 if(np->opcode==SELECT &&
179 np->lval->opcode==SELECT &&
180 np->lval->rval->width==32 &&
181 np->rval->opcode==C_XOR &&
182 np->rval->lval->opcode==XOR &&
183 np->rval->lval->width==32 &&
184 np->rval->lval->rval->opcode==SELECT &&
185 np->rval->lval->rval->lval->width==32 &&
186 np->rval->lval->rval->rval->width==32 &&
187 (np->rval->rval->opcode==MESH || np->rval->rval->opcode==MESH32) &&
188 np->rval->rval->constant==2147483648LU)
189 do
190 {
191 if(!nodessame(np->lval->rval,np->rval->lval->rval->lval)) break;
192 if(!nodessame(np->rval->lval->rval->lval,np->rval->lval->rval->rval)) break;
193 x2=np->rval->lval->rval->rval->constant; c2=np->rval->lval->rval->rval->optdata;
194 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
195 OPTING(greaterthan32);
196 tp=newnode();
197 MAYBENEWNODE(tp);
198 tp->opcode=C_GREATER;
199 tp->width=32;
200 tp->lval=nodecopy(np->lval->lval);
201 MAYBENEWNODE(tp->rval);
202 tp->rval->opcode=C_XOR;
203 tp->rval->width=32;
204 tp->rval->lval=np->rval->lval->rval->rval;
205 np->rval->lval->rval->rval=0;
206 tp->rval->rval=np->lval->lval;
207 np->lval->lval=0;
208 nodefree(np->lval); nodefree(np->rval);
209 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
210 } while(0);
211
212 checknodeactbits(np);
213 if(np->opcode==SELECT &&
214 np->lval->opcode==SELECT &&
215 np->lval->rval->width==32 &&
216 np->rval->opcode==C_XOR &&
217 (np->rval->lval->opcode==MESH || np->rval->lval->opcode==MESH32) &&
218 np->rval->lval->constant==2147483648LU &&
219 np->rval->rval->opcode==XOR &&
220 np->rval->rval->width==32 &&
221 np->rval->rval->rval->opcode==SELECT &&
222 np->rval->rval->rval->lval->width==32 &&
223 np->rval->rval->rval->rval->width==32)
224 do
225 {
226 if(!nodessame(np->lval->rval,np->rval->rval->rval->lval)) break;
227 if(!nodessame(np->rval->rval->rval->lval,np->rval->rval->rval->rval)) break;
228 x2=np->rval->rval->rval->rval->constant; c2=np->rval->rval->rval->rval->optdata;
229 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
230 OPTING(greaterthan32);
231 tp=newnode();
232 MAYBENEWNODE(tp);
233 tp->opcode=C_GREATER;
234 tp->width=32;
235 tp->lval=nodecopy(np->lval->lval);
236 MAYBENEWNODE(tp->rval);
237 tp->rval->opcode=C_XOR;
238 tp->rval->width=32;
239 tp->rval->lval=np->rval->rval->rval->rval;
240 np->rval->rval->rval->rval=0;
241 tp->rval->rval=np->lval->lval;
242 np->lval->lval=0;
243 nodefree(np->lval); nodefree(np->rval);
244 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
245 } while(0);
246
247 checknodeactbits(np);
248 if(np->opcode==SELECT &&
249 np->lval->opcode==SELECT &&
250 np->lval->rval->width==16 &&
251 np->rval->opcode==C_XOR &&
252 np->rval->lval->opcode==XOR &&
253 np->rval->lval->width==16 &&
254 np->rval->lval->rval->opcode==SELECT &&
255 np->rval->lval->rval->lval->width==16 &&
256 np->rval->lval->rval->rval->width==16 &&
257 (np->rval->rval->opcode==MESH || np->rval->rval->opcode==MESH32) &&
258 np->rval->rval->constant==32768LU)
259 do
260 {
261 if(!nodessame(np->lval->rval,np->rval->lval->rval->lval)) break;
262 if(!nodessame(np->rval->lval->rval->lval,np->rval->lval->rval->rval)) break;
263 x2=np->rval->lval->rval->rval->constant; c2=np->rval->lval->rval->rval->optdata;
264 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
265 OPTING(greaterthan16);
266 tp=newnode();
267 MAYBENEWNODE(tp);
268 tp->opcode=C_GREATER;
269 tp->width=32;
270 tp->lval=nodecopy(np->lval->lval);
271 MAYBENEWNODE(tp->rval);
272 tp->rval->opcode=C_XOR;
273 tp->rval->width=32;
274 tp->rval->lval=np->rval->lval->rval->rval;
275 np->rval->lval->rval->rval=0;
276 tp->rval->rval=np->lval->lval;
277 np->lval->lval=0;
278 nodefree(np->lval); nodefree(np->rval);
279 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
280 } while(0);
281
282 checknodeactbits(np);
283 if(np->opcode==SELECT &&
284 np->lval->opcode==SELECT &&
285 np->lval->rval->width==16 &&
286 np->rval->opcode==C_XOR &&
287 (np->rval->lval->opcode==MESH || np->rval->lval->opcode==MESH32) &&
288 np->rval->lval->constant==32768LU &&
289 np->rval->rval->opcode==XOR &&
290 np->rval->rval->width==16 &&
291 np->rval->rval->rval->opcode==SELECT &&
292 np->rval->rval->rval->lval->width==16 &&
293 np->rval->rval->rval->rval->width==16)
294 do
295 {
296 if(!nodessame(np->lval->rval,np->rval->rval->rval->lval)) break;
297 if(!nodessame(np->rval->rval->rval->lval,np->rval->rval->rval->rval)) break;
298 x2=np->rval->rval->rval->rval->constant; c2=np->rval->rval->rval->rval->optdata;
299 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
300 OPTING(greaterthan16);
301 tp=newnode();
302 MAYBENEWNODE(tp);
303 tp->opcode=C_GREATER;
304 tp->width=32;
305 tp->lval=nodecopy(np->lval->lval);
306 MAYBENEWNODE(tp->rval);
307 tp->rval->opcode=C_XOR;
308 tp->rval->width=32;
309 tp->rval->lval=np->rval->rval->rval->rval;
310 np->rval->rval->rval->rval=0;
311 tp->rval->rval=np->lval->lval;
312 np->lval->lval=0;
313 nodefree(np->lval); nodefree(np->rval);
314 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
315 } while(0);
316
317 checknodeactbits(np);
318 if(np->opcode==C_AND &&
319 np->lval->opcode==C_XOR)
320 do
321 {
322 if(!nodessame(np->lval->rval,np->rval)) break;
323 x2=np->rval->constant; c2=np->rval->optdata;
324 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
325 OPTING(xoroutsideand);
326 tp=newnode();
327 MAYBENEWNODE(tp);
328 tp->opcode=C_XOR;
329 tp->width=32;
330 MAYBENEWNODE(tp->lval);
331 tp->lval->opcode=C_AND;
332 tp->lval->width=32;
333 tp->lval->lval=np->lval->lval;
334 np->lval->lval=0;
335 tp->lval->rval=nodecopy(np->rval);
336 tp->rval=np->rval;
337 np->rval=0;
338 nodefree(np->lval); nodefree(np->rval);
339 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
340 } while(0);
341
342 checknodeactbits(np);
343 if(np->opcode==C_AND &&
344 np->rval->opcode==C_XOR)
345 do
346 {
347 if(!nodessame(np->lval,np->rval->rval)) break;
348 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
349 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
350 OPTING(xoroutsideand);
351 tp=newnode();
352 MAYBENEWNODE(tp);
353 tp->opcode=C_XOR;
354 tp->width=32;
355 MAYBENEWNODE(tp->lval);
356 tp->lval->opcode=C_AND;
357 tp->lval->width=32;
358 tp->lval->lval=np->rval->lval;
359 np->rval->lval=0;
360 tp->lval->rval=nodecopy(np->rval->rval);
361 tp->rval=np->rval->rval;
362 np->rval->rval=0;
363 nodefree(np->lval); nodefree(np->rval);
364 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
365 } while(0);
366
367 checknodeactbits(np);
368 if(np->opcode==C_AND &&
369 np->lval->opcode==C_XOR)
370 do
371 {
372 if(!nodessame(np->lval->lval,np->rval)) break;
373 x2=np->rval->constant; c2=np->rval->optdata;
374 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
375 OPTING(xoroutsideand);
376 tp=newnode();
377 MAYBENEWNODE(tp);
378 tp->opcode=C_XOR;
379 tp->width=32;
380 MAYBENEWNODE(tp->lval);
381 tp->lval->opcode=C_AND;
382 tp->lval->width=32;
383 tp->lval->lval=np->lval->rval;
384 np->lval->rval=0;
385 tp->lval->rval=nodecopy(np->rval);
386 tp->rval=np->rval;
387 np->rval=0;
388 nodefree(np->lval); nodefree(np->rval);
389 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
390 } while(0);
391
392 checknodeactbits(np);
393 if(np->opcode==C_AND &&
394 np->rval->opcode==C_XOR)
395 do
396 {
397 if(!nodessame(np->lval,np->rval->lval)) break;
398 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
399 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
400 OPTING(xoroutsideand);
401 tp=newnode();
402 MAYBENEWNODE(tp);
403 tp->opcode=C_XOR;
404 tp->width=32;
405 MAYBENEWNODE(tp->lval);
406 tp->lval->opcode=C_AND;
407 tp->lval->width=32;
408 tp->lval->lval=np->rval->rval;
409 np->rval->rval=0;
410 tp->lval->rval=nodecopy(np->rval->lval);
411 tp->rval=np->rval->lval;
412 np->rval->lval=0;
413 nodefree(np->lval); nodefree(np->rval);
414 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
415 } while(0);
416
417 checknodeactbits(np);
418 if(np->opcode==C_XOR &&
419 (np->rval->opcode==MESH || np->rval->opcode==MESH32) &&
420 np->rval->constant==1LU)
421 do
422 {
423 x1=np->lval->constant; c1=np->lval->optdata;
424 x=x1; c=c1; if(!(c==1)) break;
425 OPTING(booleannot);
426 tp=newnode();
427 MAYBENEWNODE(tp);
428 tp->opcode=C_LOGICALNOT;
429 tp->width=16;
430 tp->rval=np->lval;
431 np->lval=0;
432 nodefree(np->lval); nodefree(np->rval);
433 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
434 } while(0);
435
436 checknodeactbits(np);
437 if(np->opcode==C_MINUS &&
438 (np->lval->opcode==MESH || np->lval->opcode==MESH32) &&
439 np->lval->constant==2LU &&
440 np->rval->opcode==C_LOGICALNOT)
441 do
442 {
443 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
444 x=x1; c=c1; if(!(c==1)) break;
445 OPTING(not21);
446 tp=newnode();
447 MAYBENEWNODE(tp);
448 tp->opcode=C_PLUS;
449 tp->width=32;
450 tp->lval=np->rval->rval;
451 np->rval->rval=0;
452 MAYBENEWNODE(tp->rval);
453 tp->rval->opcode=MESH32;
454 tp->rval->width=32;
455 tp->rval->constant=(1LU);
456 nodefree(np->lval); nodefree(np->rval);
457 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
458 } while(0);
459
460 c=c1=c2=c3=c4=c5=c6=c7=c8=c9=0;
461 x=x1=x2=x3=x4=x5=x6=x7=x8=x9=r=0;
462 if(c+c1+c2+c3+c4+c5+c6+c7+c8+c9+r+
463 x+x1+x2+x3+x4+x5+x6+x7+x8+x9) raise(SIGSEGV);
464 return opted;
465 }