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