From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2093) id A3CFF3857B8D; Fri, 23 Sep 2022 16:01:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A3CFF3857B8D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1663948882; bh=XQhi2KJbzy8YcnTm051x1w+A9jX7Nic9f4kTumRGiwk=; h=From:To:Subject:Date:From; b=UCYRWJKi4Nd6S3q8V/ZpcIIbZ3tFP0WdXZAHVqLbkPrLBwNVDP7OvUSLBsMak0gyf SIdyshA7YQGW4g6H0X54sLYkZJ7e84kwkS2SXPEdommHPt1eE1B0RKZYcMYdCYhDKX H2EaRgKZmgIrggOk79eXwjnbdDq+K8ThTBVB3YZo= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Kito Cheng To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-2821] RISC-V: make USE_LOAD_ADDRESS_MACRO easier to understand X-Act-Checkin: gcc X-Git-Author: Vineet Gupta X-Git-Refname: refs/heads/master X-Git-Oldrev: b2fe02b476afc1cddb3abcf26ec4b1e072a9401b X-Git-Newrev: 7d4df630c6cfb1909288a2796ec2f8b9ec4e8486 Message-Id: <20220923160122.A3CFF3857B8D@sourceware.org> Date: Fri, 23 Sep 2022 16:01:22 +0000 (GMT) List-Id: https://gcc.gnu.org/g:7d4df630c6cfb1909288a2796ec2f8b9ec4e8486 commit r13-2821-g7d4df630c6cfb1909288a2796ec2f8b9ec4e8486 Author: Vineet Gupta Date: Fri Sep 2 16:08:20 2022 -0700 RISC-V: make USE_LOAD_ADDRESS_MACRO easier to understand The current macro has several && and || making it really hard to understand the first time. Signed-off-by: Vineet Gupta gcc/ChangeLog: * config/riscv/riscv.h (LOCAL_SYM_P): New. (USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P. Diff: --- gcc/config/riscv/riscv.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h index eb1284e56d6..363113c6511 100644 --- a/gcc/config/riscv/riscv.h +++ b/gcc/config/riscv/riscv.h @@ -749,18 +749,19 @@ typedef struct { #define CASE_VECTOR_MODE SImode #define CASE_VECTOR_PC_RELATIVE (riscv_cmodel != CM_MEDLOW) +#define LOCAL_SYM_P(sym) \ + ((SYMBOL_REF_P (sym) && SYMBOL_REF_LOCAL_P (sym)) \ + || ((GET_CODE (sym) == CONST) \ + && SYMBOL_REF_P (XEXP (XEXP (sym, 0),0)) \ + && SYMBOL_REF_LOCAL_P (XEXP (XEXP (sym, 0),0)))) + /* The load-address macro is used for PC-relative addressing of symbols that bind locally. Don't use it for symbols that should be addressed via the GOT. Also, avoid it for CM_MEDLOW, where LUI addressing currently results in more opportunities for linker relaxation. */ #define USE_LOAD_ADDRESS_MACRO(sym) \ (!TARGET_EXPLICIT_RELOCS && \ - ((flag_pic \ - && ((SYMBOL_REF_P (sym) && SYMBOL_REF_LOCAL_P (sym)) \ - || ((GET_CODE (sym) == CONST) \ - && SYMBOL_REF_P (XEXP (XEXP (sym, 0),0)) \ - && SYMBOL_REF_LOCAL_P (XEXP (XEXP (sym, 0),0))))) \ - || riscv_cmodel == CM_MEDANY)) + ((flag_pic && LOCAL_SYM_P (sym)) || riscv_cmodel == CM_MEDANY)) /* Define this as 1 if `char' should by default be signed; else as 0. */ #define DEFAULT_SIGNED_CHAR 0