From patchwork Mon Apr 22 07:43:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Christoph_M=C3=BCllner?= X-Patchwork-Id: 88835 X-Patchwork-Delegate: carlos@redhat.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 60FD2384AB51 for ; Mon, 22 Apr 2024 07:47:32 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by sourceware.org (Postfix) with ESMTPS id 9A7DD3858C60 for ; Mon, 22 Apr 2024 07:44:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9A7DD3858C60 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=vrull.eu Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=vrull.eu ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9A7DD3858C60 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::12e ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713771856; cv=none; b=QKD5aKSKDlOzv73jN3m4OVHlUc66SyZ4MoCvUFVjlwpPI3fn3pwi/MoLbb5iAu4jdp2yNgz/n64HCZ7rCyE3q53BK78/73NSMScfTqh8BWpg8ZLefv33L+DBeDhlWXVBXDMXXu3+LIflKU5A9TSPOqTt5ya2yDdwVjHPidxYHFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713771856; c=relaxed/simple; bh=3/fxpelQ2Av16MCnMuagbkqAnXGWINVcQDTDTABqfk0=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=BMyptg/icU368WZmky/k3v/z1ES0f31hJyaXaNiUO0InpCauG3nlJIrpiHNiyublF2i2MZqSXVWTokcRXUYfNwfq6Wjwpml/BbuOc5UsKBX7yXcn0ZuGyUuu69m0KZuqCGKspXZkNfXi7eHiKHh/mu7TaeINrCknmQ7Vkj5+7mA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-lf1-x12e.google.com with SMTP id 2adb3069b0e04-51abd580902so2419835e87.1 for ; Mon, 22 Apr 2024 00:44:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vrull.eu; s=google; t=1713771852; x=1714376652; darn=sourceware.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=416+1tdsIRVXk6pQDrXQE9MfDyfmuQt9MJ051c/pATA=; b=aUlQyhJ2ACPcSe7FE766jY9/BwkX7lOB9Y8b7Mcd9RFIYSZhsUAuaEkqChuPzqIkLr +T/VQugL306BNPjZ+VUmxHaojOXAU38WkYVbozldEHCMA0S/IjHP1macQFK19geuItJp 3JRtL5KJ/8d8k8nw77IcDsdJQR49xEPPMHJ3r9DMhrLfxT+dA/kAA3hvQ2SluDJcFWJ7 b2tLQPTFmoJDqSCeUxzB3iXgrZHO3kSF3mZVhgv0UuSJvRfoXx6xOfw6Z7dOpOSS17Vf PK1uWvrIEHtTYyQSEdEjyLKfKywqX1jRgizoKk9IbQ5HitToFYZlTBoclya5HI8tuo86 8/RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713771852; x=1714376652; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=416+1tdsIRVXk6pQDrXQE9MfDyfmuQt9MJ051c/pATA=; b=VoCYN2Qc8wWGr87mG5v16u0osMA0poCCNqysFjbormag4uQTm9MHgac/BioIALRIBf IBCWttPHAoFcK1ASdLJ+cK0ZBCFNsbhZu6C2JJYPac5ixAGLBz6v3TNlGTRQPQaqZ0vK oe5Bxn4Oikqo02yy9At+PxrDJw4gw7qpMCUcQr0Rj0hBMdt9LuKr6lO+e4TyiSfZFlzZ l75ozUbXoGw++mcKsMboGGJt2JnLAvT5owYdMAZLqHwYQNlKAUH8FBtDKcsyqXD8zSsn qoiAvLAeIM5rIqRJ7aH9c2TRe1gAishTgpzA0z3ao4wP8z4eJ/1ZSDOviyJE7QeE3zBR opIQ== X-Gm-Message-State: AOJu0YwDnTPoH1OLWcIGGb6HCC8Qc08cStxXS17wz8PvCo3S5k+a0nb5 l0CPz1KpV2HdAfZsuwsIUy9fcL+8swYZhxiXMEw3oUjllh+4kJkPl6TdaNyT0fAOvhOtrzqOZ49 jXe4= X-Google-Smtp-Source: AGHT+IF73LqkgYV4C2mjzX2On6T697wY3IBRkqzEmRYjvMctLU6NIr3MkDeNv0ovXqBP2Tl5LgR7eA== X-Received: by 2002:ac2:4a84:0:b0:51a:cd25:4383 with SMTP id l4-20020ac24a84000000b0051acd254383mr2159631lfp.4.1713771852089; Mon, 22 Apr 2024 00:44:12 -0700 (PDT) Received: from beast.fritz.box (static.239.130.217.95.clients.your-server.de. [95.217.130.239]) by smtp.gmail.com with ESMTPSA id v24-20020a197418000000b0051920234d6dsm1656756lfe.273.2024.04.22.00.44.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Apr 2024 00:44:11 -0700 (PDT) From: =?utf-8?q?Christoph_M=C3=BCllner?= To: libc-alpha@sourceware.org, Adhemerval Zanella , Palmer Dabbelt , Darius Rad , Andrew Waterman , Philipp Tomsich , Evan Green , DJ Delorie , Vineet Gupta , Kito Cheng , Jeff Law Cc: =?utf-8?q?Christoph_M=C3=BCllner?= Subject: [PATCH 1/7] RISC-V: Use .insn directive form for orc.b Date: Mon, 22 Apr 2024 09:43:57 +0200 Message-ID: <20240422074403.2399529-2-christoph.muellner@vrull.eu> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20240422074403.2399529-1-christoph.muellner@vrull.eu> References: <20240422074403.2399529-1-christoph.muellner@vrull.eu> MIME-Version: 1.0 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_MANYTO, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org The orc.b instruction is part of the Zbb extension, which was ratified in 2021. GAS releases older than that won't know of the instruction. Newer GAS releases accepted orc.b only if Zbb is enabled in the -march string. This patch changes the inline asm for orc.b to the '.insn' directive form, which allows (future changes) to build orc.b-optimized routines by defining the Zbb feature test macro (__riscv_zbb). Building optimized routines this way is compatible with releases of GAS with and without Zbb support. Signed-off-by: Christoph Müllner --- sysdeps/riscv/string-fza.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sysdeps/riscv/string-fza.h b/sysdeps/riscv/string-fza.h index ee5c31317f..47b1fd152f 100644 --- a/sysdeps/riscv/string-fza.h +++ b/sysdeps/riscv/string-fza.h @@ -36,7 +36,8 @@ find_zero_all (op_t x) asm ("th.tstnbz %0, %1" : "=r" (r) : "r" (x)); return r; #else - asm ("orc.b %0, %1" : "=r" (r) : "r" (x)); + /* orc.b using the .insn directive (supported by older Binutils releases). */ + asm (".insn i 0x13, 0x5, %0, %1, 0x287" : "=r" (r) : "r" (x)); return ~r; #endif }