void quick_sort(CL_FORM *base) { LOAD_FIXNUM(ARG(5), 0, ARG(5)); LOAD_FIXNUM(ARG(6), 0, ARG(6)); COPY(ARG(2), ARG(7)); COPY(ARG(1), ARG(8)); F1plus(ARG(8)); Fle(ARG(7), 2); if(CL_TRUEP(ARG(7))) { goto RETURN1; } COPY(ARG(1), ARG(5)); COPY(ARG(2), ARG(6)); F1minus(ARG(6)); COPY(ARG(0), ARG(7)); COPY(ARG(1), ARG(8)); Felt(ARG(7)); M1_1: ; COPY(ARG(5), ARG(8)); COPY(ARG(6), ARG(9)); Fgt(ARG(8), 2); if(CL_TRUEP(ARG(8))) { goto RETURN2; } M2_1: ; COPY(ARG(5), ARG(8)); COPY(ARG(6), ARG(9)); Fgt(ARG(8), 2); if(CL_TRUEP(ARG(8))) { goto THEN1; } else { COPY(ARG(3), ARG(9)); COPY(ARG(4), ARG(10)); COPY(ARG(0), ARG(11)); COPY(ARG(6), ARG(12)); Felt(ARG(11)); Ffuncall(ARG(10), 2); mv_count = 1; COPY(ARG(4), ARG(11)); COPY(ARG(7), ARG(12)); Ffuncall(ARG(11), 2); mv_count = 1; Ffuncall(ARG(9), 3); mv_count = 1; } if(CL_TRUEP(ARG(9))) { THEN1: ; goto RETURN3; } F1minus(ARG(6)); goto M2_1; RETURN3: ; COPY(ARG(6), ARG(8)); COPY(ARG(1), ARG(9)); Flt(ARG(8), 2); if(CL_TRUEP(ARG(8))) { COPY(ARG(0), ARG(8)); COPY(ARG(1), ARG(9)); F1plus(ARG(9)); COPY(ARG(2), ARG(10)); COPY(ARG(3), ARG(11)); COPY(ARG(4), ARG(12)); quick_sort(ARG(8)); goto RETURN1; } M3_1: ; COPY(ARG(5), ARG(8)); COPY(ARG(6), ARG(9)); Fgt(ARG(8), 2); if(CL_TRUEP(ARG(8))) { goto THEN2; } else { COPY(ARG(3), ARG(9)); COPY(ARG(4), ARG(10)); COPY(ARG(0), ARG(11)); COPY(ARG(5), ARG(12)); Felt(ARG(11)); Ffuncall(ARG(10), 2); mv_count = 1; COPY(ARG(4), ARG(11)); COPY(ARG(7), ARG(12)); Ffuncall(ARG(11), 2); mv_count = 1; Ffuncall(ARG(9), 3); mv_count = 1; if(CL_TRUEP(ARG(9))) { goto ELSE3; } else { goto THEN2; } } { THEN2: ; goto RETURN4; } ELSE3: ; F1plus(ARG(5)); goto M3_1; RETURN4: ; COPY(ARG(5), ARG(8)); COPY(ARG(6), ARG(9)); Fgt(ARG(8), 2); if(CL_TRUEP(ARG(8))) { goto RETURN2; } COPY(ARG(0), ARG(8)); COPY(ARG(5), ARG(9)); Felt(ARG(8)); COPY(ARG(0), ARG(9)); COPY(ARG(6), ARG(10)); Felt(ARG(9)); COPY(ARG(0), ARG(10)); COPY(ARG(5), ARG(11)); Fset_elt(ARG(9)); COPY(ARG(8), ARG(9)); COPY(ARG(0), ARG(10)); COPY(ARG(6), ARG(11)); Fset_elt(ARG(9)); F1plus(ARG(5)); F1minus(ARG(6)); goto M1_1; RETURN2: ; COPY(ARG(0), ARG(7)); COPY(ARG(1), ARG(8)); COPY(ARG(5), ARG(9)); COPY(ARG(3), ARG(10)); COPY(ARG(4), ARG(11)); quick_sort(ARG(7)); COPY(ARG(0), ARG(7)); COPY(ARG(5), ARG(8)); COPY(ARG(2), ARG(9)); COPY(ARG(3), ARG(10)); COPY(ARG(4), ARG(11)); quick_sort(ARG(7)); RETURN1: ; }
void Fmap(CL_FORM *base, int nargs) { Flist(ARG(3), nargs - 3); ALLOC_CONS(ARG(6), ARG(2), ARG(3), ARG(3)); LOAD_GLOBFUN(&CFmin, ARG(4)); LOAD_GLOBFUN(&CFlength, ARG(5)); COPY(ARG(3), ARG(6)); Fmapcar(ARG(5), 2); Fapply(ARG(4), 2); mv_count = 1; LOAD_FIXNUM(ARG(5), 0, ARG(5)); GEN_HEAPVAR(ARG(5), ARG(6)); { GEN_CLOSURE(array, ARG(6), 4, Z146_get_elem, 1); COPY(ARG(5), &array[3]); LOAD_CLOSURE(array, ARG(6)); } if(CL_TRUEP(ARG(0))) { if(CL_SYMBOLP(ARG(0)) && GET_SYMBOL(ARG(0)) == SYMBOL(Slisp, 28)) /* LIST */ { LOAD_NIL(ARG(7)); LOAD_NIL(ARG(8)); ALLOC_CONS(ARG(9), ARG(7), ARG(8), ARG(7)); M1_1:; COPY(INDIRECT(ARG(5)), ARG(8)); COPY(ARG(4), ARG(9)); Fge(ARG(8), 2); if(CL_TRUEP(ARG(8))) { COPY(GET_CAR(ARG(7)), ARG(0)); goto RETURN1; } COPY(ARG(1), ARG(8)); COPY(ARG(6), ARG(9)); COPY(ARG(3), ARG(10)); Fmaplist(ARG(9), 2); Fapply(ARG(8), 2); mv_count = 1; COPY(ARG(7), ARG(9)); add_q(ARG(8)); COPY(INDIRECT(ARG(5)), ARG(8)); F1plus(ARG(8)); COPY(ARG(8), INDIRECT(ARG(5))); goto M1_1; RETURN1:; } else { COPY(ARG(0), ARG(7)); COPY(ARG(4), ARG(8)); LOAD_NIL(ARG(9)); LOAD_NIL(ARG(10)); make_sequence1(ARG(7)); M2_1:; COPY(INDIRECT(ARG(5)), ARG(8)); COPY(ARG(4), ARG(9)); Fge(ARG(8), 2); if(CL_TRUEP(ARG(8))) { COPY(ARG(7), ARG(0)); goto RETURN2; } COPY(ARG(7), ARG(8)); COPY(INDIRECT(ARG(5)), ARG(9)); COPY(ARG(1), ARG(10)); COPY(ARG(6), ARG(11)); COPY(ARG(3), ARG(12)); Fmaplist(ARG(11), 2); Fapply(ARG(10), 2); mv_count = 1; COPY(ARG(10), ARG(11)); COPY(ARG(8), ARG(12)); COPY(ARG(9), ARG(13)); Fset_elt(ARG(11)); COPY(INDIRECT(ARG(5)), ARG(8)); F1plus(ARG(8)); COPY(ARG(8), INDIRECT(ARG(5))); goto M2_1; RETURN2:; } } else { M3_1:; COPY(INDIRECT(ARG(5)), ARG(7)); COPY(ARG(4), ARG(8)); Fge(ARG(7), 2); if(CL_TRUEP(ARG(7))) { LOAD_NIL(ARG(0)); goto RETURN3; } COPY(ARG(1), ARG(7)); COPY(ARG(6), ARG(8)); COPY(ARG(3), ARG(9)); Fmaplist(ARG(8), 2); Fapply(ARG(7), 2); mv_count = 1; COPY(INDIRECT(ARG(5)), ARG(7)); F1plus(ARG(7)); COPY(ARG(7), INDIRECT(ARG(5))); goto M3_1; RETURN3:; } }
void concatenate_to_non_list(CL_FORM *base, int nargs) { Flist(STACK(base, 1), nargs - 1); LOAD_NIL(STACK(base, 2)); LOAD_FIXNUM(0, STACK(base, 3)); LOAD_FIXNUM(0, STACK(base, 4)); LOAD_NIL(STACK(base, 5)); COPY(STACK(base, 1), STACK(base, 6)); M144_1:; if(CL_ATOMP(STACK(base, 6))) { LOAD_NIL(STACK(base, 5)); goto RETURN158; } COPY(STACK(base, 6), STACK(base, 7)); Fcar(STACK(base, 7)); COPY(STACK(base, 7), STACK(base, 5)); COPY(STACK(base, 3), STACK(base, 7)); COPY(STACK(base, 5), STACK(base, 8)); Flength(STACK(base, 8)); Fplus(STACK(base, 7), 2); COPY(STACK(base, 7), STACK(base, 3)); Fcdr(STACK(base, 6)); goto M144_1; RETURN158:; COPY(STACK(base, 0), STACK(base, 5)); COPY(STACK(base, 3), STACK(base, 6)); Fmake_sequence(STACK(base, 5), 2); COPY(STACK(base, 5), STACK(base, 2)); LOAD_NIL(STACK(base, 5)); COPY(STACK(base, 1), STACK(base, 6)); M145_1:; if(CL_ATOMP(STACK(base, 6))) { LOAD_NIL(STACK(base, 5)); goto RETURN159; } COPY(STACK(base, 6), STACK(base, 7)); Fcar(STACK(base, 7)); COPY(STACK(base, 7), STACK(base, 5)); if(CL_LISTP(STACK(base, 5))) { LOAD_NIL(STACK(base, 7)); COPY(STACK(base, 5), STACK(base, 8)); M146_1:; if(CL_ATOMP(STACK(base, 8))) { LOAD_NIL(STACK(base, 7)); goto RETURN160; } COPY(STACK(base, 8), STACK(base, 9)); Fcar(STACK(base, 9)); COPY(STACK(base, 9), STACK(base, 7)); COPY(STACK(base, 2), STACK(base, 10)); COPY(STACK(base, 4), STACK(base, 11)); Fset_elt(STACK(base, 9)); COPY(STACK(base, 4), STACK(base, 9)); F1plus(STACK(base, 9)); COPY(STACK(base, 9), STACK(base, 4)); Fcdr(STACK(base, 8)); goto M146_1; RETURN160:; } else { COPY(STACK(base, 5), STACK(base, 7)); Flength(STACK(base, 7)); LOAD_FIXNUM(0, STACK(base, 8)); M147_1:; COPY(STACK(base, 8), STACK(base, 9)); COPY(STACK(base, 7), STACK(base, 10)); Fge(STACK(base, 9), 2); if(CL_TRUEP(STACK(base, 9))) { goto RETURN161; } COPY(STACK(base, 5), STACK(base, 9)); COPY(STACK(base, 8), STACK(base, 10)); Felt(STACK(base, 9)); COPY(STACK(base, 9), STACK(base, 10)); COPY(STACK(base, 2), STACK(base, 11)); COPY(STACK(base, 4), STACK(base, 12)); Fset_elt(STACK(base, 10)); COPY(STACK(base, 4), STACK(base, 9)); F1plus(STACK(base, 9)); COPY(STACK(base, 9), STACK(base, 4)); F1plus(STACK(base, 8)); goto M147_1; RETURN161:; } Fcdr(STACK(base, 6)); goto M145_1; RETURN159:; COPY(STACK(base, 2), STACK(base, 0)); }