From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb1-xb2e.google.com (mail-yb1-xb2e.google.com [IPv6:2607:f8b0:4864:20::b2e]) by sourceware.org (Postfix) with ESMTPS id AFA4F385828D for ; Fri, 21 Oct 2022 05:49:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AFA4F385828D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-yb1-xb2e.google.com with SMTP id 126so2163689ybw.3 for ; Thu, 20 Oct 2022 22:49:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=n3a/FQbH0f0YGR9n3dv+qIuew3+RY7zek3nKhFQwc6c=; b=YQOs7w8VPVMmQ6ueCtszpEZcriBEs9l5S4cKM5b12xWaOHtNCVihlr8m0s/qxhMNkV qJF7A92qki0wghigPKBORGNTmvOVnKg7iIBNSnwfGBXApS/I33YjCd9hWif7AS5RmLgx YzPkZRUzkGg2HUkN4POU+ipyQAKNhSMVIUZe5MFhhnN/h8emsYBxWA2hik7IAunNd3gV wayoAtxKbnrCAftKeDVdiXePyIU+wgTeNiE46VNZ28bfPaOr4nS7vBMrsvKWeMHejhWj PgTDDHKX/MJy16jK3J4XpofzanW3r4CLi0KyJMNzDc0rFYtsaqO/tIX3oz8fGDklCoXm YtEA== 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:subject:date:message-id :reply-to; bh=n3a/FQbH0f0YGR9n3dv+qIuew3+RY7zek3nKhFQwc6c=; b=PRRHPr04Jb58/bt0bw4WfyZfoep1jFooxfDDdOelrFsy2LHRNabWsPFVsFTQO+1BCZ SnX1MG62J8smBsBHDCKe1qYDczNZAWGQhMCVFds4gKD6qpbLZPVah8yKCx2u3r7GOkoL rM3l1X6pYKZf7GIhXMG2fCGlJ6WW0OQlFRMiO0y2DN8/U7PP/GDcx7rwIqA5IzeGDed2 BvJbPRLWv3HLXDfMUi00zXk6wul7nc/Gnzg5kx+d6i3Bw4hQuWbpHh0INTM4wu1N1kg0 /JjpCxyZdnUJzKwYSX+cB1GW3XCxuJqTFrbB+EDR4EDqsDqCH/jDLUG5uGT7w/+AAYSb BNrw== X-Gm-Message-State: ACrzQf1xQAKMCJ/2rRbhSBqReMdZoRMc1zw40h6bbvGabwKSSk9o+xm0 upGRrDFF+2ZvsccasQp4GGqHj78ZX7xwKAC4p7A= X-Google-Smtp-Source: AMsMyM4l9CY372FOwW39bR9HSmFMSk/GLJrjATvsBXgK8/v84BT1567oRq4SLc0E/NZYC50LVYSyI6AlLpoBVJeucHU= X-Received: by 2002:a25:d441:0:b0:6be:2ed6:2409 with SMTP id m62-20020a25d441000000b006be2ed62409mr15464499ybf.70.1666331369941; Thu, 20 Oct 2022 22:49:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Max Filippov Date: Thu, 20 Oct 2022 22:49:15 -0700 Message-ID: Subject: Re: [PATCH] xtensa: Make register A0 allocable for the CALL0 ABI To: "Takayuki 'January June' Suwa" Cc: GCC Patches Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=0.9 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,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi Suwa-san, On Thu, Oct 20, 2022 at 7:58 PM Takayuki 'January June' Suwa wrote: > > This patch offers an additional allocable register by RA for the CALL0 > ABI. > > > Register a0 holds the return address upon entry to a function, but > > unlike the windowed register ABI, it is not reserved for this purpose > > and may hold other values after the return address has been saved. > - Xtensa ISA Reference Manual, > 8.1.2 "CALL0 Register Usage and Stack Layout" [p.589] > > gcc/ChangeLog: > > * config/xtensa/xtensa.cc (xtensa_conditional_register_usage): > Remove register A0 from FIXED_REGS if the CALL0 ABI. > --- > gcc/config/xtensa/xtensa.cc | 7 +++++++ > 1 file changed, 7 insertions(+) This change results in the following new regressions: FAIL: gcc.c-torture/execute/20040709-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gcc.c-torture/execute/20040709-2.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gcc.c-torture/execute/20190820-1.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gcc.c-torture/execute/loop-15.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gcc.dg/torture/pr101031.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gcc.dg/torture/pr101972.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gcc.dg/torture/pr99954.c -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: g++.dg/coroutines/torture/co-yield-04-complex-local-state.C -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: g++.dg/coroutines/torture/local-var-05-awaitable.C -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test -- Thanks. -- Max