From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id yHhHDvI+8WYXLAEAqHPOHw:P1 (envelope-from ) for ; Mon, 23 Sep 2024 12:12:02 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id yHhHDvI+8WYXLAEAqHPOHw (envelope-from ) for ; Mon, 23 Sep 2024 12:12:02 +0200 X-Envelope-To: patches@johnnyrichard.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=lists.sr.ht header.s=20240113 header.b=ObPE9dDr; dkim=pass header.d=maniero.me header.s=hostingermail1 header.b=IuCJ+xSr; spf=pass (aspmx1.migadu.com: domain of lists@sr.ht designates 46.23.81.152 as permitted sender) smtp.mailfrom=lists@sr.ht; dmarc=pass (policy=none) header.from=maniero.me; arc=pass ("mailchannels.net:s=arc-2022:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=johnnyrichard.com; s=key1; t=1727086322; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=X42obF5AvVAfNqnyqtmvbZyXHUsiay1q+gf+zcGa4z8=; b=3cAcsmfUy6QuTTs8ZjGmf141XBIwu2oLMmVg+AfzTdcV4aN2CVNzdfUy3v/XEYCFtnvoCS jGi1+ZMadLDpYwnQL5lC5ovoReiIyx5HcIWe33yJPIA1wS9gzjwXEBCn6njr6XOaLok/1q KY1DW6khKa3y2+AhaFQSBi0B5etDbN8o7Z/t0NYifzdTSmRZmrV947yVsBRyctpreNQTov juT5ufX2e9Drz+qUJxgM2WP8G97HNR89G4Z1VBd45nGDwo1SLGyMik2LwPQpKtPUihrCWl WvnEQWe58XX3Lv0l/zXGuvDI13LTHTJn3mKhg3k3iSQGDXyyXnMpue46v+ISfQ== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=lists.sr.ht header.s=20240113 header.b=ObPE9dDr; dkim=pass header.d=maniero.me header.s=hostingermail1 header.b=IuCJ+xSr; spf=pass (aspmx1.migadu.com: domain of lists@sr.ht designates 46.23.81.152 as permitted sender) smtp.mailfrom=lists@sr.ht; dmarc=pass (policy=none) header.from=maniero.me; arc=pass ("mailchannels.net:s=arc-2022:i=1") ARC-Seal: i=2; s=key1; d=johnnyrichard.com; t=1727086322; a=rsa-sha256; cv=pass; b=fyu7Zlg2okRQ8zAtYvmU6FAo/5xFxWvSL6/s6Pm3/6KsZjAT0kC7Ka+rmCZ1zZf8Ho3FAN F2uR8rHvTCYc9apTAFwLEn9mnn1xKh6WjXyd15jX9X/pZpO49qqz6cmBXdaFtAfF1k2YIT WjjAq/R2fNhEZVlAOWTeibh17hp3abSs+nMF49kvjvt1nGJ7rmU5rKEs3nYHH4kYiD+Go7 Bi/0q8I1Qdc5FCN2Bf0G/vBANaUW5F4CA68dwqiOkHxmuWBmR3VY1NiowKqt5vsYPu96nh 2QBFhVuS/nTll+Uu9Wd1xx6CITTO5koyTRXV5CttVEfQsJMrdGhB9mf7nwKhRQ== Received: from mail-a.sr.ht (mail-a.sr.ht [46.23.81.152]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 22CBF879F3 for ; Mon, 23 Sep 2024 12:12:01 +0200 (CEST) DKIM-Signature: a=rsa-sha256; bh=zVFtKiOAwHvoptqX9irJqE60ift+1ZNr0FnvycPhj1Y=; c=simple/simple; d=lists.sr.ht; h=From:To:Cc:Subject:In-Reply-To:References:Date:List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-ID; q=dns/txt; s=20240113; t=1727086320; v=1; b=ObPE9dDr9nPJdn9w1cmfU//BTNtaYrL2BtQ0SYWHVfxkFTyCB7L54Cur4Ms3W4wz4wyMkMJI ug+1baiX/y1a4cDlAIv/0WQBspj1nZZQ+br+TVcdwbt4Kda42w8rL/roeTtNuYsZ8MB2YDc+YRB 5uxFQoPBJf0se+gZ/ugnafIBAMm4/Nzl1cy6atMbUYvNeBttI30Z4J1n3XADE3tbekEsQ5h52TE vG+V4WiDpKLkbMnR8IrxcLTJx0lY/wsfz+eDjsb1uwcVqSf+FNbag6RmfP1I7zyG9klvAdGhZOd MRuI3NqCq//P4m4UJ1aPIW7o9ToLvRGbQbJ7NAmeh+/lQ== Received: from lists.sr.ht (unknown [46.23.81.154]) by mail-a.sr.ht (Postfix) with ESMTPSA id DDF5E20105 for ; Mon, 23 Sep 2024 10:12:00 +0000 (UTC) Received: from gerbil.ash.relay.mailchannels.net (gerbil.ash.relay.mailchannels.net [23.83.222.67]) by mail-a.sr.ht (Postfix) with ESMTPS id 727932010C for <~johnnyrichard/olang-devel@lists.sr.ht>; Mon, 23 Sep 2024 10:11:59 +0000 (UTC) X-Sender-Id: hostingeremail|x-authuser|carlos@maniero.me Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id C609EC7ADB for <~johnnyrichard/olang-devel@lists.sr.ht>; Mon, 23 Sep 2024 10:11:57 +0000 (UTC) Received: from uk-fast-smtpout10.hostinger.io (unknown [127.0.0.6]) (Authenticated sender: hostingeremail) by relay.mailchannels.net (Postfix) with ESMTPA id 0A50FC790B for <~johnnyrichard/olang-devel@lists.sr.ht>; Mon, 23 Sep 2024 10:11:56 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1727086317; a=rsa-sha256; cv=none; b=HtEkuLMc8VfQEywtJOafpJkmi0SoXAAIU8T8KGXSX73dYP3QELf5+5tLFa6Q3EP4PFH1px dcLPo6WQryDrIJdbu8HkhV0/jbCdw3Sax1qE28fM6MuhL6S3bFXIyivIGZgWUqxxrvBXO+ Qf6VTDQ0VMwMRA4kWztWI3fhCAJxa9Ko3LLtqjbLFXUvzYI4c/0KWwHEQyUBoccg5A8a8E oBKmb1E58ZbYq+VXZPzdjTg5mEJX/gi/AfSd2FTyTqX/6rLxIiGyN1CTBxcmzRa+rQqvam lkonZAA89wRD6Wzow60aHxH8i3bgNtVZgKKy6iCPsgqfn2uJf0N3pRN1quvCxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1727086317; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=X42obF5AvVAfNqnyqtmvbZyXHUsiay1q+gf+zcGa4z8=; b=nsJm2+LPVHEeRA0MTMzE5tOmg6wlgQAH2mMaU/PgkyqAqgDP0vqI2vHmMGFqldr3DsUf4l mwFsDWjFzB1o9HS9c1NJbC14L3B6UpTe3eia3JcGxWSw/4HoHRY0VFzFKDBsG59wS6KSd3 CxfVEWs5iVlsO5wA5SkrXQgdzjX8QB7UDYxMHevOyCMDidj4PdfCuvqmjq6KxficWNfRsh ufxAyT1iQvoNvnChZGFGNFx5kJK493eV4shlFTYWWTzQFSC3A38yHiqUpBcctQjbJkYZZ+ sALhYR7Ns07lDWaA5v2IgspTjP/47VXD0q74m5SAWeVI1ZcYMdYFw6MjW5Jb1Q== ARC-Authentication-Results: i=1; rspamd-b5ccff48b-2mst5; auth=pass smtp.auth=hostingeremail smtp.mailfrom=carlos@maniero.me X-Sender-Id: hostingeremail|x-authuser|carlos@maniero.me X-MC-Relay: Neutral X-MailChannels-SenderId: hostingeremail|x-authuser|carlos@maniero.me X-MailChannels-Auth-Id: hostingeremail X-Share-Ruddy: 1632b0db52b49221_1727086317545_3858838226 X-MC-Loop-Signature: 1727086317545:3854238358 X-MC-Ingress-Time: 1727086317545 Received: from uk-fast-smtpout10.hostinger.io (uk-fast-smtpout10.hostinger.io [145.14.155.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.116.150.232 (trex/7.0.2); Mon, 23 Sep 2024 10:11:57 +0000 From: Carlos Maniero DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maniero.me; s=hostingermail1; t=1727086315; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=X42obF5AvVAfNqnyqtmvbZyXHUsiay1q+gf+zcGa4z8=; b=IuCJ+xSr3VhfQ7cb6Oo76kHv1UxOyd+SsXjMSYR+IHGgfkkz4/rf6Wy+MgGokYsXxkCutq pM5LbNGVRNx24U/dH9pk4AwLDzZQ9NfR7eri55Jnh0GcxrKOzzYV8vF5JQZBjcGnpy5llI nW0hKlcAzYXnz47B5H+HMxOualQLHGqtv9at8uh0GyJXK64O+biCm2ujDfn/ZcJIMB3ZY+ 5QrSL6wYtfQYCe18cGMdsJwUdGFZOL3zn/nE08pjRLGCjSiBxUzhLRTtq/02055q3M/OyP dPDzobUWBb8h2i34u/1T9yL0kh2p5u+VKhZYHKxMBXYwEE+vKQmxiTjYZLqYpw== To: ~johnnyrichard/olang-devel@lists.sr.ht Cc: Carlos Maniero Subject: [PATCH olang v1 2/3] codegen: move label_index global variable to the codegen scope Message-Id: <20240923101141.76783-3-carlos@maniero.me> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240923101141.76783-1-carlos@maniero.me> References: <20240923101141.76783-1-carlos@maniero.me> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Date: Mon, 23 Sep 2024 10:11:54 +0000 (UTC) X-CM-Envelope: MS4xfE0Fl/dLHawilumuhmBTmLsZ8i3lnmCbJwKMbThXhaIz6zZQreYUNvxH6ZrRQNgODhGQEt11SnlAtXievVFmu0aFjmvCXjZtET6xP7qCfhWeb6yrwSkS 2HyYZT++qC4EO1OCmlROU6CkbbjNYq8uqrVHqmPI7GzKJk+gmJ9k/qCJZYuUTvkOTb40pkLi5Wch0RLgU3qRsuhlyOs71FOeqQhLUAvoU5oPhmwJarXWR6L8 X-CM-Analysis: v=2.4 cv=TcnEtgQh c=1 sm=1 tr=0 ts=66f13eeb a=WwxFCuf3mf1fs3oSi6/dng==:117 a=WwxFCuf3mf1fs3oSi6/dng==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=Of4DKUE533Q9u0xLUBIA:9 a=BXDaF_L80NY05PYiAFlV:22 X-AuthUser: carlos@maniero.me X-Sourcehut-Patchset-Status: UNKNOWN List-Unsubscribe: List-Subscribe: List-Archive: Archived-At: List-Post: List-ID: ~johnnyrichard/olang-devel <~johnnyrichard/olang-devel.lists.sr.ht> Sender: ~johnnyrichard/olang-devel <~johnnyrichard/olang-devel@lists.sr.ht> X-Migadu-Flow: FLOW_IN X-Migadu-Country: NL X-Migadu-Queue-Id: 22CBF879F3 X-Migadu-Scanner: mx11.migadu.com X-Spam-Score: -5.80 X-Migadu-Spam-Score: -5.80 X-TUID: F0OjK7IOGakD Signed-off-by: Carlos Maniero --- src/codegen_linux_x86_64.c | 19 ++++++++----------- src/codegen_linux_x86_64.h | 1 + 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/codegen_linux_x86_64.c b/src/codegen_linux_x86_64.c index e604144..2e329ca 100644 --- a/src/codegen_linux_x86_64.c +++ b/src/codegen_linux_x86_64.c @@ -30,9 +30,6 @@ // must be preserved else the ret instruction will jump to nowere. #define X86_CALL_EIP_STACK_OFFSET (8) -// FIXME: move label_index to codegen_linux_x86_64_t structure -size_t label_index; - static void codegen_linux_x86_64_emit_start_entrypoint(codegen_x86_64_t *codegen); @@ -60,7 +57,7 @@ codegen_linux_x86_64_init(codegen_x86_64_t *codegen, arena_t *arena, FILE *out) void codegen_linux_x86_64_emit_program(codegen_x86_64_t *codegen, ast_node_t *node) { - label_index = 0; + codegen->label_index = 0; codegen_linux_x86_64_emit_start_entrypoint(codegen); assert(node->kind == AST_NODE_PROGRAM); @@ -86,9 +83,9 @@ codegen_linux_x86_64_emit_start_entrypoint(codegen_x86_64_t *codegen) } static size_t -codegen_linux_x86_64_get_next_label(void) +codegen_linux_x86_64_get_next_label(codegen_x86_64_t *codegen) { - return ++label_index; + return ++codegen->label_index; } static void @@ -301,7 +298,7 @@ codegen_linux_x86_64_emit_expression(codegen_x86_64_t *codegen, ast_node_t *expr return; } case AST_BINOP_LOGICAL_AND: { - size_t label_exit = codegen_linux_x86_64_get_next_label(); + size_t label_exit = codegen_linux_x86_64_get_next_label(codegen); codegen_linux_x86_64_emit_expression(codegen, bin_op.lhs); fprintf(codegen->out, " cmp $0, %%rax\n"); @@ -316,8 +313,8 @@ codegen_linux_x86_64_emit_expression(codegen_x86_64_t *codegen, ast_node_t *expr return; } case AST_BINOP_LOGICAL_OR: { - size_t label_t = codegen_linux_x86_64_get_next_label(); - size_t label_f = codegen_linux_x86_64_get_next_label(); + size_t label_t = codegen_linux_x86_64_get_next_label(codegen); + size_t label_f = codegen_linux_x86_64_get_next_label(codegen); codegen_linux_x86_64_emit_expression(codegen, bin_op.lhs); fprintf(codegen->out, " cmp $0, %%rax\n"); @@ -402,8 +399,8 @@ codegen_linux_x86_64_emit_block(codegen_x86_64_t *codegen, ast_block_t *block) ast_node_t *then = if_stmt.then; ast_node_t *_else = if_stmt._else; - size_t end_if_label = codegen_linux_x86_64_get_next_label(); - size_t end_else_label = codegen_linux_x86_64_get_next_label(); + size_t end_if_label = codegen_linux_x86_64_get_next_label(codegen); + size_t end_else_label = codegen_linux_x86_64_get_next_label(codegen); codegen_linux_x86_64_emit_expression(codegen, cond); fprintf(codegen->out, " cmp $1, %%rax\n"); diff --git a/src/codegen_linux_x86_64.h b/src/codegen_linux_x86_64.h index cad530a..803c080 100644 --- a/src/codegen_linux_x86_64.h +++ b/src/codegen_linux_x86_64.h @@ -26,6 +26,7 @@ typedef struct codegen_x86_64 { arena_t *arena; size_t base_offset; + size_t label_index; map_t *symbols_stack_offset; FILE *out; } codegen_x86_64_t; -- 2.34.1