commit 4cd1ee5128c84d7e314e5f1d0005e0eacf8d1a88 parent 6084d79dbeefec3cfbf04e626ac58d91d2dd5fbb Author: Brian Swetland <swetland@frotz.net> Date: Sat, 4 Dec 2021 21:40:03 -0800 compiler2: codeflow for while loops Diffstat:
M | src/codegen-risc5-simple.c | | | 8 | +++++--- |
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/codegen-risc5-simple.c b/src/codegen-risc5-simple.c @@ -362,12 +362,14 @@ void gen_while(Ast node) { loop_continue = ctx.pc; u32 r = gen_expr(node->child); - put_reg(r); - // XXX flow + emit_mov(R11, r); // set z flag + put_reg(r); + gen_branch_fwd(EQ, &list); gen_block(node->child->next); - emit_br(AL, loop_continue); + + gen_branch(AL, loop_continue); // patch breaks fixup_branches_fwd(loop_exit->next);