comparison interps/c-intercal/oilout0b.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_b(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_OR &&
11 np->lval->opcode==C_AND &&
12 np->rval->opcode==C_OR &&
13 np->rval->rval->opcode==C_AND)
14 do
15 {
16 x4=np->lval->rval->constant; c4=np->lval->rval->optdata;
17 x3=np->rval->rval->lval->constant; c3=np->rval->rval->lval->optdata;
18 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
19 if(!nodessame(np->lval->lval,np->rval->rval->rval)) break;
20 x1=np->rval->rval->rval->constant; c1=np->rval->rval->rval->optdata;
21 x=x4; c=c4; if(!((c&c3)==0)) break;
22 x=x2; c=c2; if(!((c&c3)==c)) break;
23 OPTING(distribhalforoveror2);
24 tp=newnode();
25 MAYBENEWNODE(tp);
26 tp->opcode=C_AND;
27 tp->width=32;
28 MAYBENEWNODE(tp->lval);
29 tp->lval->opcode=C_OR;
30 tp->lval->width=32;
31 tp->lval->lval=np->rval->rval->rval;
32 np->rval->rval->rval=0;
33 tp->lval->rval=np->rval->lval;
34 np->rval->lval=0;
35 MAYBENEWNODE(tp->rval);
36 tp->rval->opcode=C_OR;
37 tp->rval->width=32;
38 tp->rval->lval=np->rval->rval->lval;
39 np->rval->rval->lval=0;
40 tp->rval->rval=np->lval->rval;
41 np->lval->rval=0;
42 nodefree(np->lval); nodefree(np->rval);
43 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
44 } while(0);
45
46 checknodeactbits(np);
47 if(np->opcode==C_OR &&
48 np->lval->opcode==C_OR &&
49 np->lval->rval->opcode==C_AND &&
50 np->rval->opcode==C_AND)
51 do
52 {
53 x4=np->rval->lval->constant; c4=np->rval->lval->optdata;
54 x3=np->lval->rval->lval->constant; c3=np->lval->rval->lval->optdata;
55 x2=np->lval->lval->constant; c2=np->lval->lval->optdata;
56 if(!nodessame(np->lval->rval->rval,np->rval->rval)) break;
57 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
58 x=x2; c=c2; if(!((c&c3)==c)) break;
59 x=x4; c=c4; if(!((c&c3)==0)) break;
60 OPTING(distribhalforoveror2);
61 tp=newnode();
62 MAYBENEWNODE(tp);
63 tp->opcode=C_AND;
64 tp->width=32;
65 MAYBENEWNODE(tp->lval);
66 tp->lval->opcode=C_OR;
67 tp->lval->width=32;
68 tp->lval->lval=np->rval->rval;
69 np->rval->rval=0;
70 tp->lval->rval=np->lval->lval;
71 np->lval->lval=0;
72 MAYBENEWNODE(tp->rval);
73 tp->rval->opcode=C_OR;
74 tp->rval->width=32;
75 tp->rval->lval=np->lval->rval->lval;
76 np->lval->rval->lval=0;
77 tp->rval->rval=np->rval->lval;
78 np->rval->lval=0;
79 nodefree(np->lval); nodefree(np->rval);
80 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
81 } while(0);
82
83 checknodeactbits(np);
84 if(np->opcode==C_OR &&
85 np->lval->opcode==C_AND &&
86 np->rval->opcode==C_OR &&
87 np->rval->rval->opcode==C_AND)
88 do
89 {
90 x4=np->lval->lval->constant; c4=np->lval->lval->optdata;
91 x3=np->rval->rval->lval->constant; c3=np->rval->rval->lval->optdata;
92 x2=np->rval->lval->constant; c2=np->rval->lval->optdata;
93 if(!nodessame(np->lval->rval,np->rval->rval->rval)) break;
94 x1=np->rval->rval->rval->constant; c1=np->rval->rval->rval->optdata;
95 x=x4; c=c4; if(!((c&c3)==0)) break;
96 x=x2; c=c2; if(!((c&c3)==c)) break;
97 OPTING(distribhalforoveror2);
98 tp=newnode();
99 MAYBENEWNODE(tp);
100 tp->opcode=C_AND;
101 tp->width=32;
102 MAYBENEWNODE(tp->lval);
103 tp->lval->opcode=C_OR;
104 tp->lval->width=32;
105 tp->lval->lval=np->rval->rval->rval;
106 np->rval->rval->rval=0;
107 tp->lval->rval=np->rval->lval;
108 np->rval->lval=0;
109 MAYBENEWNODE(tp->rval);
110 tp->rval->opcode=C_OR;
111 tp->rval->width=32;
112 tp->rval->lval=np->rval->rval->lval;
113 np->rval->rval->lval=0;
114 tp->rval->rval=np->lval->lval;
115 np->lval->lval=0;
116 nodefree(np->lval); nodefree(np->rval);
117 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
118 } while(0);
119
120 checknodeactbits(np);
121 if(np->opcode==C_OR &&
122 np->lval->opcode==C_AND &&
123 np->lval->lval->opcode==C_AND &&
124 np->rval->opcode==C_AND)
125 do
126 {
127 x4=np->rval->rval->constant; c4=np->rval->rval->optdata;
128 x3=np->lval->rval->constant; c3=np->lval->rval->optdata;
129 x2=np->lval->lval->rval->constant; c2=np->lval->lval->rval->optdata;
130 if(!nodessame(np->lval->lval->lval,np->rval->lval)) break;
131 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
132 x=x4; c=c4; if(!((c&c3)==0)) break;
133 OPTING(distribhalfandoveror1);
134 tp=newnode();
135 MAYBENEWNODE(tp);
136 tp->opcode=C_AND;
137 tp->width=32;
138 MAYBENEWNODE(tp->lval);
139 tp->lval->opcode=C_AND;
140 tp->lval->width=32;
141 tp->lval->lval=np->rval->lval;
142 np->rval->lval=0;
143 tp->lval->rval=np->lval->lval->rval;
144 np->lval->lval->rval=0;
145 MAYBENEWNODE(tp->rval);
146 tp->rval->opcode=C_OR;
147 tp->rval->width=32;
148 tp->rval->lval=np->lval->rval;
149 np->lval->rval=0;
150 tp->rval->rval=np->rval->rval;
151 np->rval->rval=0;
152 nodefree(np->lval); nodefree(np->rval);
153 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
154 } while(0);
155
156 checknodeactbits(np);
157 if(np->opcode==C_OR &&
158 np->lval->opcode==C_AND &&
159 np->rval->opcode==C_AND &&
160 np->rval->lval->opcode==C_AND)
161 do
162 {
163 x4=np->lval->rval->constant; c4=np->lval->rval->optdata;
164 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
165 x2=np->rval->lval->rval->constant; c2=np->rval->lval->rval->optdata;
166 if(!nodessame(np->lval->lval,np->rval->lval->lval)) break;
167 x1=np->rval->lval->lval->constant; c1=np->rval->lval->lval->optdata;
168 x=x4; c=c4; if(!((c&c3)==0)) break;
169 OPTING(distribhalfandoveror1);
170 tp=newnode();
171 MAYBENEWNODE(tp);
172 tp->opcode=C_AND;
173 tp->width=32;
174 MAYBENEWNODE(tp->lval);
175 tp->lval->opcode=C_AND;
176 tp->lval->width=32;
177 tp->lval->lval=np->rval->lval->lval;
178 np->rval->lval->lval=0;
179 tp->lval->rval=np->rval->lval->rval;
180 np->rval->lval->rval=0;
181 MAYBENEWNODE(tp->rval);
182 tp->rval->opcode=C_OR;
183 tp->rval->width=32;
184 tp->rval->lval=np->rval->rval;
185 np->rval->rval=0;
186 tp->rval->rval=np->lval->rval;
187 np->lval->rval=0;
188 nodefree(np->lval); nodefree(np->rval);
189 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
190 } while(0);
191
192 checknodeactbits(np);
193 if(np->opcode==C_OR &&
194 np->lval->opcode==C_AND &&
195 np->lval->lval->opcode==C_AND &&
196 np->rval->opcode==C_AND)
197 do
198 {
199 x4=np->rval->lval->constant; c4=np->rval->lval->optdata;
200 x3=np->lval->rval->constant; c3=np->lval->rval->optdata;
201 x2=np->lval->lval->rval->constant; c2=np->lval->lval->rval->optdata;
202 if(!nodessame(np->lval->lval->lval,np->rval->rval)) break;
203 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
204 x=x4; c=c4; if(!((c&c3)==0)) break;
205 OPTING(distribhalfandoveror1);
206 tp=newnode();
207 MAYBENEWNODE(tp);
208 tp->opcode=C_AND;
209 tp->width=32;
210 MAYBENEWNODE(tp->lval);
211 tp->lval->opcode=C_AND;
212 tp->lval->width=32;
213 tp->lval->lval=np->rval->rval;
214 np->rval->rval=0;
215 tp->lval->rval=np->lval->lval->rval;
216 np->lval->lval->rval=0;
217 MAYBENEWNODE(tp->rval);
218 tp->rval->opcode=C_OR;
219 tp->rval->width=32;
220 tp->rval->lval=np->lval->rval;
221 np->lval->rval=0;
222 tp->rval->rval=np->rval->lval;
223 np->rval->lval=0;
224 nodefree(np->lval); nodefree(np->rval);
225 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
226 } while(0);
227
228 checknodeactbits(np);
229 if(np->opcode==C_OR &&
230 np->lval->opcode==C_AND &&
231 np->rval->opcode==C_AND &&
232 np->rval->lval->opcode==C_AND)
233 do
234 {
235 x4=np->lval->lval->constant; c4=np->lval->lval->optdata;
236 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
237 x2=np->rval->lval->rval->constant; c2=np->rval->lval->rval->optdata;
238 if(!nodessame(np->lval->rval,np->rval->lval->lval)) break;
239 x1=np->rval->lval->lval->constant; c1=np->rval->lval->lval->optdata;
240 x=x4; c=c4; if(!((c&c3)==0)) break;
241 OPTING(distribhalfandoveror1);
242 tp=newnode();
243 MAYBENEWNODE(tp);
244 tp->opcode=C_AND;
245 tp->width=32;
246 MAYBENEWNODE(tp->lval);
247 tp->lval->opcode=C_AND;
248 tp->lval->width=32;
249 tp->lval->lval=np->rval->lval->lval;
250 np->rval->lval->lval=0;
251 tp->lval->rval=np->rval->lval->rval;
252 np->rval->lval->rval=0;
253 MAYBENEWNODE(tp->rval);
254 tp->rval->opcode=C_OR;
255 tp->rval->width=32;
256 tp->rval->lval=np->rval->rval;
257 np->rval->rval=0;
258 tp->rval->rval=np->lval->lval;
259 np->lval->lval=0;
260 nodefree(np->lval); nodefree(np->rval);
261 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
262 } while(0);
263
264 checknodeactbits(np);
265 if(np->opcode==C_OR &&
266 np->lval->opcode==C_AND &&
267 np->lval->rval->opcode==C_AND &&
268 np->rval->opcode==C_AND)
269 do
270 {
271 x4=np->rval->rval->constant; c4=np->rval->rval->optdata;
272 x3=np->lval->lval->constant; c3=np->lval->lval->optdata;
273 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
274 if(!nodessame(np->lval->rval->lval,np->rval->lval)) break;
275 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
276 x=x4; c=c4; if(!((c&c3)==0)) break;
277 OPTING(distribhalfandoveror1);
278 tp=newnode();
279 MAYBENEWNODE(tp);
280 tp->opcode=C_AND;
281 tp->width=32;
282 MAYBENEWNODE(tp->lval);
283 tp->lval->opcode=C_AND;
284 tp->lval->width=32;
285 tp->lval->lval=np->rval->lval;
286 np->rval->lval=0;
287 tp->lval->rval=np->lval->rval->rval;
288 np->lval->rval->rval=0;
289 MAYBENEWNODE(tp->rval);
290 tp->rval->opcode=C_OR;
291 tp->rval->width=32;
292 tp->rval->lval=np->lval->lval;
293 np->lval->lval=0;
294 tp->rval->rval=np->rval->rval;
295 np->rval->rval=0;
296 nodefree(np->lval); nodefree(np->rval);
297 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
298 } while(0);
299
300 checknodeactbits(np);
301 if(np->opcode==C_OR &&
302 np->lval->opcode==C_AND &&
303 np->rval->opcode==C_AND &&
304 np->rval->rval->opcode==C_AND)
305 do
306 {
307 x4=np->lval->rval->constant; c4=np->lval->rval->optdata;
308 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
309 x2=np->rval->rval->rval->constant; c2=np->rval->rval->rval->optdata;
310 if(!nodessame(np->lval->lval,np->rval->rval->lval)) break;
311 x1=np->rval->rval->lval->constant; c1=np->rval->rval->lval->optdata;
312 x=x4; c=c4; if(!((c&c3)==0)) break;
313 OPTING(distribhalfandoveror1);
314 tp=newnode();
315 MAYBENEWNODE(tp);
316 tp->opcode=C_AND;
317 tp->width=32;
318 MAYBENEWNODE(tp->lval);
319 tp->lval->opcode=C_AND;
320 tp->lval->width=32;
321 tp->lval->lval=np->rval->rval->lval;
322 np->rval->rval->lval=0;
323 tp->lval->rval=np->rval->rval->rval;
324 np->rval->rval->rval=0;
325 MAYBENEWNODE(tp->rval);
326 tp->rval->opcode=C_OR;
327 tp->rval->width=32;
328 tp->rval->lval=np->rval->lval;
329 np->rval->lval=0;
330 tp->rval->rval=np->lval->rval;
331 np->lval->rval=0;
332 nodefree(np->lval); nodefree(np->rval);
333 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
334 } while(0);
335
336 checknodeactbits(np);
337 if(np->opcode==C_OR &&
338 np->lval->opcode==C_AND &&
339 np->lval->rval->opcode==C_AND &&
340 np->rval->opcode==C_AND)
341 do
342 {
343 x4=np->rval->lval->constant; c4=np->rval->lval->optdata;
344 x3=np->lval->lval->constant; c3=np->lval->lval->optdata;
345 x2=np->lval->rval->rval->constant; c2=np->lval->rval->rval->optdata;
346 if(!nodessame(np->lval->rval->lval,np->rval->rval)) break;
347 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
348 x=x4; c=c4; if(!((c&c3)==0)) break;
349 OPTING(distribhalfandoveror1);
350 tp=newnode();
351 MAYBENEWNODE(tp);
352 tp->opcode=C_AND;
353 tp->width=32;
354 MAYBENEWNODE(tp->lval);
355 tp->lval->opcode=C_AND;
356 tp->lval->width=32;
357 tp->lval->lval=np->rval->rval;
358 np->rval->rval=0;
359 tp->lval->rval=np->lval->rval->rval;
360 np->lval->rval->rval=0;
361 MAYBENEWNODE(tp->rval);
362 tp->rval->opcode=C_OR;
363 tp->rval->width=32;
364 tp->rval->lval=np->lval->lval;
365 np->lval->lval=0;
366 tp->rval->rval=np->rval->lval;
367 np->rval->lval=0;
368 nodefree(np->lval); nodefree(np->rval);
369 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
370 } while(0);
371
372 checknodeactbits(np);
373 if(np->opcode==C_OR &&
374 np->lval->opcode==C_AND &&
375 np->rval->opcode==C_AND &&
376 np->rval->rval->opcode==C_AND)
377 do
378 {
379 x4=np->lval->lval->constant; c4=np->lval->lval->optdata;
380 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
381 x2=np->rval->rval->rval->constant; c2=np->rval->rval->rval->optdata;
382 if(!nodessame(np->lval->rval,np->rval->rval->lval)) break;
383 x1=np->rval->rval->lval->constant; c1=np->rval->rval->lval->optdata;
384 x=x4; c=c4; if(!((c&c3)==0)) break;
385 OPTING(distribhalfandoveror1);
386 tp=newnode();
387 MAYBENEWNODE(tp);
388 tp->opcode=C_AND;
389 tp->width=32;
390 MAYBENEWNODE(tp->lval);
391 tp->lval->opcode=C_AND;
392 tp->lval->width=32;
393 tp->lval->lval=np->rval->rval->lval;
394 np->rval->rval->lval=0;
395 tp->lval->rval=np->rval->rval->rval;
396 np->rval->rval->rval=0;
397 MAYBENEWNODE(tp->rval);
398 tp->rval->opcode=C_OR;
399 tp->rval->width=32;
400 tp->rval->lval=np->rval->lval;
401 np->rval->lval=0;
402 tp->rval->rval=np->lval->lval;
403 np->lval->lval=0;
404 nodefree(np->lval); nodefree(np->rval);
405 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
406 } while(0);
407
408 checknodeactbits(np);
409 if(np->opcode==C_OR &&
410 np->lval->opcode==C_AND &&
411 np->lval->lval->opcode==C_AND &&
412 np->rval->opcode==C_AND)
413 do
414 {
415 x4=np->rval->rval->constant; c4=np->rval->rval->optdata;
416 x3=np->lval->rval->constant; c3=np->lval->rval->optdata;
417 x2=np->lval->lval->lval->constant; c2=np->lval->lval->lval->optdata;
418 if(!nodessame(np->lval->lval->rval,np->rval->lval)) break;
419 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
420 x=x4; c=c4; if(!((c&c3)==0)) break;
421 OPTING(distribhalfandoveror1);
422 tp=newnode();
423 MAYBENEWNODE(tp);
424 tp->opcode=C_AND;
425 tp->width=32;
426 MAYBENEWNODE(tp->lval);
427 tp->lval->opcode=C_AND;
428 tp->lval->width=32;
429 tp->lval->lval=np->rval->lval;
430 np->rval->lval=0;
431 tp->lval->rval=np->lval->lval->lval;
432 np->lval->lval->lval=0;
433 MAYBENEWNODE(tp->rval);
434 tp->rval->opcode=C_OR;
435 tp->rval->width=32;
436 tp->rval->lval=np->lval->rval;
437 np->lval->rval=0;
438 tp->rval->rval=np->rval->rval;
439 np->rval->rval=0;
440 nodefree(np->lval); nodefree(np->rval);
441 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
442 } while(0);
443
444 checknodeactbits(np);
445 if(np->opcode==C_OR &&
446 np->lval->opcode==C_AND &&
447 np->rval->opcode==C_AND &&
448 np->rval->lval->opcode==C_AND)
449 do
450 {
451 x4=np->lval->rval->constant; c4=np->lval->rval->optdata;
452 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
453 x2=np->rval->lval->lval->constant; c2=np->rval->lval->lval->optdata;
454 if(!nodessame(np->lval->lval,np->rval->lval->rval)) break;
455 x1=np->rval->lval->rval->constant; c1=np->rval->lval->rval->optdata;
456 x=x4; c=c4; if(!((c&c3)==0)) break;
457 OPTING(distribhalfandoveror1);
458 tp=newnode();
459 MAYBENEWNODE(tp);
460 tp->opcode=C_AND;
461 tp->width=32;
462 MAYBENEWNODE(tp->lval);
463 tp->lval->opcode=C_AND;
464 tp->lval->width=32;
465 tp->lval->lval=np->rval->lval->rval;
466 np->rval->lval->rval=0;
467 tp->lval->rval=np->rval->lval->lval;
468 np->rval->lval->lval=0;
469 MAYBENEWNODE(tp->rval);
470 tp->rval->opcode=C_OR;
471 tp->rval->width=32;
472 tp->rval->lval=np->rval->rval;
473 np->rval->rval=0;
474 tp->rval->rval=np->lval->rval;
475 np->lval->rval=0;
476 nodefree(np->lval); nodefree(np->rval);
477 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
478 } while(0);
479
480 checknodeactbits(np);
481 if(np->opcode==C_OR &&
482 np->lval->opcode==C_AND &&
483 np->lval->lval->opcode==C_AND &&
484 np->rval->opcode==C_AND)
485 do
486 {
487 x4=np->rval->lval->constant; c4=np->rval->lval->optdata;
488 x3=np->lval->rval->constant; c3=np->lval->rval->optdata;
489 x2=np->lval->lval->lval->constant; c2=np->lval->lval->lval->optdata;
490 if(!nodessame(np->lval->lval->rval,np->rval->rval)) break;
491 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
492 x=x4; c=c4; if(!((c&c3)==0)) break;
493 OPTING(distribhalfandoveror1);
494 tp=newnode();
495 MAYBENEWNODE(tp);
496 tp->opcode=C_AND;
497 tp->width=32;
498 MAYBENEWNODE(tp->lval);
499 tp->lval->opcode=C_AND;
500 tp->lval->width=32;
501 tp->lval->lval=np->rval->rval;
502 np->rval->rval=0;
503 tp->lval->rval=np->lval->lval->lval;
504 np->lval->lval->lval=0;
505 MAYBENEWNODE(tp->rval);
506 tp->rval->opcode=C_OR;
507 tp->rval->width=32;
508 tp->rval->lval=np->lval->rval;
509 np->lval->rval=0;
510 tp->rval->rval=np->rval->lval;
511 np->rval->lval=0;
512 nodefree(np->lval); nodefree(np->rval);
513 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
514 } while(0);
515
516 checknodeactbits(np);
517 if(np->opcode==C_OR &&
518 np->lval->opcode==C_AND &&
519 np->rval->opcode==C_AND &&
520 np->rval->lval->opcode==C_AND)
521 do
522 {
523 x4=np->lval->lval->constant; c4=np->lval->lval->optdata;
524 x3=np->rval->rval->constant; c3=np->rval->rval->optdata;
525 x2=np->rval->lval->lval->constant; c2=np->rval->lval->lval->optdata;
526 if(!nodessame(np->lval->rval,np->rval->lval->rval)) break;
527 x1=np->rval->lval->rval->constant; c1=np->rval->lval->rval->optdata;
528 x=x4; c=c4; if(!((c&c3)==0)) break;
529 OPTING(distribhalfandoveror1);
530 tp=newnode();
531 MAYBENEWNODE(tp);
532 tp->opcode=C_AND;
533 tp->width=32;
534 MAYBENEWNODE(tp->lval);
535 tp->lval->opcode=C_AND;
536 tp->lval->width=32;
537 tp->lval->lval=np->rval->lval->rval;
538 np->rval->lval->rval=0;
539 tp->lval->rval=np->rval->lval->lval;
540 np->rval->lval->lval=0;
541 MAYBENEWNODE(tp->rval);
542 tp->rval->opcode=C_OR;
543 tp->rval->width=32;
544 tp->rval->lval=np->rval->rval;
545 np->rval->rval=0;
546 tp->rval->rval=np->lval->lval;
547 np->lval->lval=0;
548 nodefree(np->lval); nodefree(np->rval);
549 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
550 } while(0);
551
552 checknodeactbits(np);
553 if(np->opcode==C_OR &&
554 np->lval->opcode==C_AND &&
555 np->lval->rval->opcode==C_AND &&
556 np->rval->opcode==C_AND)
557 do
558 {
559 x4=np->rval->rval->constant; c4=np->rval->rval->optdata;
560 x3=np->lval->lval->constant; c3=np->lval->lval->optdata;
561 x2=np->lval->rval->lval->constant; c2=np->lval->rval->lval->optdata;
562 if(!nodessame(np->lval->rval->rval,np->rval->lval)) break;
563 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
564 x=x4; c=c4; if(!((c&c3)==0)) break;
565 OPTING(distribhalfandoveror1);
566 tp=newnode();
567 MAYBENEWNODE(tp);
568 tp->opcode=C_AND;
569 tp->width=32;
570 MAYBENEWNODE(tp->lval);
571 tp->lval->opcode=C_AND;
572 tp->lval->width=32;
573 tp->lval->lval=np->rval->lval;
574 np->rval->lval=0;
575 tp->lval->rval=np->lval->rval->lval;
576 np->lval->rval->lval=0;
577 MAYBENEWNODE(tp->rval);
578 tp->rval->opcode=C_OR;
579 tp->rval->width=32;
580 tp->rval->lval=np->lval->lval;
581 np->lval->lval=0;
582 tp->rval->rval=np->rval->rval;
583 np->rval->rval=0;
584 nodefree(np->lval); nodefree(np->rval);
585 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
586 } while(0);
587
588 checknodeactbits(np);
589 if(np->opcode==C_OR &&
590 np->lval->opcode==C_AND &&
591 np->rval->opcode==C_AND &&
592 np->rval->rval->opcode==C_AND)
593 do
594 {
595 x4=np->lval->rval->constant; c4=np->lval->rval->optdata;
596 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
597 x2=np->rval->rval->lval->constant; c2=np->rval->rval->lval->optdata;
598 if(!nodessame(np->lval->lval,np->rval->rval->rval)) break;
599 x1=np->rval->rval->rval->constant; c1=np->rval->rval->rval->optdata;
600 x=x4; c=c4; if(!((c&c3)==0)) break;
601 OPTING(distribhalfandoveror1);
602 tp=newnode();
603 MAYBENEWNODE(tp);
604 tp->opcode=C_AND;
605 tp->width=32;
606 MAYBENEWNODE(tp->lval);
607 tp->lval->opcode=C_AND;
608 tp->lval->width=32;
609 tp->lval->lval=np->rval->rval->rval;
610 np->rval->rval->rval=0;
611 tp->lval->rval=np->rval->rval->lval;
612 np->rval->rval->lval=0;
613 MAYBENEWNODE(tp->rval);
614 tp->rval->opcode=C_OR;
615 tp->rval->width=32;
616 tp->rval->lval=np->rval->lval;
617 np->rval->lval=0;
618 tp->rval->rval=np->lval->rval;
619 np->lval->rval=0;
620 nodefree(np->lval); nodefree(np->rval);
621 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
622 } while(0);
623
624 checknodeactbits(np);
625 if(np->opcode==C_OR &&
626 np->lval->opcode==C_AND &&
627 np->lval->rval->opcode==C_AND &&
628 np->rval->opcode==C_AND)
629 do
630 {
631 x4=np->rval->lval->constant; c4=np->rval->lval->optdata;
632 x3=np->lval->lval->constant; c3=np->lval->lval->optdata;
633 x2=np->lval->rval->lval->constant; c2=np->lval->rval->lval->optdata;
634 if(!nodessame(np->lval->rval->rval,np->rval->rval)) break;
635 x1=np->rval->rval->constant; c1=np->rval->rval->optdata;
636 x=x4; c=c4; if(!((c&c3)==0)) break;
637 OPTING(distribhalfandoveror1);
638 tp=newnode();
639 MAYBENEWNODE(tp);
640 tp->opcode=C_AND;
641 tp->width=32;
642 MAYBENEWNODE(tp->lval);
643 tp->lval->opcode=C_AND;
644 tp->lval->width=32;
645 tp->lval->lval=np->rval->rval;
646 np->rval->rval=0;
647 tp->lval->rval=np->lval->rval->lval;
648 np->lval->rval->lval=0;
649 MAYBENEWNODE(tp->rval);
650 tp->rval->opcode=C_OR;
651 tp->rval->width=32;
652 tp->rval->lval=np->lval->lval;
653 np->lval->lval=0;
654 tp->rval->rval=np->rval->lval;
655 np->rval->lval=0;
656 nodefree(np->lval); nodefree(np->rval);
657 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
658 } while(0);
659
660 checknodeactbits(np);
661 if(np->opcode==C_OR &&
662 np->lval->opcode==C_AND &&
663 np->rval->opcode==C_AND &&
664 np->rval->rval->opcode==C_AND)
665 do
666 {
667 x4=np->lval->lval->constant; c4=np->lval->lval->optdata;
668 x3=np->rval->lval->constant; c3=np->rval->lval->optdata;
669 x2=np->rval->rval->lval->constant; c2=np->rval->rval->lval->optdata;
670 if(!nodessame(np->lval->rval,np->rval->rval->rval)) break;
671 x1=np->rval->rval->rval->constant; c1=np->rval->rval->rval->optdata;
672 x=x4; c=c4; if(!((c&c3)==0)) break;
673 OPTING(distribhalfandoveror1);
674 tp=newnode();
675 MAYBENEWNODE(tp);
676 tp->opcode=C_AND;
677 tp->width=32;
678 MAYBENEWNODE(tp->lval);
679 tp->lval->opcode=C_AND;
680 tp->lval->width=32;
681 tp->lval->lval=np->rval->rval->rval;
682 np->rval->rval->rval=0;
683 tp->lval->rval=np->rval->rval->lval;
684 np->rval->rval->lval=0;
685 MAYBENEWNODE(tp->rval);
686 tp->rval->opcode=C_OR;
687 tp->rval->width=32;
688 tp->rval->lval=np->rval->lval;
689 np->rval->lval=0;
690 tp->rval->rval=np->lval->lval;
691 np->lval->lval=0;
692 nodefree(np->lval); nodefree(np->rval);
693 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
694 } while(0);
695
696 checknodeactbits(np);
697 if(np->opcode==C_OR &&
698 np->lval->opcode==C_AND &&
699 np->lval->lval->opcode==C_AND &&
700 np->rval->opcode==C_AND)
701 do
702 {
703 x4=np->rval->rval->constant; c4=np->rval->rval->optdata;
704 x3=np->lval->lval->rval->constant; c3=np->lval->lval->rval->optdata;
705 x2=np->lval->rval->constant; c2=np->lval->rval->optdata;
706 if(!nodessame(np->lval->lval->lval,np->rval->lval)) break;
707 x1=np->rval->lval->constant; c1=np->rval->lval->optdata;
708 x=x4; c=c4; if(!((c&c3)==0)) break;
709 OPTING(distribhalfandoveror2);
710 tp=newnode();
711 MAYBENEWNODE(tp);
712 tp->opcode=C_AND;
713 tp->width=32;
714 MAYBENEWNODE(tp->lval);
715 tp->lval->opcode=C_AND;
716 tp->lval->width=32;
717 tp->lval->lval=np->rval->lval;
718 np->rval->lval=0;
719 tp->lval->rval=np->lval->rval;
720 np->lval->rval=0;
721 MAYBENEWNODE(tp->rval);
722 tp->rval->opcode=C_OR;
723 tp->rval->width=32;
724 tp->rval->lval=np->lval->lval->rval;
725 np->lval->lval->rval=0;
726 tp->rval->rval=np->rval->rval;
727 np->rval->rval=0;
728 nodefree(np->lval); nodefree(np->rval);
729 tempw=np->width; *np=*tp; np->width=tempw; free(tp);
730 } while(0);
731
732 c=c1=c2=c3=c4=c5=c6=c7=c8=c9=0;
733 x=x1=x2=x3=x4=x5=x6=x7=x8=x9=r=0;
734 if(c+c1+c2+c3+c4+c5+c6+c7+c8+c9+r+
735 x+x1+x2+x3+x4+x5+x6+x7+x8+x9) raise(SIGSEGV);
736 return opted;
737 }