From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1923) id 629BE385B19E; Thu, 1 Dec 2022 13:23:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 629BE385B19E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1669901036; bh=hthPgH3oqAKEVXDbkVJl/Nhgq/xZrTs8Ks6Dy1/RDuk=; h=From:To:Subject:Date:From; b=uVWFRLXCkGUgJmp5tf7NtELkpf0kaUXtlD4ZQWlcivRp/NQf2BUIlwiOV2yNMh+7L Xsl6s2xeRy46hlPbIhsEv4bBfGosMwQhZRZI/EmtMAVBE5woZSIkrsW5rnkfflmBbh nwlr25/9INNKvRz3tKZXqlTTMsb2PG1Xo6X54Xbw= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Philipp Tomsich To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/vrull/heads/for-upstream)] RISC-V: Use .p2align for code-alignment X-Act-Checkin: gcc X-Git-Author: Philipp Tomsich X-Git-Refname: refs/vendors/vrull/heads/for-upstream X-Git-Oldrev: 02055c4e91c2a858b31d2684fd78e3e0d25f1736 X-Git-Newrev: c16304af81ddb120cb04cbb3abce9493116422f7 Message-Id: <20221201132356.629BE385B19E@sourceware.org> Date: Thu, 1 Dec 2022 13:23:56 +0000 (GMT) List-Id: https://gcc.gnu.org/g:c16304af81ddb120cb04cbb3abce9493116422f7 commit c16304af81ddb120cb04cbb3abce9493116422f7 Author: Philipp Tomsich Date: Wed Mar 16 22:28:11 2022 +0100 RISC-V: Use .p2align for code-alignment RISC-V's .p2align (currently) ignores the max-skip argument. As we have experimental patches underway to address this in a backwards-compatible manner, let's prepare GCC for the day when binutils gets updated. gcc/ChangeLog: * config/riscv/riscv.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Implement. Series-to: gcc-patches@gcc.gnu.org Series-cc: Palmer Dabbelt Series-cc: Vineet Gupta Series-cc: Christoph Muellner Series-cc: Kito Cheng Series-cc: Jeff Law Diff: --- gcc/config/riscv/riscv.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h index b05c3c1545c..d3034b7967e 100644 --- a/gcc/config/riscv/riscv.h +++ b/gcc/config/riscv/riscv.h @@ -946,6 +946,24 @@ typedef struct { fprintf (STREAM, "\t.word\t%sL%d-%sL%d\n", \ LOCAL_LABEL_PREFIX, VALUE, LOCAL_LABEL_PREFIX, REL) +#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN +/* Support for -falign-* switches. Use .p2align to ensure that code + sections are padded with NOP instructions, rather than zeros. */ +#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP) \ + do \ + { \ + if ((LOG) != 0) \ + { \ + if ((MAX_SKIP) == 0) \ + fprintf ((FILE), "\t.p2align %d\n", (int) (LOG)); \ + else \ + fprintf ((FILE), "\t.p2align %d,,%d\n", \ + (int) (LOG), (int) (MAX_SKIP)); \ + } \ + } while (0) + +#endif /* HAVE_GAS_MAX_SKIP_P2ALIGN */ + /* This is how to output an assembler line that says to advance the location counter to a multiple of 2**LOG bytes. */