Mercurial > repo
comparison interps/c-intercal/oilout0e.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_e(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_PLUS && | |
11 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
12 np->lval->constant==1LU && | |
13 np->rval->opcode==C_LOGICALNOT) | |
14 do | |
15 { | |
16 x1=np->rval->rval->constant; c1=np->rval->rval->optdata; | |
17 x=x1; c=c1; if(!(c==1)) break; | |
18 OPTING(not21); | |
19 tp=newnode(); | |
20 MAYBENEWNODE(tp); | |
21 tp->opcode=C_MINUS; | |
22 tp->width=32; | |
23 MAYBENEWNODE(tp->lval); | |
24 tp->lval->opcode=MESH32; | |
25 tp->lval->width=32; | |
26 tp->lval->constant=(2LU); | |
27 tp->rval=np->rval->rval; | |
28 np->rval->rval=0; | |
29 nodefree(np->lval); nodefree(np->rval); | |
30 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
31 } while(0); | |
32 | |
33 checknodeactbits(np); | |
34 if(np->opcode==C_PLUS && | |
35 np->lval->opcode==C_LOGICALNOT && | |
36 (np->rval->opcode==MESH || np->rval->opcode==MESH32) && | |
37 np->rval->constant==1LU) | |
38 do | |
39 { | |
40 x1=np->lval->rval->constant; c1=np->lval->rval->optdata; | |
41 x=x1; c=c1; if(!(c==1)) break; | |
42 OPTING(not21); | |
43 tp=newnode(); | |
44 MAYBENEWNODE(tp); | |
45 tp->opcode=C_MINUS; | |
46 tp->width=32; | |
47 MAYBENEWNODE(tp->lval); | |
48 tp->lval->opcode=MESH32; | |
49 tp->lval->width=32; | |
50 tp->lval->constant=(2LU); | |
51 tp->rval=np->lval->rval; | |
52 np->lval->rval=0; | |
53 nodefree(np->lval); nodefree(np->rval); | |
54 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
55 } while(0); | |
56 | |
57 checknodeactbits(np); | |
58 if(np->opcode==MINGLE && | |
59 (np->lval->opcode==MESH || np->lval->opcode==MESH32) && | |
60 np->lval->constant==0LU) | |
61 do | |
62 { | |
63 x1=np->rval->constant; c1=np->rval->optdata; | |
64 x=x1; c=c1; if(!(c==1)) break; | |
65 OPTING(nullmingle); | |
66 tp=newnode(); | |
67 tp=np->rval; | |
68 np->rval=0; | |
69 nodefree(np->lval); nodefree(np->rval); | |
70 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
71 } while(0); | |
72 | |
73 checknodeactbits(np); | |
74 if(np->opcode==C_LOGICALNOT && | |
75 np->rval->opcode==C_LOGICALNOT) | |
76 do | |
77 { | |
78 x1=np->rval->rval->constant; c1=np->rval->rval->optdata; | |
79 x=x1; c=c1; if(!(c==1)) break; | |
80 OPTING(redundantdoublenot); | |
81 tp=newnode(); | |
82 tp=np->rval->rval; | |
83 np->rval->rval=0; | |
84 nodefree(np->lval); nodefree(np->rval); | |
85 tempw=np->width; *np=*tp; np->width=tempw; free(tp); | |
86 } while(0); | |
87 | |
88 c=c1=c2=c3=c4=c5=c6=c7=c8=c9=0; | |
89 x=x1=x2=x3=x4=x5=x6=x7=x8=x9=r=0; | |
90 if(c+c1+c2+c3+c4+c5+c6+c7+c8+c9+r+ | |
91 x+x1+x2+x3+x4+x5+x6+x7+x8+x9) raise(SIGSEGV); | |
92 return opted; | |
93 } |