diff options
Diffstat (limited to 'example/main.c')
| -rw-r--r-- | example/main.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/example/main.c b/example/main.c new file mode 100644 index 0000000..7ca152b --- /dev/null +++ b/example/main.c @@ -0,0 +1,25 @@ +#include <stdio.h> +#include "../bcode.h" + +int main() +{ + struct compile_state cs; + init(&cs); + + select_movi(&cs, 2, 0); // i + select_movi(&cs, 1, 1000000000); // limit + select_movi(&cs, 0, 0); // total + + breg_t l = label(&cs); // top + select_addr(&cs, 0, 0, 2); // add iter to total + select_addi(&cs, 2, 2, 1); + breloc_t r = select_bltr(&cs, 2, 1, 0); // 0 is placeholder value, + // should maybe add in an + // UNDEFINED macro or something + end(&cs); + + patch(&cs, r, l); + + printf("%llu\n", (unsigned long long)run(&cs)); + destroy(&cs); +} |
