From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vs1-xe2f.google.com (mail-vs1-xe2f.google.com [IPv6:2607:f8b0:4864:20::e2f]) by sourceware.org (Postfix) with ESMTPS id 953D43858CDA for ; Thu, 18 Aug 2022 20:00:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 953D43858CDA Received: by mail-vs1-xe2f.google.com with SMTP id z185so2573863vsb.4 for ; Thu, 18 Aug 2022 13:00:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=r+7F0KROhdpvvAwtsD2TSljuTZKRnvQSEWNcVCGHt9o=; b=r85LsutQcO+xwvKP/4HKibhIkejDwMDA3yEYNN1UvatPbESRTg7A2P4968bgqDkkrg Htsa/Mly0Y3euAn8SpO5NfC395Tjh2ulnRvz9HxQDsmNqbnOK7QVKXEG3QIFY2gIqu5Q onUu0A3BJ6BFEs4fxumt+lpYtpGsGz6CFIUfygGbSXWl97YP+N6jXDq0qkZHYUqvWoHm ua/ldeAzNB/k5tkAhWHEEL/fohqMRDJLhkPP7SWDkwjeP5VczPfNXqDMAQaoLBGjRcr3 5xuHC5Kk6ecFeuBw6WBxeqHWEt+cBAd8NWq5iX2w6Nx6rAeWIvcema+ykDZffk1Yx3h/ OWvg== X-Gm-Message-State: ACgBeo2PTb6sNnuwBrFPSIEI+m66b1T1SlHoRsTs3RfCOBl8JyrtmHEr bH2szYTLCTZ5mIYvg5dTFfSx0YIVheFXhKS8RTo= X-Google-Smtp-Source: AA6agR46D8NKONWXJJPtl9Ql0A+TUxgz2mleTbUJBmCit7MNxSCO8ZLq0KduuMehShCd6xD221lATpyOflDqeMms6MI= X-Received: by 2002:a67:e3c7:0:b0:388:b85e:4e8b with SMTP id k7-20020a67e3c7000000b00388b85e4e8bmr1699443vsm.43.1660852854718; Thu, 18 Aug 2022 13:00:54 -0700 (PDT) MIME-Version: 1.0 References: <20e955d6-d517-c20a-605a-34082189e9ca@yahoo.co.jp> In-Reply-To: <20e955d6-d517-c20a-605a-34082189e9ca@yahoo.co.jp> From: Max Filippov Date: Thu, 18 Aug 2022 13:01:06 -0700 Message-ID: Subject: Re: [PATCH] xtensa: Improve indirect sibling call handling To: "Takayuki 'January June' Suwa" Cc: GCC Patches Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, FROM_LOCAL_NOVOWEL, HK_RANDOM_ENVFROM, HK_RANDOM_FROM, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=no 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Aug 2022 20:00:57 -0000 On Thu, Aug 18, 2022 at 3:06 AM Takayuki 'January June' Suwa wrote: > > No longer needs the dedicated hard register (A11) for the address of the > call and the split patterns for fixups, due to the introduction of appropriate > register class and constraint. > > (Note: "ISC_REGS" contains a hard register A8 used as a "static chain" > pointer for nested functions, but no problem; Pointer to nested function > actually points to "trampoline", and trampoline itself doesn't receive > "static chain" pointer to its parent's stack frame from the caller.) > > gcc/ChangeLog: > > * config/xtensa/xtensa.h > (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): > Add new register class "ISC_REGS". > * config/xtensa/constraints.md (c): Add new register constraint. > * config/xtensa/xtensa.md (define_constants): Remove "A11_REG". > (sibcall_internal, sibcall_value_internal): > Change to use the new register constraint, and remove two split > patterns for fixups that are no longer needed. > > gcc/testsuite/ChangeLog: > > * gcc.target/xtensa/sibcalls.c: Add a new test function to ensure > that registers for arguments (occupy from A2 to A7) and for indirect > sibcall (should be assigned to A8) neither conflict nor spill out. > --- > gcc/config/xtensa/constraints.md | 5 ++++ > gcc/config/xtensa/xtensa.h | 3 +++ > gcc/config/xtensa/xtensa.md | 29 ++-------------------- > gcc/testsuite/gcc.target/xtensa/sibcalls.c | 5 ++++ > 4 files changed, 15 insertions(+), 27 deletions(-) Regtested for target=xtensa-linux-uclibc, no new regressions. Committed to master. -- Thanks. -- Max