comparison interps/c-intercal/oilout07.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_7(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 np->lval->opcode==C_RSHIFTBY &&
12 np->rval->opcode==C_RSHIFTBY)
13 do
14 {
15 if(!nodessame(np->lval->rval,np->rval->rval)) break;
16 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
17 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
18 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
19 OPTING(distribll);
20 tp=newnode();
21 MAYBENEWNODE(tp);
22 tp->opcode=C_RSHIFTBY;
23 tp->width=32;
24 MAYBENEWNODE(tp->lval);
25 tp->lval->opcode=C_AND;
26 tp->lval->width=32;
27 tp->lval->lval=np->lval->lval;
28 np->lval->lval=0;
29 tp->lval->rval=np->rval->lval;
30 np->rval->lval=0;
31 tp->rval=np->rval->rval;
32 np->rval->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_OR &&
39 np->lval->opcode==C_RSHIFTBY &&
40 np->rval->opcode==C_RSHIFTBY)
41 do
42 {
43 if(!nodessame(np->lval->rval,np->rval->rval)) break;
44 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
45 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
46 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
47 OPTING(distribll);
48 tp=newnode();
49 MAYBENEWNODE(tp);
50 tp->opcode=C_RSHIFTBY;
51 tp->width=32;
52 MAYBENEWNODE(tp->lval);
53 tp->lval->opcode=C_OR;
54 tp->lval->width=32;
55 tp->lval->lval=np->lval->lval;
56 np->lval->lval=0;
57 tp->lval->rval=np->rval->lval;
58 np->rval->lval=0;
59 tp->rval=np->rval->rval;
60 np->rval->rval=0;
61 nodefree(np->lval); nodefree(np->rval);
62 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
63 } while(0);
64
65 checknodeactbits(np);
66 if(np->opcode==C_XOR &&
67 np->lval->opcode==C_RSHIFTBY &&
68 np->rval->opcode==C_RSHIFTBY)
69 do
70 {
71 if(!nodessame(np->lval->rval,np->rval->rval)) break;
72 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
73 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
74 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
75 OPTING(distribll);
76 tp=newnode();
77 MAYBENEWNODE(tp);
78 tp->opcode=C_RSHIFTBY;
79 tp->width=32;
80 MAYBENEWNODE(tp->lval);
81 tp->lval->opcode=C_XOR;
82 tp->lval->width=32;
83 tp->lval->lval=np->lval->lval;
84 np->lval->lval=0;
85 tp->lval->rval=np->rval->lval;
86 np->rval->lval=0;
87 tp->rval=np->rval->rval;
88 np->rval->rval=0;
89 nodefree(np->lval); nodefree(np->rval);
90 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
91 } while(0);
92
93 checknodeactbits(np);
94 if(np->opcode==C_AND &&
95 np->lval->opcode==C_AND &&
96 np->rval->opcode==C_AND)
97 do
98 {
99 if(!nodessame(np->lval->lval,np->rval->rval)) break;
100 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
101 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
102 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
103 OPTING(distribrl);
104 tp=newnode();
105 MAYBENEWNODE(tp);
106 tp->opcode=C_AND;
107 tp->width=32;
108 MAYBENEWNODE(tp->lval);
109 tp->lval->opcode=C_AND;
110 tp->lval->width=32;
111 tp->lval->lval=np->lval->rval;
112 np->lval->rval=0;
113 tp->lval->rval=np->rval->lval;
114 np->rval->lval=0;
115 tp->rval=np->rval->rval;
116 np->rval->rval=0;
117 nodefree(np->lval); nodefree(np->rval);
118 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
119 } while(0);
120
121 checknodeactbits(np);
122 if(np->opcode==C_AND &&
123 np->lval->opcode==C_OR &&
124 np->rval->opcode==C_OR)
125 do
126 {
127 if(!nodessame(np->lval->lval,np->rval->rval)) break;
128 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
129 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
130 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
131 OPTING(distribrl);
132 tp=newnode();
133 MAYBENEWNODE(tp);
134 tp->opcode=C_OR;
135 tp->width=32;
136 MAYBENEWNODE(tp->lval);
137 tp->lval->opcode=C_AND;
138 tp->lval->width=32;
139 tp->lval->lval=np->lval->rval;
140 np->lval->rval=0;
141 tp->lval->rval=np->rval->lval;
142 np->rval->lval=0;
143 tp->rval=np->rval->rval;
144 np->rval->rval=0;
145 nodefree(np->lval); nodefree(np->rval);
146 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
147 } while(0);
148
149 checknodeactbits(np);
150 if(np->opcode==C_OR &&
151 np->lval->opcode==C_AND &&
152 np->rval->opcode==C_AND)
153 do
154 {
155 if(!nodessame(np->lval->lval,np->rval->rval)) break;
156 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
157 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
158 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
159 OPTING(distribrl);
160 tp=newnode();
161 MAYBENEWNODE(tp);
162 tp->opcode=C_AND;
163 tp->width=32;
164 MAYBENEWNODE(tp->lval);
165 tp->lval->opcode=C_OR;
166 tp->lval->width=32;
167 tp->lval->lval=np->lval->rval;
168 np->lval->rval=0;
169 tp->lval->rval=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==C_OR &&
179 np->lval->opcode==C_OR &&
180 np->rval->opcode==C_OR)
181 do
182 {
183 if(!nodessame(np->lval->lval,np->rval->rval)) break;
184 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
185 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
186 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
187 OPTING(distribrl);
188 tp=newnode();
189 MAYBENEWNODE(tp);
190 tp->opcode=C_OR;
191 tp->width=32;
192 MAYBENEWNODE(tp->lval);
193 tp->lval->opcode=C_OR;
194 tp->lval->width=32;
195 tp->lval->lval=np->lval->rval;
196 np->lval->rval=0;
197 tp->lval->rval=np->rval->lval;
198 np->rval->lval=0;
199 tp->rval=np->rval->rval;
200 np->rval->rval=0;
201 nodefree(np->lval); nodefree(np->rval);
202 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
203 } while(0);
204
205 checknodeactbits(np);
206 if(np->opcode==C_XOR &&
207 np->lval->opcode==C_AND &&
208 np->rval->opcode==C_AND)
209 do
210 {
211 if(!nodessame(np->lval->lval,np->rval->rval)) break;
212 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
213 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
214 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
215 OPTING(distribrl);
216 tp=newnode();
217 MAYBENEWNODE(tp);
218 tp->opcode=C_AND;
219 tp->width=32;
220 MAYBENEWNODE(tp->lval);
221 tp->lval->opcode=C_XOR;
222 tp->lval->width=32;
223 tp->lval->lval=np->lval->rval;
224 np->lval->rval=0;
225 tp->lval->rval=np->rval->lval;
226 np->rval->lval=0;
227 tp->rval=np->rval->rval;
228 np->rval->rval=0;
229 nodefree(np->lval); nodefree(np->rval);
230 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
231 } while(0);
232
233 checknodeactbits(np);
234 if(np->opcode==C_AND &&
235 np->lval->opcode==C_AND &&
236 np->rval->opcode==C_AND)
237 do
238 {
239 if(!nodessame(np->lval->rval,np->rval->lval)) break;
240 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
241 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
242 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
243 OPTING(distriblr);
244 tp=newnode();
245 MAYBENEWNODE(tp);
246 tp->opcode=C_AND;
247 tp->width=32;
248 MAYBENEWNODE(tp->lval);
249 tp->lval->opcode=C_AND;
250 tp->lval->width=32;
251 tp->lval->lval=np->lval->lval;
252 np->lval->lval=0;
253 tp->lval->rval=np->rval->rval;
254 np->rval->rval=0;
255 tp->rval=np->rval->lval;
256 np->rval->lval=0;
257 nodefree(np->lval); nodefree(np->rval);
258 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
259 } while(0);
260
261 checknodeactbits(np);
262 if(np->opcode==C_AND &&
263 np->lval->opcode==C_OR &&
264 np->rval->opcode==C_OR)
265 do
266 {
267 if(!nodessame(np->lval->rval,np->rval->lval)) break;
268 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
269 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
270 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
271 OPTING(distriblr);
272 tp=newnode();
273 MAYBENEWNODE(tp);
274 tp->opcode=C_OR;
275 tp->width=32;
276 MAYBENEWNODE(tp->lval);
277 tp->lval->opcode=C_AND;
278 tp->lval->width=32;
279 tp->lval->lval=np->lval->lval;
280 np->lval->lval=0;
281 tp->lval->rval=np->rval->rval;
282 np->rval->rval=0;
283 tp->rval=np->rval->lval;
284 np->rval->lval=0;
285 nodefree(np->lval); nodefree(np->rval);
286 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
287 } while(0);
288
289 checknodeactbits(np);
290 if(np->opcode==C_OR &&
291 np->lval->opcode==C_AND &&
292 np->rval->opcode==C_AND)
293 do
294 {
295 if(!nodessame(np->lval->rval,np->rval->lval)) break;
296 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
297 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
298 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
299 OPTING(distriblr);
300 tp=newnode();
301 MAYBENEWNODE(tp);
302 tp->opcode=C_AND;
303 tp->width=32;
304 MAYBENEWNODE(tp->lval);
305 tp->lval->opcode=C_OR;
306 tp->lval->width=32;
307 tp->lval->lval=np->lval->lval;
308 np->lval->lval=0;
309 tp->lval->rval=np->rval->rval;
310 np->rval->rval=0;
311 tp->rval=np->rval->lval;
312 np->rval->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_OR &&
319 np->lval->opcode==C_OR &&
320 np->rval->opcode==C_OR)
321 do
322 {
323 if(!nodessame(np->lval->rval,np->rval->lval)) break;
324 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
325 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
326 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
327 OPTING(distriblr);
328 tp=newnode();
329 MAYBENEWNODE(tp);
330 tp->opcode=C_OR;
331 tp->width=32;
332 MAYBENEWNODE(tp->lval);
333 tp->lval->opcode=C_OR;
334 tp->lval->width=32;
335 tp->lval->lval=np->lval->lval;
336 np->lval->lval=0;
337 tp->lval->rval=np->rval->rval;
338 np->rval->rval=0;
339 tp->rval=np->rval->lval;
340 np->rval->lval=0;
341 nodefree(np->lval); nodefree(np->rval);
342 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
343 } while(0);
344
345 checknodeactbits(np);
346 if(np->opcode==C_XOR &&
347 np->lval->opcode==C_AND &&
348 np->rval->opcode==C_AND)
349 do
350 {
351 if(!nodessame(np->lval->rval,np->rval->lval)) break;
352 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
353 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
354 x1=np->lval->lval->constant; c1=np->lval->lval->optdata;
355 OPTING(distriblr);
356 tp=newnode();
357 MAYBENEWNODE(tp);
358 tp->opcode=C_AND;
359 tp->width=32;
360 MAYBENEWNODE(tp->lval);
361 tp->lval->opcode=C_XOR;
362 tp->lval->width=32;
363 tp->lval->lval=np->lval->lval;
364 np->lval->lval=0;
365 tp->lval->rval=np->rval->rval;
366 np->rval->rval=0;
367 tp->rval=np->rval->lval;
368 np->rval->lval=0;
369 nodefree(np->lval); nodefree(np->rval);
370 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
371 } while(0);
372
373 checknodeactbits(np);
374 if(np->opcode==C_AND &&
375 np->lval->opcode==C_AND &&
376 np->rval->opcode==C_AND)
377 do
378 {
379 if(!nodessame(np->lval->lval,np->rval->lval)) break;
380 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
381 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
382 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
383 OPTING(distribrr);
384 tp=newnode();
385 MAYBENEWNODE(tp);
386 tp->opcode=C_AND;
387 tp->width=32;
388 MAYBENEWNODE(tp->lval);
389 tp->lval->opcode=C_AND;
390 tp->lval->width=32;
391 tp->lval->lval=np->lval->rval;
392 np->lval->rval=0;
393 tp->lval->rval=np->rval->rval;
394 np->rval->rval=0;
395 tp->rval=np->rval->lval;
396 np->rval->lval=0;
397 nodefree(np->lval); nodefree(np->rval);
398 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
399 } while(0);
400
401 checknodeactbits(np);
402 if(np->opcode==C_AND &&
403 np->lval->opcode==C_OR &&
404 np->rval->opcode==C_OR)
405 do
406 {
407 if(!nodessame(np->lval->lval,np->rval->lval)) break;
408 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
409 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
410 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
411 OPTING(distribrr);
412 tp=newnode();
413 MAYBENEWNODE(tp);
414 tp->opcode=C_OR;
415 tp->width=32;
416 MAYBENEWNODE(tp->lval);
417 tp->lval->opcode=C_AND;
418 tp->lval->width=32;
419 tp->lval->lval=np->lval->rval;
420 np->lval->rval=0;
421 tp->lval->rval=np->rval->rval;
422 np->rval->rval=0;
423 tp->rval=np->rval->lval;
424 np->rval->lval=0;
425 nodefree(np->lval); nodefree(np->rval);
426 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
427 } while(0);
428
429 checknodeactbits(np);
430 if(np->opcode==C_OR &&
431 np->lval->opcode==C_AND &&
432 np->rval->opcode==C_AND)
433 do
434 {
435 if(!nodessame(np->lval->lval,np->rval->lval)) break;
436 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
437 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
438 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
439 OPTING(distribrr);
440 tp=newnode();
441 MAYBENEWNODE(tp);
442 tp->opcode=C_AND;
443 tp->width=32;
444 MAYBENEWNODE(tp->lval);
445 tp->lval->opcode=C_OR;
446 tp->lval->width=32;
447 tp->lval->lval=np->lval->rval;
448 np->lval->rval=0;
449 tp->lval->rval=np->rval->rval;
450 np->rval->rval=0;
451 tp->rval=np->rval->lval;
452 np->rval->lval=0;
453 nodefree(np->lval); nodefree(np->rval);
454 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
455 } while(0);
456
457 checknodeactbits(np);
458 if(np->opcode==C_OR &&
459 np->lval->opcode==C_OR &&
460 np->rval->opcode==C_OR)
461 do
462 {
463 if(!nodessame(np->lval->lval,np->rval->lval)) break;
464 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
465 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
466 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
467 OPTING(distribrr);
468 tp=newnode();
469 MAYBENEWNODE(tp);
470 tp->opcode=C_OR;
471 tp->width=32;
472 MAYBENEWNODE(tp->lval);
473 tp->lval->opcode=C_OR;
474 tp->lval->width=32;
475 tp->lval->lval=np->lval->rval;
476 np->lval->rval=0;
477 tp->lval->rval=np->rval->rval;
478 np->rval->rval=0;
479 tp->rval=np->rval->lval;
480 np->rval->lval=0;
481 nodefree(np->lval); nodefree(np->rval);
482 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
483 } while(0);
484
485 checknodeactbits(np);
486 if(np->opcode==C_XOR &&
487 np->lval->opcode==C_AND &&
488 np->rval->opcode==C_AND)
489 do
490 {
491 if(!nodessame(np->lval->lval,np->rval->lval)) break;
492 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
493 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
494 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
495 OPTING(distribrr);
496 tp=newnode();
497 MAYBENEWNODE(tp);
498 tp->opcode=C_AND;
499 tp->width=32;
500 MAYBENEWNODE(tp->lval);
501 tp->lval->opcode=C_XOR;
502 tp->lval->width=32;
503 tp->lval->lval=np->lval->rval;
504 np->lval->rval=0;
505 tp->lval->rval=np->rval->rval;
506 np->rval->rval=0;
507 tp->rval=np->rval->lval;
508 np->rval->lval=0;
509 nodefree(np->lval); nodefree(np->rval);
510 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
511 } while(0);
512
513 checknodeactbits(np);
514 if(np->opcode==C_AND &&
515 np->lval->opcode==C_LOGICALNOT &&
516 np->rval->opcode==C_LOGICALNOT)
517 do
518 {
519 x2=np->rval->rval->constant; c2=np->rval->rval->optdata;
520 x1=np->lval->rval->constant; c1=np->lval->rval->optdata;
521 OPTING(distribunary);
522 tp=newnode();
523 MAYBENEWNODE(tp);
524 tp->opcode=C_LOGICALNOT;
525 tp->width=16;
526 MAYBENEWNODE(tp->rval);
527 tp->rval->opcode=C_OR;
528 tp->rval->width=32;
529 tp->rval->lval=np->lval->rval;
530 np->lval->rval=0;
531 tp->rval->rval=np->rval->rval;
532 np->rval->rval=0;
533 nodefree(np->lval); nodefree(np->rval);
534 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
535 } while(0);
536
537 checknodeactbits(np);
538 if(np->opcode==C_OR &&
539 np->lval->opcode==C_AND &&
540 np->lval->lval->opcode==C_XOR &&
541 np->rval->opcode==C_AND)
542 do
543 {
544 x4=np->rval->rval->constant; c4=np->rval->rval->optdata;
545 x3=np->lval->rval->constant; c3=np->lval->rval->optdata;
546 x2=np->lval->lval->rval->constant; c2=np->lval->lval->rval->optdata;
547 if(!nodessame(np->lval->lval->lval,np->rval->lval)) break;
548 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
549 x=x4; c=c4; if(!((c&c3)==0)) break;
550 OPTING(distribhalfxoroveror1);
551 tp=newnode();
552 MAYBENEWNODE(tp);
553 tp->opcode=C_AND;
554 tp->width=32;
555 MAYBENEWNODE(tp->lval);
556 tp->lval->opcode=C_XOR;
557 tp->lval->width=32;
558 tp->lval->lval=np->rval->lval;
559 np->rval->lval=0;
560 tp->lval->rval=np->lval->lval->rval;
561 np->lval->lval->rval=0;
562 MAYBENEWNODE(tp->rval);
563 tp->rval->opcode=C_OR;
564 tp->rval->width=32;
565 tp->rval->lval=np->lval->rval;
566 np->lval->rval=0;
567 tp->rval->rval=np->rval->rval;
568 np->rval->rval=0;
569 nodefree(np->lval); nodefree(np->rval);
570 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
571 } while(0);
572
573 c=c1=c2=c3=c4=c5=c6=c7=c8=c9=0;
574 x=x1=x2=x3=x4=x5=x6=x7=x8=x9=r=0;
575 if(c+c1+c2+c3+c4+c5+c6+c7+c8+c9+r+
576 x+x1+x2+x3+x4+x5+x6+x7+x8+x9) raise(SIGSEGV);
577 return opted;
578 }