From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1923) id B4A19384F491; Fri, 18 Nov 2022 11:35:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B4A19384F491 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668771359; bh=6LjI4SgsZ7cr/+Pd25cM9Pu7tteqXsTA1h3yfEfGcuk=; h=From:To:Subject:Date:From; b=b1Oi6W4f3lRaGN27/Jg9UeIEvCsmEwVbeNgvlDuMHOiaWxCrCfvzb+WMyIRzcDIw9 rV1BMetmLAPpRLbb1Fs2HIaCQMEcIvOYAldW2dw3c7rH3X9SRMB1hPsgct4T6bl0DC 0U+j3LtugAczAAVfEMQQKULlkym78f3baQP0+JXA= 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: 8182811ec210681212ca1718cabe1cd36ba457c6 X-Git-Newrev: 7bd124d7d1d8ce3c35680f5aaf6502c57365861a Message-Id: <20221118113559.B4A19384F491@sourceware.org> Date: Fri, 18 Nov 2022 11:35:59 +0000 (GMT) List-Id: https://gcc.gnu.org/g:7bd124d7d1d8ce3c35680f5aaf6502c57365861a commit 7bd124d7d1d8ce3c35680f5aaf6502c57365861a 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. */