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