native_int* __fac(native_int* n) {
native_int arity = 0;
native_int* v_0;
native_int* r_15 = (native_int*) n[1];
native_int* r_16 = (native_int*) n[2];
native_int* r_17 = (native_int*) n[3];
native_int* r_18 = (native_int*) n[4];
native_int* r_19;
arity = 1;
if (n[5] >= arity) goto reduce;
native_int* reta = (native_int*) n[3];
native_int reti = n[4];
reta[reti] = (native_int) n;
r_19 = (native_int*) n[1];
goto finally;
reduce: n=n;
v_0 = (native_int*) n[6];
native_int* r_20;
if (v_0[0] != 0) goto label1;
if ( strncmp( (char*) v_0[1], (char*) "system.int", 128) != 0 ) goto label1;
if ( strncmp( (char*) v_0[2], (char*) "system.int", 128) != 0 ) goto label1;
if (v_0[4] != 0) goto label1;
static native_int r_21[5] = {(native_int) 0, (native_int) "system.int", (native_int) "system.int", (native_int) 1, (native_int) 1};
r_17[(native_int) r_18] = (native_int) r_21;
r_20 = r_15;
goto label0;
label1: n=n;
native_int* r_22 = (native_int*) __system_dml;
native_int* r_23 = v_0;
native_int* r_24 = 0;
native_int* r_25 = GC_malloc(8 * sizeof(native_int));
r_25[0] = (native_int) r_22;
r_25[1] = (native_int) r_15;
r_25[2] = (native_int) r_16;
r_25[3] = (native_int) r_17;
r_25[4] = (native_int) r_18;
r_25[5] = (native_int) 2;
r_25[6] = (native_int) r_23;
r_25[7] = (native_int) r_24;
if (n[5] == arity) goto dontexpand26;
r_25 = ___expand(r_25, n, arity);
dontexpand26: n=n;
native_int* r_27 = r_25;
native_int* r_28 = (native_int*) 7;
native_int* r_29 = (native_int*) __fac;
native_int* r_30 = 0;
native_int* r_31 = GC_malloc(7 * sizeof(native_int));
r_31[0] = (native_int) r_29;
r_31[1] = (native_int) r_25;
r_31[2] = (native_int) r_16;
r_31[3] = (native_int) r_27;
r_31[4] = (native_int) r_28;
r_31[5] = (native_int) 1;
r_31[6] = (native_int) r_30;
native_int* r_32 = r_31;
native_int* r_33 = (native_int*) 6;
native_int* r_34 = (native_int*) __system_dsb;
native_int* r_35 = v_0;
static native_int r_36[5] = {(native_int) 0, (native_int) "system.int", (native_int) "system.int", (native_int) 1, (native_int) 1};
native_int* r_37 = GC_malloc(8 * sizeof(native_int));
r_37[0] = (native_int) r_34;
r_37[1] = (native_int) r_31;
r_37[2] = (native_int) r_16;
r_37[3] = (native_int) r_32;
r_37[4] = (native_int) r_33;
r_37[5] = (native_int) 2;
r_37[6] = (native_int) r_35;
r_37[7] = (native_int) r_36;
r_20 = r_37;
goto label0;
label0: n=n;
r_19 = r_20;
finally: n=n;
return r_19;
}
1Without a ridiculous CPS transform ;oP. But with some small errors. ;o)
No comments:
Post a Comment