From bf993be4a04bc7279f7d49ae18f185e1dca36479 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Fri, 4 Aug 2023 21:28:39 +0300 Subject: move main.c to examples --- examples/main.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 examples/main.c (limited to 'examples/main.c') diff --git a/examples/main.c b/examples/main.c new file mode 100644 index 0000000..94e372b --- /dev/null +++ b/examples/main.c @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: copyleft-next-0.3.1 */ + +#include +#include +#include + +#include "../src/copyjit.h" + +int main() +{ + ctx_t ctx; + compile_start(&ctx); + + compile_fast_lix(&ctx, 0); // total in x + + compile_fast_liy(&ctx, 0); // iter in y + + void *top = compile_add(&ctx); // iter + total in a + compile_movxa(&ctx); // move total to x + + compile_incy(&ctx); // increment iter + compile_fast_lio(&ctx, 1000000000); // limit in o + compile_subyo(&ctx); + + compile_fast_lio(&ctx, (uintptr_t)top); // branch target in o + /* if we already know the offset, we could generate a ban with immediate + * offsets to save one register? */ + compile_ban(&ctx); + + compile_end(&ctx); + + compile_finish(&ctx); + + printf("%lu\n", run(&ctx)); +} -- cgit v1.3