From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x22a.google.com (mail-oi1-x22a.google.com [IPv6:2607:f8b0:4864:20::22a]) by sourceware.org (Postfix) with ESMTPS id 9AA313858C78 for ; Tue, 30 Jul 2024 18:00:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9AA313858C78 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9AA313858C78 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::22a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722362414; cv=none; b=SBX5gT5ftA76q4qmvOzH9qeWtUTuSHmSveMMbLUOwS3g+x+EBLYYBHr3w4jDuq76YXh3vMGLLW+/vdpys0iYBPjEADLhFLxM/bWYAmypVFMXpTUH36lSOBa/jsKFd5UwJKC9iuFN5woSPdfGPA+KpSEnCVea7FFP4IsFbMJwXs4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1722362414; c=relaxed/simple; bh=Q69NlD3i7znfHxj5nuQJOLGn7lUFPqMc74EnBL5BeNk=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=oABXJ1sIZMTS5gPfQcQmHVBB1M0wVY8kP4XP/Gp1I7skZEndZgBMn2NQFaXV378ypMqix5D7FVFroMo+QIUgQPv8ZLZKjrI7jkIHDbqatwthJNGjpEzcV0HR0aVbWQ9xvKXbsRjdMhCmQj2SJLpydH5Hbfh6SepceeVytHx7fWk= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-oi1-x22a.google.com with SMTP id 5614622812f47-3db14930a1aso3368085b6e.3 for ; Tue, 30 Jul 2024 11:00:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1722362408; x=1722967208; darn=gcc.gnu.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=Npzbl6JZPJPOITZsE8zmeH6RUzv7E7Vij0ax0/4J4Q4=; b=JsPHSZwzxtiHLfTv9Zm2qiUv5lvT091MycNqoD71EBtYstGN/sWqV1KXLCu/EaacUh B6xJO76J0DdaWeTWn43Yd0EXaBMv7EbBfO+US9OCJD3QA06Vsd7F36xyWHSgOjY7MVMt ImkUTl0FdBnLdsUSNiZC5eRuiGlzROLlENfzHSJo081SmidMthy9/JsJxaY/p3NovLIo sIhoG2PWP2VlOZshAHdm6qjt60fSvm8H6Mra5YMq5Ps45fz4UaNNEcXB0DbedGlMw+R0 aRYYYqqvNzhwGvZ8Qt080vMsg4dWaVX5Sg3xXNdAo8YwCriIUDVd7Bt/MNDoyo0XMIOq siXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1722362408; x=1722967208; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Npzbl6JZPJPOITZsE8zmeH6RUzv7E7Vij0ax0/4J4Q4=; b=Qesww7UXw7OPzSzvjcuowZ73+KVzXMdRtcXhA9zpsRHhwiFW/HGQwYRGVhhzOS/Bvl KV4Gr+nr1FubRQhLEaJ5g/ZBtNcLPbStz3VqEYU9g/oCV9LJE4/c3+WTedmDUjh/HZXv THZVjXUhap6de7jlVLanz2gIvGPluNW9fTE3/8XNPziZn+/jymMEgKALtmBfiP/s40S0 tK5y9DGFHRe3rChjgcyQj1tDqE4s9fe6Zyj8r1SRe1NtFYRyb55nT0nVaLmrKm05JNsF XDxqJ9EGe/Bwp809TxrAXZsHZpEl/TtuZT8PxneJYQHk5sxw/UB1wQ36tSy//Q8lBlLm LP1w== X-Gm-Message-State: AOJu0YzsoJLGYD6j1TXjwKWm/JNAIuSz79rX5KCkOjnlCAPAH87RuxDs bAsgxVPYE3e0kMx9lK/b6WiFL/0jTFYtdIqNi3pnyi8Z2NEWqebOFMXMWs7HPmA= X-Google-Smtp-Source: AGHT+IE1NwPj66IH3TM+zPo63A0uh58j4UQ+USE77sGVp0ct/MJrso7SE5Wt3wQL5yQeONm8J5Pg8w== X-Received: by 2002:a05:6808:17a7:b0:3d9:3aa0:894e with SMTP id 5614622812f47-3db23cef887mr14374547b6e.50.1722362407671; Tue, 30 Jul 2024 11:00:07 -0700 (PDT) Received: from [10.0.17.83] ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-7a9f8849528sm7835450a12.52.2024.07.30.11.00.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 30 Jul 2024 11:00:07 -0700 (PDT) Message-ID: <7a291125-0254-4202-950d-d91164a2fc6d@rivosinc.com> Date: Tue, 30 Jul 2024 11:00:05 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [Committed] RISC-V: Add configure check for B extention support To: Kito Cheng Cc: gcc-patches@gcc.gnu.org, gnu-toolchain@rivosinc.com References: <20240724235038.3649303-1-ewlu@rivosinc.com> Content-Language: en-US From: Edwin Lu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Thanks! Committed Edwin On 7/29/2024 6:37 AM, Kito Cheng wrote: > LGTM, although I said no binutils check for zacas and zabha, but B is > a different situation since GCC will add that if zba, zbb and zbs are > all present. > > > > On Thu, Jul 25, 2024 at 7:51 AM Edwin Lu wrote: >> Binutils 2.42 and before don't recognize the B extension in the march >> strings even though it supports zba_zbb_zbs. Add a configure check to >> ignore the B in the march string if found. >> >> gcc/ChangeLog: >> >> * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string): >> Skip b in march string >> * config.in: Regenerate. >> * configure: Regenerate. >> * configure.ac: Add B assembler check >> >> Signed-off-by: Edwin Lu >> --- >> gcc/common/config/riscv/riscv-common.cc | 8 +++++++ >> gcc/config.in | 6 +++++ >> gcc/configure | 31 +++++++++++++++++++++++++ >> gcc/configure.ac | 5 ++++ >> 4 files changed, 50 insertions(+) >> >> diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc >> index 682826c0e34..200a57e1bc8 100644 >> --- a/gcc/common/config/riscv/riscv-common.cc >> +++ b/gcc/common/config/riscv/riscv-common.cc >> @@ -857,6 +857,7 @@ riscv_subset_list::to_string (bool version_p) const >> bool skip_zaamo_zalrsc = false; >> bool skip_zabha = false; >> bool skip_zicsr = false; >> + bool skip_b = false; >> bool i2p0 = false; >> >> /* For RISC-V ISA version 2.2 or earlier version, zicsr and zifencei is >> @@ -891,6 +892,10 @@ riscv_subset_list::to_string (bool version_p) const >> /* Skip since binutils 2.42 and earlier don't recognize zabha. */ >> skip_zabha = true; >> #endif >> +#ifndef HAVE_AS_MARCH_B >> + /* Skip since binutils 2.42 and earlier don't recognize b. */ >> + skip_b = true; >> +#endif >> >> for (subset = m_head; subset != NULL; subset = subset->next) >> { >> @@ -911,6 +916,9 @@ riscv_subset_list::to_string (bool version_p) const >> if (skip_zabha && subset->name == "zabha") >> continue; >> >> + if (skip_b && subset->name == "b") >> + continue; >> + >> /* For !version_p, we only separate extension with underline for >> multi-letter extension. */ >> if (!first && >> diff --git a/gcc/config.in b/gcc/config.in >> index bc819005bd6..96e829b9c93 100644 >> --- a/gcc/config.in >> +++ b/gcc/config.in >> @@ -629,6 +629,12 @@ >> #endif >> >> >> +/* Define if the assembler understands -march=rv*_b. */ >> +#ifndef USED_FOR_TARGET >> +#undef HAVE_AS_MARCH_B >> +#endif >> + >> + >> /* Define if the assembler understands -march=rv*_zaamo_zalrsc. */ >> #ifndef USED_FOR_TARGET >> #undef HAVE_AS_MARCH_ZAAMO_ZALRSC >> diff --git a/gcc/configure b/gcc/configure >> index 01acca7fb5c..c5725c4cd44 100755 >> --- a/gcc/configure >> +++ b/gcc/configure >> @@ -30913,6 +30913,37 @@ if test $gcc_cv_as_riscv_march_zabha = yes; then >> >> $as_echo "#define HAVE_AS_MARCH_ZABHA 1" >>confdefs.h >> >> +fi >> + >> + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for -march=rv32i_b support" >&5 >> +$as_echo_n "checking assembler for -march=rv32i_b support... " >&6; } >> +if ${gcc_cv_as_riscv_march_b+:} false; then : >> + $as_echo_n "(cached) " >&6 >> +else >> + gcc_cv_as_riscv_march_b=no >> + if test x$gcc_cv_as != x; then >> + $as_echo '' > conftest.s >> + if { ac_try='$gcc_cv_as $gcc_cv_as_flags -march=rv32i_b -o conftest.o conftest.s >&5' >> + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 >> + (eval $ac_try) 2>&5 >> + ac_status=$? >> + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 >> + test $ac_status = 0; }; } >> + then >> + gcc_cv_as_riscv_march_b=yes >> + else >> + echo "configure: failed program was" >&5 >> + cat conftest.s >&5 >> + fi >> + rm -f conftest.o conftest.s >> + fi >> +fi >> +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_riscv_march_b" >&5 >> +$as_echo "$gcc_cv_as_riscv_march_b" >&6; } >> +if test $gcc_cv_as_riscv_march_b = yes; then >> + >> +$as_echo "#define HAVE_AS_MARCH_B 1" >>confdefs.h >> + >> fi >> >> ;; >> diff --git a/gcc/configure.ac b/gcc/configure.ac >> index 3f20c107b6a..93d9236ff36 100644 >> --- a/gcc/configure.ac >> +++ b/gcc/configure.ac >> @@ -5466,6 +5466,11 @@ configured with --enable-newlib-nano-formatted-io.]) >> [-march=rv32i_zabha],,, >> [AC_DEFINE(HAVE_AS_MARCH_ZABHA, 1, >> [Define if the assembler understands -march=rv*_zabha.])]) >> + gcc_GAS_CHECK_FEATURE([-march=rv32i_b support], >> + gcc_cv_as_riscv_march_b, >> + [-march=rv32i_b],,, >> + [AC_DEFINE(HAVE_AS_MARCH_B, 1, >> + [Define if the assembler understands -march=rv*_b.])]) >> ;; >> loongarch*-*-*) >> gcc_GAS_CHECK_FEATURE([.dtprelword support], >> -- >> 2.34.1 >>