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 AHXVN+KC7mZWPAAAqHPOHw:P1 (envelope-from ) for ; Sat, 21 Sep 2024 10:25:07 +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 AHXVN+KC7mZWPAAAqHPOHw (envelope-from ) for ; Sat, 21 Sep 2024 10:25:07 +0200 X-Envelope-To: patches@johnnyrichard.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=lists.sr.ht header.s=20240113 header.b=itSeJjhW; dkim=pass header.d=maniero.me header.s=hostingermail1 header.b=Tws6O4Ek; 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=1726907106; 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=5apxJzvPgBziBnhgOWFkCf3dC+X4F+5CvK5URTb7mic=; b=UIcdfS5RAC+Uy2fe15PxH1tgEtbL9lneLpRHhjQ3IJHURVPXIrNWpVvsTP13wrJDAep+gc djQgtiUR8kipQ0UlwHFfYFcn/TSuuz5364WgZyer9njr9whPOaDVAwEUS9QAr9oSz0ie3E a6zHIXHZyVWlyzc9BXqlDXXYLH/8Zk4S1VcBN00JlawR5Gw3r5Bh4R+hn5Wzl9QWYmUnSF 3xea81HcJ2I9oEnE4lyB4l51oIvxQfR+mVll1aiZD7JaB+MODjdZYGF9hNbqJthsIWAiYO t5Cg5tbhnOEkgw1V9Bmh3/sE5MZg1OV/ONoWzg2gyxZBqNNHjjzhYQWcflSXXQ== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=lists.sr.ht header.s=20240113 header.b=itSeJjhW; dkim=pass header.d=maniero.me header.s=hostingermail1 header.b=Tws6O4Ek; 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=1726907106; a=rsa-sha256; cv=pass; b=HghBOt6QEKbh/k2dZC5UHxNo621J7dfEV7QD3hpQ0OaITsaP9hEvy+0/+gRzbaszJY06Zo UJlLc1Nk84H4W070OH9SNii5a8TcqOryxSTqCxDmVLtRsX2TCsXenn01Wgudvuu7Uansn8 oxwd+cYLrqmLwddIaGQbgKKpNW3BKpu6evNJHJtPIOf4PSNMZPySP9QkuQ8vGAfXC1+atU exYsEB4I6vJ8VklECC6YMmkYWCr0jkEMfNJ3ksYbvnAop+PoBHUh3+Ty4wPp9xMk+JR9eY ThGJG/2mG6LLdDlTgD49qvgVjcQbc/n6xiGfXPe1XMS5WMqwn/qwCZZO8Y4KzQ== 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 D0EEE6317 for ; Sat, 21 Sep 2024 10:25:06 +0200 (CEST) DKIM-Signature: a=rsa-sha256; bh=n2P7+/Rx0/3ZfVbO1WDHAoONLaxNq/S6Z0qb2YV72SQ=; 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=1726907106; v=1; b=itSeJjhWmJ/8ZZT9p+74w/mVeMP1hXW46fUUHNGVtWfpWIVdOUeAka8AYdsSt0/Y98JkbwhL DQvYf8OSg/+OJHk/LTvv790VkvF9utpeYGyg+L6mxc4lddqP6Ky3GjWkjhGyVoikbdNOGzBk9y6 aUgxLZbm1hiJmrzq2fNgnZ1RMAEoePjPvPXDbOOUHOezwbNfdO6gT0IaBXOi0xJgKKuTSfQQGIc JF8Zl+HBpmtVNBFQEK1S+/NpUVXCU6yVG0ETUWXagKdw/FdojlfC+bXixAitL+q3vbrf8MI1/Q6 KW17xsNWcKRxXqGWRhcJf3ZQAJNUTJXU+VVLVkxXOBYwg== Received: from lists.sr.ht (unknown [46.23.81.154]) by mail-a.sr.ht (Postfix) with ESMTPSA id 56525201E8 for ; Sat, 21 Sep 2024 08:25:06 +0000 (UTC) Received: from bumble.maple.relay.mailchannels.net (bumble.maple.relay.mailchannels.net [23.83.214.25]) by mail-a.sr.ht (Postfix) with ESMTPS id 19AD3201E6 for <~johnnyrichard/olang-devel@lists.sr.ht>; Sat, 21 Sep 2024 08:25:04 +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 A9E22903D25 for <~johnnyrichard/olang-devel@lists.sr.ht>; Sat, 21 Sep 2024 08:25:03 +0000 (UTC) Received: from uk-fast-smtpout10.hostinger.io (trex-14.trex.outbound.svc.cluster.local [100.99.68.57]) (Authenticated sender: hostingeremail) by relay.mailchannels.net (Postfix) with ESMTPA id 1A6E6902A73 for <~johnnyrichard/olang-devel@lists.sr.ht>; Sat, 21 Sep 2024 08:25:02 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1726907103; a=rsa-sha256; cv=none; b=X0DB7/dVjmdpLK/BKCNqHq6vXpVai1NoaqInczTthOfR0dqetzJ5afUvB/7NqYq2Cis1zh ghdfOXYkzZCpumO22K9YSTFzNyvT9nPEWu6K0/up4DOAvtA7oSex8t2/lWnMckRXS8N306 eplMuJAYBtMhdWSsWgxelp/eQk0rXkA8lc9LpzHDYXHxzaIfo09L/WvVUEnMBAovHijOba KH0XFgwn0A0Kn5PZ6431kOs5+pSu19bk7DVElSIv5YEBoUj/qcnrnYXX6WT0XPf+Uu/gLm GCbKcqAFWL72bXXgoiwDptsvxC7TPRe1fifchr4kYM+iwFhgH5WNY9CwOAM2hQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1726907103; 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=5apxJzvPgBziBnhgOWFkCf3dC+X4F+5CvK5URTb7mic=; b=za4KohI0sJ7NYBWCsdM5iQwNPyPwqLsn1FGq15yH9Ih4JHnmgTEbVpTiv0qsn3BljKiKbY KHil2+zm2Yf84T6KAKbnW48NdnaCtsPeXLRgn5Zva8DkhJh/x0BxqdCZxTTlcd5DDmtsmH C6q7twN/amLuwqP/A8Va41dY48wfrQwmOMgNmLZgFjrSmcYE7lh/LvXimwKIATlY97fFJH vARAu3owxn+z0mdFKomnT+KUrmwW3tskJXkq6ubG8n4D+Kb8qWagFoY/sTnfv55+XtZFHK zCW+trE1GkfTAbktCdqKPFqV7JGIYNQmBf/pd5fpOXHRKv6wyq4HyXVIxrz2sg== ARC-Authentication-Results: i=1; rspamd-5b46bcd97f-9tw6t; 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-Shade-Wipe: 3582784b01ba84d3_1726907103600_1161657673 X-MC-Loop-Signature: 1726907103600:1452724276 X-MC-Ingress-Time: 1726907103600 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.99.68.57 (trex/7.0.2); Sat, 21 Sep 2024 08:25:03 +0000 From: Carlos Maniero DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maniero.me; s=hostingermail1; t=1726907101; 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=5apxJzvPgBziBnhgOWFkCf3dC+X4F+5CvK5URTb7mic=; b=Tws6O4Ek0Dq8gYTHa6Ebm8IVWe6uWcBkVSqgAp0/948kpqX2b/cSDAhqo+b1Myy0NDXDII /y5smAVOLog3DeKbTD43skBTrs09ITxVSWgho5+gqQEtsTy+cVCIHUg5/7lcJA0zKO4drf 09JQzjLT5VInZ05eQx6h/4V4y9xDmhQkmB8JYpOXZU21vPmcYIvSi/YVB72E7ZC7slkKDG dfbzB4QNP7TahJGWANyQ6QZ0O+RzIF6lUg1cFtU75E90JqSJJC51ZRcRUvHIL4hjg6qiih 7x5sv1RlO+ccd6DLN53HCG7/ur0zWv2MxEZw9OPjx1sJZxyKy9YXmIlwDLuWUw== To: ~johnnyrichard/olang-devel@lists.sr.ht Cc: Carlos Maniero Subject: [PATCH olang 4/5] codegen: calculate the variable offset based on symbol type Message-Id: <20240921082437.396691-5-carlos@maniero.me> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240921082437.396691-1-carlos@maniero.me> References: <20240921082437.396691-1-carlos@maniero.me> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Date: Sat, 21 Sep 2024 08:25:00 +0000 (UTC) X-CM-Analysis: v=2.4 cv=TcnEtgQh c=1 sm=1 tr=0 ts=66ee82dd a=WwxFCuf3mf1fs3oSi6/dng==:117 a=WwxFCuf3mf1fs3oSi6/dng==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=-572E__cdLphuI4t0vUA:9 a=BXDaF_L80NY05PYiAFlV:22 X-CM-Envelope: MS4xfPRtNk619N8DO3GCpffC3em39jsU8Au16OtvxuMdAZpQ5nbsDBFrJM+JpVZVKj2eNZx+/f0tB79uFPIUB4E2WgTAJxO0af2UTk55iwLk3JNdSN9Tf4QI i6iOGXRrmnsKxv6ocly9NkX7Hs+sQjZ8+saM9xW8qSxvdcc5uphkb49xKnuJfnSgPdHIPppfxG6Rg0Mma+JRpZyASjq907vzcgynP2fa8IGTStyAcIT8+wxL 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: D0EEE6317 X-Migadu-Scanner: mx11.migadu.com X-Spam-Score: -5.80 X-Migadu-Spam-Score: -5.80 X-TUID: Vdom+afBTNEv This is just an initial structure although it still only supporting u32. Signed-off-by: Carlos Maniero --- src/codegen_linux_x86_64.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/codegen_linux_x86_64.c b/src/codegen_linux_x86_64.c index 1fa6c58..415c81b 100644 --- a/src/codegen_linux_x86_64.c +++ b/src/codegen_linux_x86_64.c @@ -35,6 +35,9 @@ codegen_linux_x86_64_emit_start_entrypoint(codegen_x86_64_t *codegen); static void codegen_linux_x86_64_emit_function(codegen_x86_64_t *codegen, ast_fn_definition_t *fn); +static size_t +type_to_bytes(type_t *type); + void codegen_linux_x86_64_init(codegen_x86_64_t *codegen, arena_t *arena, FILE *out) { @@ -366,7 +369,7 @@ codegen_linux_x86_64_emit_block(codegen_x86_64_t *codegen, ast_block_t *block) codegen_linux_x86_64_emit_expression(codegen, var_def.value); } - codegen->base_offset += 8; + codegen->base_offset += type_to_bytes(&symbol->type); size_t *offset = arena_alloc(codegen->arena, sizeof(size_t)); *offset = codegen->base_offset; @@ -419,6 +422,22 @@ codegen_linux_x86_64_emit_block(codegen_x86_64_t *codegen, ast_block_t *block) codegen->base_offset = block_offset; } +static size_t +type_to_bytes(type_t *type) +{ + switch (type->kind) { + case TYPE_PRIMITIVE: { + return 8; + } + case TYPE_USER_DEFINED: { + assert(0 && "user defined types are not defined yet"); + } + } + + assert(0 && "unreachable"); + return 0; +} + static size_t calculate_fn_local_size(scope_t *scope) { @@ -431,9 +450,8 @@ calculate_fn_local_size(scope_t *scope) map_get_kvs(scope->symbols, kvs); for (size_t i = 0; i < scope->symbols->size; ++i) { - // FIXME: symbols must have their types. Since we just have 8bytes - // variables it is hard coded. - local_size += 8; + symbol_t *symbol = (symbol_t *)kvs[i]->value; + local_size += type_to_bytes(&symbol->type); } size_t max_child_local_size = 0; -- 2.34.1