Mercurial > repo
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 } |