Having finished looping over the blocks and populating them with statements, the context is complete.
We can now compile it, and extract machine code from the result:
We can now run the result:
toyvm_compiled_function *compiled_fn = toyvm_function_compile (fn); toyvm_compiled_code code = compiled_fn->cf_code; printf ("compiler result: %d\n", code (atoi (argv[2]))); gcc_jit_result_release (compiled_fn->cf_jit_result); free (compiled_fn);