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