From 20bde07c46ef5ea9011b088d494f7bb8850c0856 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Thu, 15 Aug 2024 12:16:00 -0700 Subject: [PATCH] fix ir generation for set-space opcode --- src/eval/eval_ir.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index ea67c456..c00e407f 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -141,7 +141,7 @@ e_oplist_push_set_space(Arena *arena, E_OpList *list, E_Space space) node->u64 = space; SLLQueuePush(list->first, list->last, node); list->op_count += 1; - list->encoded_size += sizeof(space); + list->encoded_size += 1 + sizeof(space); } internal void @@ -1225,6 +1225,13 @@ e_append_oplist_from_irtree(Arena *arena, E_IRNode *root, E_OpList *out) case E_IRExtKind_SetSpace: { e_oplist_push_set_space(arena, out, root->u64); + for(E_IRNode *child = root->first; + child != &e_irnode_nil; + child = child->next) + { + e_append_oplist_from_irtree(arena, child, out); + } + }break; case RDI_EvalOp_Cond: