extern jump
, cctab
[], rcexpr
, isn
, label
, branch
, cbranch
;
cbranch(tree
[3], l1
=isn
++, 0, 0);
cbranch(tree
[4], l1
, 0, 0);
cbranch(tree
[3], l1
=isn
++, 0, 0);
cbranch(tree
[4], l2
=isn
++, 1, 0);
cbranch(tree
[3], l1
=isn
++, 1, 0);
cbranch(tree
[4], l2
=isn
++, 0, 0);
cbranch(tree
[3], l1
=isn
++, 1, 0);
cbranch(tree
[4], l1
, 1, 0);
jumpc(tree
[3], lbl
, !cond
);
branch(l1
=isn
++, *tree
, cond
);
cbranch(tree
, lbl
, cond
, reg
)
extern branch
, cctab
[], rcexpr
, isn
, label
;
cbranch(tree
[3], l1
=isn
++, 0, reg
);
cbranch(tree
[4], lbl
, 1, reg
);
cbranch(tree
[3], lbl
, 0, reg
);
cbranch(tree
[4], lbl
, 0, reg
);
cbranch(tree
[3], lbl
, 1, reg
);
cbranch(tree
[4], lbl
, 1, reg
);
cbranch(tree
[3], l1
=isn
++, 1, reg
);
cbranch(tree
[4], lbl
, 0, reg
);
cbranch(tree
[3], lbl
, !cond
, reg
);
rcexpr(tree
, cctab
, reg
);
branch(lbl
, *tree
, !cond
);
extern printf
, prins
, opdope
[];
printf("jmp\tl%d\n", lab
);
printf("cmp (sp)+,(sp)+\n");
printf("add $%o,sp\n", a
);
return((l
=length(c
))==1? 2: l
);
if(a
=n
/b
) /* assignment, not test for equality */
printn(a
, b
); /* recursive */
printf(fmt
,x1
,x2
,x3
,x4
,x5
,x6
,x7
,x8
,x9
)
extern printn
, putchar
, namsiz
, ncpw
;
adx
= &x1
; /* argument pointer */
while((c
= *fmt
++) != '%') {
if(x
<0) { /* - infinity */
extern printf
, line
, fout
, flush
, putchar
, nerror
;