int _C_DATA_SIZE = 8192;
#include "forth.h"
#include "forth2c.h"
Char flags[8212];
Char eflag[4];
Cell primes(void)
{
Cell _c_result;
Cell x0;
Cell x1;
Cell x2;
Cell x3;
Cell x4;
Cell r0;
Cell r1;
Cell r2;
Cell r3;
{
x0 = (Cell) (&flags[0]);
}
{
x1 = 8190;
}
{
x2 = 1;
}
{
UCell u;
Char *addr, c;
c = (Char) x2;
u = (UCell) x1;
addr = (Char *) x0;
memset(addr, c, u);
}
{
x0 = 0;
}
{
x1 = 3;
}
{
x2 = (Cell) (&eflag[0]);
}
{
Cell *a;
a = (Cell *) x2;
x2 = *a;
}
{
x3 = (Cell) (&flags[0]);
}
{
Cell bound, index;
index = x3;
bound = x2;
r0 = bound;
r1 = index;
}
label0:
{
Cell n = r1;
x2 = n;
}
{
Char *a;
a = (Char *) x2;
x2 = (Cell) *a;
}
if (!x2) goto label1;
{
Cell n;
n = x1;
x1 = n;
x2 = n;
}
{
Cell n = r1;
x3 = n;
}
{
Cell n1, n2, n;
n1 = x3;
n2 = x2;
n = n2 + n1;
x2 = n;
}
{
Cell n;
n = x2;
x2 = n;
x3 = n;
}
{
x4 = (Cell) (&eflag[0]);
}
{
Cell *a;
a = (Cell *) x4;
x4 = *a;
}
{
Cell n1, n2, n;
n1 = x4;
n2 = x3;
n = FLAG(n2 < n1);
x3 = n;
}
if (!x3) goto label2;
{
x3 = (Cell) (&eflag[0]);
}
{
Cell *a;
a = (Cell *) x3;
x3 = *a;
}
{
Cell n1, n2;
n1 = x3;
n2 = x2;
x2 = n1;
x3 = n2;
}
{
Cell bound, index;
index = x3;
bound = x2;
r2 = bound;
r3 = index;
}
label3:
{
x2 = 0;
}
{
Cell n = r3;
x3 = n;
}
{
Char *a;
Cell c;
a = (Char *) x3;
c = (Char) x2;
*a = c;
}
{
Cell n;
n = x1;
x1 = n;
x2 = n;
}
{
Cell step, index, bound;
index = r3;
bound = r2;
step = x2;
index += step;
if ((step > 0 && index < bound) ||
(step <= 0 && index >= bound))
{
r2 = bound;
r3 = index;
goto label3;
}
}
{
}
goto label4;
label2:
{
}
label4:
{
Cell n1, n2;
n1 = x1;
n2 = x0;
x0 = n1;
x1 = n2;
}
{
Cell n;
n = x1;
x1 = n + 1;
}
{
Cell n1, n2;
n1 = x1;
n2 = x0;
x0 = n1;
x1 = n2;
}
label1:
{
x2 = 2;
}
{
Cell n1, n2, n;
n1 = x2;
n2 = x1;
n = n2 + n1;
x1 = n;
}
{
Cell index, bound;
index = r1;
bound = r0;
index++;
if (index != bound)
{
r0 = bound;
r1 = index;
goto label0;
}
}
{
}
{
}
{
_c_result = x0;
return (_c_result);
}
}
Cell benchmark(void)
{
Cell _c_result;
Cell x0;
Cell x1;
Cell x2;
Cell r0;
Cell r1;
{
x0 = 0;
}
{
x1 = 1000;
}
{
x2 = 0;
}
{
Cell bound, index;
index = x2;
bound = x1;
r0 = bound;
r1 = index;
}
label0:
{
Cell _C_locret;
_C_locret = primes();
x1 = _C_locret;
}
{
Cell n1, n2;
n2 = x1;
n1 = x0;
x0 = n2;
}
{
Cell index, bound;
index = r1;
bound = r0;
index++;
if (index != bound)
{
r0 = bound;
r1 = index;
goto label0;
}
}
{
}
{
_c_result = x0;
return (_c_result);
}
}
void main(void)
{
Cell x0;
Cell x1;
{
x0 = (Cell) (&flags[0]);
}
{
x1 = 8190;
}
{
Cell n1, n2, n;
n1 = x1;
n2 = x0;
n = n2 + n1;
x0 = n;
}
{
x1 = (Cell) (&eflag[0]);
}
{
Cell *a, n;
a = (Cell *) x1;
n = x0;
*a = n;
}
{
Cell _C_locret;
_C_locret = benchmark();
x0 = _C_locret;
}
{
printf("%d ", x0);
fflush(stdout);
}
{
return;
}
}