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