From 55733171c19aa53aebbe343d7541c3c5a1597c46 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 17 Jul 2023 23:16:50 +0100 Subject: Planning for multi-valued expressions in the tilde backend --- src/tilde_backend.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/tilde_backend.cpp') diff --git a/src/tilde_backend.cpp b/src/tilde_backend.cpp index 00e665b62..97f2dcccd 100644 --- a/src/tilde_backend.cpp +++ b/src/tilde_backend.cpp @@ -118,7 +118,20 @@ gb_internal cgValue cg_lvalue_addr(TB_Node *node, Type *type) { return v; } +gb_internal cgValue cg_value_multi(cgValueMultiNodes *multi_nodes, Type *type) { + GB_ASSERT(type->kind == Type_Tuple); + GB_ASSERT(multi_nodes != nullptr); + GB_ASSERT(type->Tuple.variables.count > 1); + GB_ASSERT(multi_nodes->nodes.count == type->Tuple.variables.count); + cgValue v = {}; + v.kind = cgValue_Multi; + v.type = type; + v.multi_nodes = multi_nodes; + return v; +} + gb_internal cgAddr cg_addr(cgValue const &value) { + GB_ASSERT(value.kind != cgValue_Multi); cgAddr addr = {}; addr.kind = cgAddr_Default; addr.addr = value; -- cgit v1.2.3