altos/lisp: Change GC move API
[fw/altos] / src / lisp / ao_lisp_make_const.c
index 9c2ea74cdccf811e2514b49cdfa0b08638eae62f..9768dc220c7710df07aa233feefa4290dd24348c 100644 (file)
@@ -45,7 +45,12 @@ struct builtin_func funcs[] = {
        "-",            AO_LISP_LEXPR,  builtin_minus,
        "*",            AO_LISP_LEXPR,  builtin_times,
        "/",            AO_LISP_LEXPR,  builtin_divide,
-       "%",            AO_LISP_LEXPR,  builtin_mod
+       "%",            AO_LISP_LEXPR,  builtin_mod,
+       "=",            AO_LISP_LEXPR,  builtin_equal,
+       "<",            AO_LISP_LEXPR,  builtin_less,
+       ">",            AO_LISP_LEXPR,  builtin_greater,
+       "<=",           AO_LISP_LEXPR,  builtin_less_equal,
+       ">=",           AO_LISP_LEXPR,  builtin_greater_equal,
 };
 
 ao_poly
@@ -92,7 +97,7 @@ main(int argc, char **argv)
        printf("/*\n");
        printf(" * Generated file, do not edit\n");
        ao_lisp_root_add(&ao_lisp_frame_type, &globals);
-       globals = ao_lisp_frame_new(0, 0);
+       globals = ao_lisp_frame_new(0);
        for (f = 0; f < N_FUNC; f++) {
                b = ao_lisp_make_builtin(funcs[f].func, funcs[f].args);
                a = ao_lisp_atom_intern(funcs[f].name);
@@ -127,8 +132,6 @@ main(int argc, char **argv)
        ao_lisp_collect();
        printf(" */\n");
 
-       globals->readonly = 1;
-
        printf("#define AO_LISP_POOL_CONST %d\n", ao_lisp_top);
        printf("extern const uint8_t ao_lisp_const[AO_LISP_POOL_CONST] __attribute__((aligned(4)));\n");
        printf("#define ao_builtin_atoms 0x%04x\n", ao_lisp_atom_poly(ao_lisp_atoms));