From patchwork Wed Feb 21 18:32:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Evgeny Karpov X-Patchwork-Id: 86184 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A97BA3858C52 for ; Wed, 21 Feb 2024 18:33:14 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on2119.outbound.protection.outlook.com [40.107.13.119]) by sourceware.org (Postfix) with ESMTPS id 4642A3858416 for ; Wed, 21 Feb 2024 18:32:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4642A3858416 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=microsoft.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=microsoft.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4642A3858416 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.13.119 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708540365; cv=pass; b=WEK4YpE4sgZIK/FlFKXE0miI37JoVgw3+JExj1DaKheVikBT/iWYNrnPxLwjmR7NViw3Kboi2rspBKN5wpN6LgHpBXK5BbQOq/Ec0mH24VQe3Kd8tmsgmXR5lCsdOYvZJv8S9S+CBr0VZHhxy/SFu6y+ucJZL/Soj6kDmXqG4pA= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708540365; c=relaxed/simple; bh=bPKStOBJ/cRIdLdb61r0IsSZ1004Z4BCZ9vuJmbg4ao=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Uobu6TUU/4KnAzYWo5DD7KoL3MpRtoFR5K/Bvi7UtZ8TIXa9bqvqcb4iUFNaw/cgNKaqKpThNeOPkDpN5OqccmkOOq1CL/7VWvhg3g3YxRFng1o1lwUbjwO1uklozEEVsk71tqDUGD2OH66Yn4NRHHp623k6+L/xyhRunVLA6v8= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ewaOKYjFoFvhA69N97I+0ibOGyeF+qA7JKeEVoKbnNWRwRILEkKi/wtRvHwQOo8KQI8cHtQNNWeh6K6bwGxLJoH7RPLe7Cf0Wo7i5Yf3fhw6w3JYkSn6oPyG01oFr8Z2N0PWBGLl+kKkzvVZEKPo7UV6oznDhHF7iyOG+ONbziOMC3c/4Cw0qhLvGRFGQ6HSqf9Oi1ZIjsH3slYc5Nq7zXRYMDYTu5GImvD2/8ggaoYTfiE1WFoMVide63MZoEXgLaytK9B9FMoWP+Bekla6Cdg5Bzhqrt+xFgfj+Er18uxGmiOUpVWrVXZZKU2kzuum3vNGF4pdGr6U74pNTWyjDA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gxcDOX4DukXFtQeTeStEb0kDsPeywceNBjSgFdWM/XM=; b=DyvIG6JeVQJT+sf0wZmoRl3TEwIzJlyh8KkRCgz56djnPkNQ1MljTS3j/2vpQRHsfnl3C3IWv1HyXFdY61U1nRHq9elYbeXW61AWLrDm79W0xtjdrQ9WmiIAwXAQiotqiqTdOzNjH/21f4Fh+gC+dMbstNHM02SAm5CYRkJznbP9kDM3k2ePjVKAD8p5y787Gbj1sTfAIu/XOUtmITf372S8fvUJWRGPtc9X4fwPybYQFOaKetiw8oxSgTDdbCbMx/TbYQNhZQRtpYXhZmsSL5qYfJq+O/0DJEm6iCH0jpwr9iNqXoTKGcB60WEPhHMokHHWKbjYxQAlMlq6HbNxTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gxcDOX4DukXFtQeTeStEb0kDsPeywceNBjSgFdWM/XM=; b=evSMaIcx6roXa6zQICTe3ztY/2SxgjT3JNc3Rri9IPsM2B4zgLrtBhKQHhyPdAHJPJxtQ1a8qlESN/BpfDLb/My0DkT9pkpOl1ih79w51hjnm9g0BNlkPS/mxNi2z2CJUOCXWeT+/tzXDUvTImVxBSh89qh89wp7wQWZQ3BIY3g= Received: from VI1PR83MB0431.EURPRD83.prod.outlook.com (2603:10a6:800:17f::6) by DBAPR83MB0407.EURPRD83.prod.outlook.com (2603:10a6:10:17c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.8; Wed, 21 Feb 2024 18:32:27 +0000 Received: from VI1PR83MB0431.EURPRD83.prod.outlook.com ([fe80::7279:eea0:8540:a0f5]) by VI1PR83MB0431.EURPRD83.prod.outlook.com ([fe80::7279:eea0:8540:a0f5%7]) with mapi id 15.20.7339.007; Wed, 21 Feb 2024 18:32:22 +0000 From: Evgeny Karpov To: Evgeny Karpov , "gcc-patches@gcc.gnu.org" CC: "richard.sandiford@arm.com" , "10walls@gmail.com" <10walls@gmail.com>, Maxim Kuvyrkov , "mark@harmstone.com" , Zac Walker , Ron Riddle , Radek Barton Subject: [PATCH v1 04/13] aarch64: Add aarch64-w64-mingw32 COFF Thread-Topic: [PATCH v1 04/13] aarch64: Add aarch64-w64-mingw32 COFF Thread-Index: AQHaZPRPILkz9/YZtk+DiEceJBqK3g== Date: Wed, 21 Feb 2024 18:32:22 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=57576bd1-751e-4189-ac11-c600ca5b612b; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2024-02-21T17:14:30Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI1PR83MB0431:EE_|DBAPR83MB0407:EE_ x-ms-office365-filtering-correlation-id: 55060e99-749d-45e3-b06c-08dc330b71a8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pf5SX1LY6DyE2PnzaS3aaeaTeFkgCSb47TmT4BYcT+LNS0SPJaTH2pNXswAxVX6U098Hto+M5mDL6qaE96WUwDw+qy7P3O6HfwPr6c+9qUSqKnsHWFtGllwY5V5OMG3JxWVuf+j70s2cA7skkzW0XPuj3HtuZh245PC7UKsWOiFqwgd6q37fLR6Vz5W8tew0Bztj0poRUrVwULeEZTxFtuBchNBqqj9X1hSHZpdpB/KyXGzv553Auo9vuH0PDk8Db0SkSNfLUIQfMHleNc3unFL3I3NRr/Z8K2wo/Rnvchf2vPTJu91Hfd65Su5ygUmOL9l54riu2Ac7rJyaFJueX2i+w53ve4oPaU5i/CcT3AM= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR83MB0431.EURPRD83.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(38070700009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: yn+gwGOe9Io+HDb2YdVADVaivoqcKPLA0r2joT8S/DR1axrEOPyb4cw95bZCCCKRzVdsjgCkYwGE2lsYGxBCdEuZl3bP5X7/aK3idYWOAY4PJuCbyqR40gAFnt7F3cxsoKuKcVJMZ4NsyIB0y9KEwHHmCIpqQ/2OgY11X0k5jRKpH+4CmxBW7zThl1ZagDpyBJwS9jSvTwQV6khi4NzVPCIZljYiig0R5a282lYkXx0R5i0KUZNWBkWvtQuQ4CuoBsteJXvW1GGTUNx1oGKHMFDU32uXkcnildEXpLpGvovDCKKHlo3DvMEKjOqomdxFS+VWgRWsT5Bv2rxGCPsfLJI5nbNws1rcO4GppEKXZOxto29Zu4/BjMmtEfqonSwJjZbWkVpMLsgQXEVFz/IbyZ3Ke+ynwbMQlBu+RO1Tx8NWZuKivFTddKG+DgsH5bWbXxIeXnzUDbibbRKeEwyWWZ6I+Ppt8D/f1knVPWVLih6O+OZRFZrGV3icayX7uNWiSuwnbx4NyFXVKSQLKo0KPbK3Lx9upqbDfGJD7fqZVdOtuGM2mhPXnToSX2nufXhqeTsXI2Y29D2ge3/3f7x4q8+8TrzE4Q4hThiu+qLH2OhA7Q2WX1drbpHAbIDJv6EHfYxRvB7Dx5XFgjWpjMH9lqX0zu7f6EWDWuOIqudq2gEPmUIYN7WxR84EYnWarjnFH8EuFWPMpqXbQZy75rM3ZCgvv6HtbAjMSwNHH4rx2nMX52YWbFYJDI88JcIFfuh6EXvxmISTPDwpyzLMgeRx3Jz2m5pgBLIQSA+RSEBQLkQAD/fliMmzJlg+WfaBeUPa7fpLpiakwZHLQZQHP9VqnwmA09nxp+N6Gmk7f6kCCm2SH/V7w8NgOhIqzhEopBeI6n9oZnOOWD+shweBKsI/N9Pp8jXtcq8pb1PC3kfyo8r/0c7ErxttMp+nLSoXOvnoN5PeSTUVwvFnx5jk33Por2S/BqWouBwljwpPgcoXJHbYfDD5c0gIb8QbbFJziW7NaSYkIHaSPuLf0lNe2khdUXj+N3TthvJCXF+XO2xLQ9/nhJjiXp9rSHAD1Gh/smiVKimGWP+JkNRgXCvPsKvchDlLrSVRHJK9hvN2sWJaz0x+bdybNDdNNHNNEURffH3OiExekxmpBx9twPA0efiufQ6eH91Kk0Jjt6FVhxksZ5qa9QWp87d3pAsQCJAuBuYwt+4/anyQ5+IpPzgPg2MJ8sIbq4ZMq54J+mg6lod6aEUhjr5yTvU+TClN5dStGcUF0aC+dW3BPTJWx/pDgHS9TikiXEU9kVxiBsXtmjCxmhM+mp6FwMt7OmFQ7bcdLPX/3Nc8pk31ffTcXO8h7zPP/n9y1RaZuvS80gFccTkABpmDW46Wj4ESz0tUj8gbsiRSRBASOTd+a2TujAmxTIjSITpzkwueZnRbVaPRKVpSJEoV1j7d5DWumxI7Fm6hKZ9H9fPogNz/b4gIoe4xA8DP58ULugvbbgcWZFIJ0ZMclD8XInAeKtLfWmYQnrXU3j3YXjEzXWHMg4wcJjKvlScD4TMMLnEa2NalGJtAg+ov48/DADX9E4PP4xI1sD4gZ2YF MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR83MB0431.EURPRD83.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 55060e99-749d-45e3-b06c-08dc330b71a8 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2024 18:32:22.4284 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UtCZZQJZ7i7Ix8KsN9AjUsfwpGXfVemWMCBC2pp81E8hiv+YaPtA/WjcXvnRA4D1aMukgf7DO5ODYYXhKzjNFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR83MB0407 X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org From 55fd2a63afa9abb3543d714b6f5925efd2682e08 Mon Sep 17 00:00:00 2001 From: Zac Walker Date: Wed, 21 Feb 2024 12:20:46 +0100 Subject: [PATCH v1 04/13] aarch64: Add aarch64-w64-mingw32 COFF Define ASM specific for COFF format on AArch64. gcc/ChangeLog: * config.gcc: Add COFF format support definitions. * config/aarch64/aarch64-coff.h: New file. --- gcc/config.gcc | 1 + gcc/config/aarch64/aarch64-coff.h | 92 +++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 gcc/config/aarch64/aarch64-coff.h diff --git a/gcc/config.gcc b/gcc/config.gcc index 2a9e4c44f50..34c7be72fb6 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1264,6 +1264,7 @@ aarch64*-*-linux*) TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` ;; aarch64*-*-mingw*) + tm_file="${tm_file} aarch64/aarch64-coff.h" tmake_file="${tmake_file} aarch64/t-aarch64" case ${enable_threads} in "" | yes | win32) diff --git a/gcc/config/aarch64/aarch64-coff.h b/gcc/config/aarch64/aarch64-coff.h new file mode 100644 index 00000000000..d91bc36b67b --- /dev/null +++ b/gcc/config/aarch64/aarch64-coff.h @@ -0,0 +1,92 @@ +/* Machine description for AArch64 architecture. + Copyright (C) 2024 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . */ + +#ifndef GCC_AARCH64_COFF_H +#define GCC_AARCH64_COFF_H + +#include "aarch64.h" + +#ifndef LOCAL_LABEL_PREFIX +# define LOCAL_LABEL_PREFIX "" +#endif + +/* Using long long breaks -ansi and -std=c90, so these will need to be + made conditional for an LLP64 ABI. */ +#undef SIZE_TYPE +#define SIZE_TYPE "long long unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "long long int" + +#define TARGET_64BIT 1 +#undef LONG_TYPE_SIZE +#define LONG_TYPE_SIZE 32 + +#ifndef ASM_GENERATE_INTERNAL_LABEL +# define ASM_GENERATE_INTERNAL_LABEL(STRING, PREFIX, NUM) \ + sprintf (STRING, "*%s%s%u", LOCAL_LABEL_PREFIX, PREFIX, (unsigned int)(NUM)) +#endif + +#define ASM_OUTPUT_ALIGN(STREAM, POWER) \ + fprintf (STREAM, "\t.align\t%d\n", (int)POWER) + +/* Output a common block. */ +#ifndef ASM_OUTPUT_COMMON +# define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED) \ + { \ + fprintf (STREAM, "\t.comm\t"); \ + assemble_name (STREAM, NAME); \ + asm_fprintf (STREAM, ", %d, %d\n", \ + (int)(ROUNDED), (int)(SIZE)); \ + } +#endif + +/* Output a local common block. /bin/as can't do this, so hack a + `.space' into the bss segment. Note that this is *bad* practice, + which is guaranteed NOT to work since it doesn't define STATIC + COMMON space but merely STATIC BSS space. */ +#ifndef ASM_OUTPUT_ALIGNED_LOCAL +# define ASM_OUTPUT_ALIGNED_LOCAL(STREAM, NAME, SIZE, ALIGN) \ + { \ + switch_to_section (bss_section); \ + ASM_OUTPUT_ALIGN (STREAM, floor_log2 (ALIGN / BITS_PER_UNIT)); \ + ASM_OUTPUT_LABEL (STREAM, NAME); \ + fprintf (STREAM, "\t.space\t%d\n", (int)(SIZE)); \ + } +#endif + +#define ASM_OUTPUT_SKIP(STREAM, NBYTES) \ + fprintf (STREAM, "\t.space\t%d // skip\n", (int) (NBYTES)) + +#define ASM_OUTPUT_TYPE_DIRECTIVE(STREAM, NAME, TYPE) +#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) + +#define TEXT_SECTION_ASM_OP "\t.text" +#define DATA_SECTION_ASM_OP "\t.data" +#define BSS_SECTION_ASM_OP "\t.bss" + +#define CTORS_SECTION_ASM_OP "\t.section\t.ctors, \"aw\"" +#define DTORS_SECTION_ASM_OP "\t.section\t.dtors, \"aw\"" + +#define GLOBAL_ASM_OP "\t.global\t" + +#undef SUPPORTS_INIT_PRIORITY +#define SUPPORTS_INIT_PRIORITY 0 + +#endif