From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:700:3204::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id CN7mN+LO5mUWNQEAbAwnHQ (envelope-from ) for ; Tue, 05 Mar 2024 08:50:59 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id OJSSMuLO5mVoggEAe85BDQ (envelope-from ) for ; Tue, 05 Mar 2024 08:50:58 +0100 X-Envelope-To: patches@johnnyrichard.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=lists.sr.ht header.s=20240113 header.b=Anjw3CX1; dkim=pass header.d=johnnyrichard.com header.s=key1 header.b=br+o9V10; dmarc=pass (policy=quarantine) header.from=johnnyrichard.com; spf=pass (aspmx1.migadu.com: domain of lists@sr.ht designates 46.23.81.152 as permitted sender) smtp.mailfrom=lists@sr.ht ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=johnnyrichard.com; s=key1; t=1709625058; 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:list-id: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=6XZKDetrMjo8V6+xa+OliDAHEp2+u/RJI7fTbRrg1fs=; b=PzRb2jV16MQlnaKpnSgwJyKi5A+8cswx/ydrchcuDawYtQuUSj998yF8vj3dUSwuolj2yj 5XBPW/lz3iFw59TIKFYXSs2flApLmXXg7vvESXjoXg1v68ZdQzmFpw/InIZkh2VdoLaLXu QGTF/pOlfhiQJzIsDNavFhISLNV5892EtaJqEe7vR9ttI1GwRDqKs/7epNw0pqHjr9rXB8 0CEGNIcPrvFPLN7f0buOp5ibyYgSUKWD0T8iGpiVRO3uX3843nWt7xb0JLaT9jqlwfZLBc ZRwTbkkhy5Tu2HA2f6NtuhLu/Dz+4GYZWWDIDUJ3JG/hl+vi2Q7eGSqtyn0DOg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=lists.sr.ht header.s=20240113 header.b=Anjw3CX1; dkim=pass header.d=johnnyrichard.com header.s=key1 header.b=br+o9V10; dmarc=pass (policy=quarantine) header.from=johnnyrichard.com; spf=pass (aspmx1.migadu.com: domain of lists@sr.ht designates 46.23.81.152 as permitted sender) smtp.mailfrom=lists@sr.ht ARC-Seal: i=1; s=key1; d=johnnyrichard.com; t=1709625058; a=rsa-sha256; cv=none; b=Oiut6EDp2tkQ+td4eXl08qKAYA+33u9BbccctSu//LFBq4nEfo4+IlclC6dZZ4GxYMN34P 9Ghw5mfADoO/yjonTpuhBKmlYwyyxpBdIe8ReSTANmjm6XHHChg111XGBd7+JtHffc7SW3 QRXIYfwbsydW2M6lIdDgkKePgOnwWd2Ju5i9yPlPEg++XF/Kf6Ns02tyO3/O7VWF7Nsz36 tyUDWMKu8rjd1nc9t7YBq+NgNQdyYJ1zmMLoK3Yh+ZZkvFK39HeKpo0Ci7EfOMGpHujUsd iLnyPhzRg0uFeQ4+c8OI0YSIHCuQ8+Hzez5MHT8qWLHXcq33VDUfWU626FeoWw== 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 A093A13D70 for ; Tue, 5 Mar 2024 08:50:58 +0100 (CET) DKIM-Signature: a=rsa-sha256; bh=12Ua2eKI7RWPejR2KnAxbc0IsXDE7qrw2L8AQo2bcCE=; c=simple/simple; d=lists.sr.ht; h=From:To:Cc:Subject:Date:List-Unsubscribe:List-Subscribe:List-Archive:List-Post:List-ID; q=dns/txt; s=20240113; t=1709625058; v=1; b=Anjw3CX1/k9SjilP0dIQOaZ4Z/PTWlsujZSSaloUv+4sj7XSaR0YqRc2GyZaNvWRhv+ctrPy YsfHnawHrwPdvQaeRuGEQHO3eAIl+c0FrmWv+upfYx+UnaRWDjDjO3A+Jskdb/diJ0AWe88dMmN hgpsrwuMGw/f/Vn32uHQ0nKjiBgb6O+BQ3yvIomFRWn+wL4x5cDxojCD5X8wpRR5wQaB5+3mDN0 ZIrDEmQU4fFDfLgsSb8MOGLC2ivz5aQYNp7pUPqwgfq1Kc8K6KTihQ0PwZFEn9bcCQI+EVSu42p UJ6nUBZjfR58R7A3coGxvCZaGqbZaNa5ACyJQsJO7mkOQ== Received: from lists.sr.ht (unknown [46.23.81.154]) by mail-a.sr.ht (Postfix) with ESMTPSA id 5AFD62017E for ; Tue, 5 Mar 2024 07:50:58 +0000 (UTC) Received: from out-178.mta0.migadu.com (out-178.mta0.migadu.com [91.218.175.178]) by mail-a.sr.ht (Postfix) with ESMTPS id B4D1020141 for <~johnnyrichard/olang-devel@lists.sr.ht>; Tue, 5 Mar 2024 07:50:57 +0000 (UTC) X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=johnnyrichard.com; s=key1; t=1709625056; 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; bh=6XZKDetrMjo8V6+xa+OliDAHEp2+u/RJI7fTbRrg1fs=; b=br+o9V10oTdvWhbzQkd3JeGhHIrCVSonZastH4f4nm4GCfIqGbsnOBpa7K09RuOAXSiNcc n6/3vGLvUaF3in0i1SosPn8JrDWHvf6qY2dBM0dvDJIdnqeq+Q7EyWOQqZoTygF27y+Us3 FzaWNkSjts+ruFFhXOrE/uD51VaOcF3EHMJhDJvA3GE3RNLBDqcBqRqm9/P2d4En5y6yon ckCRhzPg2GiCqrPJWKvaSV38b0RRf9a07GDT/tTH6WXbjTY8C6DVlKafBY1Q4zlWpV/kJZ L+wF5v+CCGzZoRcxYEfRDdFYJk68hj30tTydsXWSURtclpck10sEhipL0scxbw== From: Johnny Richard To: ~johnnyrichard/olang-devel@lists.sr.ht Cc: Johnny Richard Subject: [PATCH olang v2 0/3] implement assembly linux x86_64 compiler Date: Tue, 5 Mar 2024 09:44:43 +0100 Message-ID: <20240305085101.968075-1-johnny@johnnyrichard.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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-Spam-Score: -9.03 X-Spam-Score: -9.03 X-Migadu-Queue-Id: A093A13D70 X-Migadu-Scanner: mx13.migadu.com X-TUID: Itad4Qr/JcJ5 This patchset marks the completion of the compiler pipeline by introducing the crucial code generation component. With this addition, we achieve a fully operational compiler pipeline capable of compiling to x86_64 Linux assembly. To validate this implementation, follow these steps: $ make $ ./0c examples/main_exit.0 -o main_exit --save-temps $ ./main_exit $ echo $? # should return 0 You might notice that we are missing tests. Let's engage in discussions regarding the design of our compiler tests for future iterations. Your feedback and suggestions on this patchset are highly appreciated. Johnny Richard (3): be: create linux-x86_64 gas asm codegen string_view: add function to create from cstr cli: add compilation -o option with --save-temps docs/manpages/0c.md | 13 ++- src/codegen_linux_x86_64.c | 81 ++++++++++++++++++ src/codegen_linux_x86_64.h | 25 ++++++ src/main.c | 164 ++++++++++++++++++++++++++++++------- src/string_view.c | 6 ++ src/string_view.h | 3 + 6 files changed, 261 insertions(+), 31 deletions(-) create mode 100644 src/codegen_linux_x86_64.c create mode 100644 src/codegen_linux_x86_64.h base-commit: 18ade2ac3dd60c13150828ecb4cfea6ca327bdd8 -- 2.44.0