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