From patchwork Wed Feb 21 18:36:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Evgeny Karpov X-Patchwork-Id: 1902374 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=microsoft.com header.i=@microsoft.com header.a=rsa-sha256 header.s=selector2 header.b=VDg6sRfp; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Tg4mw5xr3z20Qg for ; Thu, 22 Feb 2024 05:39:12 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id BD8DF3858402 for ; Wed, 21 Feb 2024 18:39:10 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2124.outbound.protection.outlook.com [40.107.105.124]) by sourceware.org (Postfix) with ESMTPS id BD045385842A for ; Wed, 21 Feb 2024 18:37:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BD045385842A 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 BD045385842A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.105.124 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708540626; cv=pass; b=Xh5iD2kHJSbdeM5zfWgB95xXdL35KUMQ4VCFFldGQeOQZca8VodLhkHOtawHq0NjKh4AF/+5QKRR5K9AlUzKD/Q/NFVMnxBoDAx/c1uGm+vLItiaOndtLO7k62tNSWpjuOT9ul4YCMEjO2iASWHJUaXxxNpsqMOBWmZ/1hJrLCU= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1708540626; c=relaxed/simple; bh=OOcjiZX9rjUIG6K+MlxJ2JICuNPhPS3ei8HLGlHFr+g=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=fDKlNUgEv7FSYQog4SehHlPpaxdKWXxyqNZFEGyiZUPscvUzrZee0S6DUmhqR4fc0JDrusODLIV+iSegUx6CJ1TymLLi8Ir9mSUGGj+dlUxwWVRV3vqV0holeTclsXmBOSD4s2Ab/XnL5ClJflbX1goEIk8iNvESX2WoHk4g1o4= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=StOW2flep8Jf4OM8KslcBwo6/CPKAkx4DsHk1xt40KdC5vYDopmCnUMQhy6+x8g5iySJTRfOPNN7cYFFdZE30hSgHaGe/eJ06pG+irLgQ8lLa9VAuQZ17MVgunlMMEMg+1bUg+6qoesy3N1XdSLt4+08p1dx8lJy13cnvK2LCWwimnoMvg+ccdz1pLpDtGQvqlOvueY/rsL0EaTj6GP4Hs9JrDP91YkOMqDa1b5qGzYwsdVmkJcqeVGXd59RbtCP0cFSfUea3ejI44xft7Ikqvjcr4Slx7mSiH491xpWx5qi9hEvD3TIK9ko/vIUsBS5xkwn7eCJleMWmXD8aWIUiQ== 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=qTmwWhFo2qZ+L4D/jRVAdOTGtZYBsgppaI06V8pucUA=; b=MMva1q95DYg6AVsPI1bVlB4Q1xBNf1uwKBHIcp8+m6xTrruyxIgp6HeYuNMPaxcCmeBRmK8MnED7njA1nvVfOVy/9RrFEez0KJdBtk2uo7jGF3gfsQ+aEiyDBv6fuNCOh/csIoxjqln6n8pVhgwmVjaOIC2aL80/1RxSJNgDeocGavBJTQEImN6XRgCOY9kQxF4u84Yl5bULR5yUmwcXA9ZNOjOAXtEoyIS7JteAhi3bxUKDKG0q8H1KWFhKdYU/HAOKXM+EIbHXC+NisgVkPoJ959HTAAxpW9B0qNtCcgdpYwoNMADc95pJLVBKcrkg2BMbFoE6+ZCv1y/etqGuGg== 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=qTmwWhFo2qZ+L4D/jRVAdOTGtZYBsgppaI06V8pucUA=; b=VDg6sRfpBW8F/4PntF7LRfOYPo6yxlH+Tg8K8j4imkZqfa/5sf8FsE1feGfdbMJldYV6NLGpHX9H+7vfRWf3nrHjMuMYmLx7jxJd+Ey1fh1R01gCGq/GhFWkjOgLfP6Yk02x0TpbuBDqRxJqPE4i7LDobgJr3vAx0ASi7zzSNEk= Received: from VI1PR83MB0431.EURPRD83.prod.outlook.com (2603:10a6:800:17f::6) by DBBPR83MB0614.EURPRD83.prod.outlook.com (2603:10a6:10:533::14) 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:37:01 +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:36:59 +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 08/13] aarch64: Add Cygwin and MinGW environments for AArch64 Thread-Topic: [PATCH v1 08/13] aarch64: Add Cygwin and MinGW environments for AArch64 Thread-Index: AQHaZPT03jL5rW8YGUKt2xsJE5pL/Q== Date: Wed, 21 Feb 2024 18:36:59 +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_|DBBPR83MB0614:EE_ x-ms-office365-filtering-correlation-id: c6b2cbbc-68ed-411f-76f1-08dc330c16b6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MIRghKZXjzcF3kuoUpYh9p9v6RcbHArwTLMRUTfedO6GT1I85ldZ2kNfvnACGhaCcX+ZkcIN2xbZO9xHBv3LTZHOuTXQigTuahNocZfJiSPljODCsiK5csJLyUvKymsB9vcC7QUSF12POhjQb/XKBw1qSos97FpBWn0+ThDyN4abtVQriBHd8qv7PjZABvjVRgIsexBszPZNMyjiHZyidlr91NRsEQ1D6B/EuLYnMUbNpMIYwaBclN7GscLuc/WtGmOGaO2LIIse9mkF1fJSy0CpfoZuYHVEZNX0mSsRY+4RJC0gKV3qnDaJpcxoToRIjqj8gQzemFxh6zdwcYOCNOCM22SfT7zPIfieInnwqdQ= 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: 27TaaCuBORDt2pMKCyKLpjforAhfTRK0g20qSnStsb0Zsil6q/3SfWy+21IwHB6hGd0QVm1vwoDV1qMJ6GAYt70DrELIEomxuILmY1g4vLQh1Upy2Y1KU2Rcj42wlD9LNOFly1jKM0QVjwrKQQxRUz0IS7QCrioXEhCMigeGcU1jtyULWdtEYVixDt6L1CWN+P15R/VSGApUKAthaMoFUgHmX86eUZsqq7sUWYnl/5VkgydMLQR9QRa2x1VmTQ0hda2zPogohDG26Iyu4fKU8PplNf0twc7+Im5kR0lsMmToKERPoN3/z9Hs7dQyYXJGJnp160D4YRog74OhGV2tA8mGZzTC3BJa8pYyooM4wEuE/0D8Ew/m/t5eVsYPt20kzOy0TFD7eUPyQEwbwX1sX71xHzfgqm0//WZ5JqhDgPjGkFGddjRGN+NjONnLjX/MyNiY6hPqRsbuf3X1Qum28oYTAmtDV0b/o4I/JkaKd03BWq/rb4oTrYgDIVD3tNNLDHQHKw5pWIE0RYid+H+OvBNnmDRvovRZRZ4AA360MICbKKfz2o0S0yixltIr2v0xfojbhQBh08fq2/nmvamRO2QZLhw4/079MTRithyuc9oCCuzWBy9KGwXKfGhUjuTEXBu/4wA0HkFHVFEPSCrvv+kYpMj9V2Gw+Wd8nA24YqCrJ1kXlHgrlQh84WOMft0a3zL9XOFJjGUsQDZzmCVpRgdAVIKUjUJr8OCrv2I+ywVP6Wnu3fwHx2tZAOIHvv69BeE3c65eWAo/BtKQ5Hd5zCLf1tlwuA3/uYzxTn/nRYuBJKKAQ3TvJiheEPv5A2JEJU/4DIBhSxpGQoPSAR2/HoBeNuezlZF4/0aY3Z3ujk+J5QU+cEbQ3onGFMD0JBTLL41tWqmtKjvJg2BkLg1vaTXT8M5AqeW+mekbWYAHLVUKB4iadTGZMN8R9ogB8iucRf7CeD59YShqslBeGkETcdIiLp+6OAKuWEiGxS0Z4F+qaTNgZCqAwVG6KpsdhtKDhTlPx3+FSERJGdUn6FFcAVLHPRRdG48+KNm3+QLKYUJDoIKLkC93Fj73vIM0y3Oy++XZnu4G+tjZGs0hRjXNunfvnyuK2YgUZ6aCwFceXMFS9ITquLJTIbrEgOBUhDFyaoGc2OkNkzMkuharZ9g7k3hv387N6BnMp8dolCTCsd7MnlCUSMDBLsZ8+NydqnP0UcxH0VyJ77CFSJ1Sl8QcTnnR6Q//zAkMgMSC6iMmbtHasR/UWQj4aB07J3hyfrE52IiArkRdEkwi1Lg9TI7ds2NkpWdmNzQWGTNkQ0VFO5ocrTI+BNzcVkwqgPX7qd81w723BLJ4a7t5dTIivf/LDsDMUoNilCKVPu13lhMAjeOqkKBNq/EXEnBWseuca0NY7b8kZtK8k9Fkx+ASSd6hk7KZPoL+HNFlfWWalezFkJSYH2eYYAkpSB2NvtRZVCdTVueccqRejyO0kx/WlQCDwOJqXUvbkIdY+ydkiFai5d+WWWWp5pMIg7T0p1ByDR4wsRxgAQAcwux0PQ3y3DqNJPKsXu5sWdDd4H3bNA0I91UxmMnPskh6dZrOFnwF7uhM 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: c6b2cbbc-68ed-411f-76f1-08dc330c16b6 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Feb 2024 18:36:59.2846 (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: MNs+fUmfmnx1b50bPGCAA3ovNNu9B4hG6FMah3i9v/6V/RbD9FqKMfOS9DS1hsULMK8qunpfutYi7DQJxgZNxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR83MB0614 X-Spam-Status: No, score=-10.5 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_NUMSUBJECT, KAM_SHORT, KAM_STOCKGEN, 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+incoming=patchwork.ozlabs.org@gcc.gnu.org From 1ea6efa6f88d131884ecef21c4b5d2ecbab14ea7 Mon Sep 17 00:00:00 2001 From: Zac Walker Date: Tue, 20 Feb 2024 18:06:36 +0100 Subject: [PATCH v1 08/13] aarch64: Add Cygwin and MinGW environments for AArch64 Define Cygwin and MinGW environment such as types, SEH definitions, shared libraries, etc. gcc/ChangeLog: * config.gcc: Add Cygwin and MinGW difinitions. * config/aarch64/aarch64-protos.h (mingw_pe_maybe_record_exported_symbol): Declare functions which are used in Cygwin and MinGW environment. (mingw_pe_section_type_flags): Likewise. (mingw_pe_unique_section): Likewise. (mingw_pe_encode_section_info): Likewise. * config/aarch64/cygming.h: New file. --- gcc/config.gcc | 1 + gcc/config/aarch64/aarch64-protos.h | 5 + gcc/config/aarch64/cygming.h | 178 ++++++++++++++++++++++++++++ 3 files changed, 184 insertions(+) create mode 100644 gcc/config/aarch64/cygming.h diff --git a/gcc/config.gcc b/gcc/config.gcc index 498ee702607..96e3508eb30 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1265,6 +1265,7 @@ aarch64*-*-linux*) ;; aarch64*-*-mingw*) tm_file="${tm_file} aarch64/aarch64-coff.h" + tm_file="${tm_file} aarch64/cygming.h" tm_file="${tm_file} mingw/mingw32.h" tm_file="${tm_file} mingw/mingw-stdint.h" tmake_file="${tmake_file} aarch64/t-aarch64" diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index a0b142e0b94..6d85452b0f6 100644 --- a/gcc/config/aarch64/aarch64-protos.h +++ b/gcc/config/aarch64/aarch64-protos.h @@ -1109,6 +1109,11 @@ extern void aarch64_output_patchable_area (unsigned int, bool); extern void aarch64_adjust_reg_alloc_order (); +extern void mingw_pe_maybe_record_exported_symbol (tree, const char *, int); +extern unsigned int mingw_pe_section_type_flags (tree, const char *, int); +extern void mingw_pe_unique_section (tree, int); +extern void mingw_pe_encode_section_info (tree, rtx, int); + bool aarch64_optimize_mode_switching (aarch64_mode_entity); void aarch64_restore_za (rtx); diff --git a/gcc/config/aarch64/cygming.h b/gcc/config/aarch64/cygming.h new file mode 100644 index 00000000000..cf47184eb66 --- /dev/null +++ b/gcc/config/aarch64/cygming.h @@ -0,0 +1,178 @@ +/* Operating system specific defines to be used when targeting GCC for + hosting on Windows32, using a Unix style C library and tools. + Copyright (C) 1995-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_CYGMING_H +#define GCC_AARCH64_CYGMING_H + +#undef PREFERRED_DEBUGGING_TYPE +#define PREFERRED_DEBUGGING_TYPE DINFO_TYPE_NONE + +#define FASTCALL_PREFIX '@' + +#define print_reg(rtx, code, file) + +#define SYMBOL_FLAG_DLLIMPORT 0 +#define SYMBOL_FLAG_DLLEXPORT 0 + +#define SYMBOL_REF_DLLEXPORT_P(X) \ + ((SYMBOL_REF_FLAGS (X) & SYMBOL_FLAG_DLLEXPORT) != 0) + +#undef TARGET_SEH +#define TARGET_SEH 0 + +#define SSE_REGNO_P(N) 0 +#define GENERAL_REGNO_P(N) 0 +#define SEH_MAX_FRAME_SIZE 0 + +#undef DEFAULT_ABI +#define DEFAULT_ABI MS_ABI + +#undef TARGET_PECOFF +#define TARGET_PECOFF 1 + +#include +#ifdef __MINGW32__ +#include +#endif + +extern void mingw_pe_asm_named_section (const char *, unsigned int, tree); +extern void mingw_pe_declare_function_type (FILE *file, const char *name, + int pub); + +#define TARGET_ASM_NAMED_SECTION mingw_pe_asm_named_section + +/* Select attributes for named sections. */ +#define TARGET_SECTION_TYPE_FLAGS mingw_pe_section_type_flags + +#define TARGET_ASM_UNIQUE_SECTION mingw_pe_unique_section +#define TARGET_ENCODE_SECTION_INFO mingw_pe_encode_section_info + +/* Declare the type properly for any external libcall. */ +#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \ + mingw_pe_declare_function_type (FILE, XSTR (FUN, 0), 1) + +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__MSVCRT__"); \ + builtin_define ("__MINGW32__"); \ + builtin_define ("_WIN32"); \ + builtin_define_std ("WIN32"); \ + builtin_define_std ("WINNT"); \ + builtin_define_with_int_value ("_INTEGRAL_MAX_BITS", \ + TYPE_PRECISION (intmax_type_node)); \ + builtin_define ("__MINGW64__"); \ + builtin_define_std ("WIN64"); \ + builtin_define ("_WIN64"); \ + builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ + builtin_define ("__fastcall=__attribute__((__fastcall__))"); \ + builtin_define ("__thiscall=__attribute__((__thiscall__))"); \ + builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ + } \ + while (0) + +/* Windows64 continues to use a 32-bit long type. */ +#undef LONG_TYPE_SIZE +#define LONG_TYPE_SIZE 32 + +#undef DEFAULT_SIGNED_CHAR +#define DEFAULT_SIGNED_CHAR 1 + +#undef SIZE_TYPE +#undef PTRDIFF_TYPE +#define SIZE_TYPE "long long unsigned int" +#define PTRDIFF_TYPE "long long int" + +#undef WCHAR_TYPE_SIZE +#undef WCHAR_TYPE +#define WCHAR_TYPE_SIZE 16 +#define WCHAR_TYPE "short unsigned int" + +#define drectve_section() \ + (fprintf (asm_out_file, "\t.section\t.drectve\n"), \ + in_section = NULL) + + +/* Enable alias attribute support. */ +#ifndef SET_ASM_OP +#define SET_ASM_OP "\t.set\t" +#endif + +/* GNU as supports weak symbols on PECOFF. */ +#ifdef HAVE_GAS_WEAK +#define ASM_WEAKEN_LABEL(FILE, NAME) \ + do \ + { \ + fputs ("\t.weak\t", (FILE)); \ + assemble_name ((FILE), (NAME)); \ + fputc ('\n', (FILE)); \ + } \ + while (0) + +#endif /* HAVE_GAS_WEAK. */ + +/* Get tree.cc to declare a target-specific specialization of + merge_decl_attributes. */ +#define TARGET_DLLIMPORT_DECL_ATTRIBUTES 1 + +#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL) \ + do { \ + switch (GET_MODE (BODY)) \ + { \ + case E_QImode: \ + asm_fprintf (STREAM, "\t.byte\t(%LL%d - %LLrtx%d) / 4\n", \ + VALUE, REL); \ + break; \ + case E_HImode: \ + asm_fprintf (STREAM, "\t.2byte\t(%LL%d - %LLrtx%d) / 4\n", \ + VALUE, REL); \ + break; \ + case E_SImode: \ + case E_DImode: /* See comment in aarch64_output_casesi. */ \ + asm_fprintf (STREAM, "\t.word\t(%LL%d - %LLrtx%d) / 4\n", \ + VALUE, REL); \ + break; \ + default: \ + gcc_unreachable (); \ + } \ + } while (0) + +#define READONLY_DATA_SECTION_ASM_OP "\t.section\t.rdata,\"dr\"" + +#undef SUBTARGET_OVERRIDE_OPTIONS +#define SUBTARGET_OVERRIDE_OPTIONS \ + do { \ + flag_stack_check = STATIC_BUILTIN_STACK_CHECK; \ + } while (0) + + +#define SUPPORTS_ONE_ONLY 1 + +/* Define this to be nonzero if static stack checking is supported. */ +#define STACK_CHECK_STATIC_BUILTIN 1 + +#ifndef HAVE_GAS_ALIGNED_COMM +# define HAVE_GAS_ALIGNED_COMM 0 +#endif + +#undef MAX_OFILE_ALIGNMENT +#define MAX_OFILE_ALIGNMENT (8192 * 8) + +#endif