From patchwork Wed Apr 5 16:21:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 67411 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 3C30F3856DCE for ; Wed, 5 Apr 2023 16:23:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3C30F3856DCE DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1680711824; bh=HjfDMilRLOb8PTqJqky1wNQPlLlkMLIxPs1oDygBXoE=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=PJH6gk4JPrONttz7heEjE0keJU3gO4wa3nTHCWGwrGnx7tYDLgs8SMekt++Nx0NMA Mnu98AKq9WJQnaca+HpYX2EbUCSSDwjofzcu549FanGiN3q+mG6BXCUjcs9Y9jd0xZ Nhcj/pToG8Fhb456W7XAG26ju6GId7EH7d5ZKpJs= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by sourceware.org (Postfix) with ESMTPS id 091323858C2B for ; Wed, 5 Apr 2023 16:21:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 091323858C2B Received: by mail-pj1-x102c.google.com with SMTP id x15so34499835pjk.2 for ; Wed, 05 Apr 2023 09:21:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680711709; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HjfDMilRLOb8PTqJqky1wNQPlLlkMLIxPs1oDygBXoE=; b=mGkwGj3M0x2F9BmWgFWA1NDgskwF/m7LbpeNYrk0TNn1rQqclBh+jRVdJOAaE2vCQX wPDqNabZe+XLsN4J9X6qMBoMgMGxDG+QQtCKFwRTV7bIXeARRa5jFZDbtmyS1sdgj5gH 0SZZP/Zy+vmcs+tYTvvkGjfHB756dtThcjlkRky/dwrscCCUY3N9oZ1T9Jr4/O8vmixk mnvHFLVon1DBN53ftmrHEG08dj1H4TR8izNtuwn8nWr+Hg/kqMxsOTLGV3U+p4FDOnA8 Zi88V/lKox/rgYiPo4HDQORKAzTaXCw3eSq/gIYgi+buPjifUa+SnP1kyOUYDWv9X00m gJ7Q== X-Gm-Message-State: AAQBX9esZwkKb0tuUT/K9q5yo1rTWfR2Rr3kvF4sg4zNAK2EP9j5AaF6 tO2WNb6sNn/cjUCvP8br0S1uSzBuoPg= X-Google-Smtp-Source: AKy350bHc6nGT5GzMGzhxgFdUEgJkyTjiU6NYFuusV7De7RDmeq3PWMNG9ZmoJTP5M/tjqPoh8Tlng== X-Received: by 2002:a17:90b:17c9:b0:23d:16d6:2f05 with SMTP id me9-20020a17090b17c900b0023d16d62f05mr7438335pjb.22.1680711708701; Wed, 05 Apr 2023 09:21:48 -0700 (PDT) Received: from gnu-cfl-3.localdomain ([172.59.161.240]) by smtp.gmail.com with ESMTPSA id g15-20020a17090a7d0f00b002309279baf8sm1552370pjl.43.2023.04.05.09.21.47 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Apr 2023 09:21:48 -0700 (PDT) Received: from gnu-cfl-3.. (localhost [IPv6:::1]) by gnu-cfl-3.localdomain (Postfix) with ESMTP id BF22D740123 for ; Wed, 5 Apr 2023 09:21:44 -0700 (PDT) To: libc-alpha@sourceware.org Subject: [PATCH 08/19] : Add RAO-INT support Date: Wed, 5 Apr 2023 09:21:33 -0700 Message-Id: <20230405162144.984598-9-hjl.tools@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230405162144.984598-1-hjl.tools@gmail.com> References: <20230405162144.984598-1-hjl.tools@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-3025.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "H.J. Lu via Libc-alpha" From: "H.J. Lu" Reply-To: "H.J. Lu" Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Add RAO-INT support to . Reviewed-by: Noah Goldstein --- manual/platform.texi | 3 +++ sysdeps/x86/bits/platform/x86.h | 1 + sysdeps/x86/cpu-features.c | 1 + sysdeps/x86/include/cpu-features.h | 3 +++ sysdeps/x86/tst-get-cpu-features.c | 2 ++ 5 files changed, 10 insertions(+) diff --git a/manual/platform.texi b/manual/platform.texi index b72518ebd8..a6e33b1572 100644 --- a/manual/platform.texi +++ b/manual/platform.texi @@ -516,6 +516,9 @@ extended state management using XSAVE/XRSTOR. @item @code{PTWRITE} -- PTWRITE instruction. +@item +@code{RAO_INT} -- RAO-INT instructions. + @item @code{RDPID} -- RDPID instruction. diff --git a/sysdeps/x86/bits/platform/x86.h b/sysdeps/x86/bits/platform/x86.h index 1040c2aed4..6fc3b69651 100644 --- a/sysdeps/x86/bits/platform/x86.h +++ b/sysdeps/x86/bits/platform/x86.h @@ -288,6 +288,7 @@ enum = (CPUID_INDEX_7_ECX_1 * 8 * 4 * sizeof (unsigned int) + cpuid_register_index_eax * 8 * sizeof (unsigned int)), + x86_cpu_RAO_INT = x86_cpu_index_7_ecx_1_eax + 3, x86_cpu_AVX_VNNI = x86_cpu_index_7_ecx_1_eax + 4, x86_cpu_AVX512_BF16 = x86_cpu_index_7_ecx_1_eax + 5, x86_cpu_FZLRM = x86_cpu_index_7_ecx_1_eax + 10, diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c index 95ad48b501..e591e55a88 100644 --- a/sysdeps/x86/cpu-features.c +++ b/sysdeps/x86/cpu-features.c @@ -99,6 +99,7 @@ update_active (struct cpu_features *cpu_features) CPU_FEATURE_SET_ACTIVE (cpu_features, TBM); CPU_FEATURE_SET_ACTIVE (cpu_features, RDTSCP); CPU_FEATURE_SET_ACTIVE (cpu_features, WBNOINVD); + CPU_FEATURE_SET_ACTIVE (cpu_features, RAO_INT); CPU_FEATURE_SET_ACTIVE (cpu_features, FZLRM); CPU_FEATURE_SET_ACTIVE (cpu_features, FSRS); CPU_FEATURE_SET_ACTIVE (cpu_features, FSRCS); diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h index fa91a23129..b946a88ad1 100644 --- a/sysdeps/x86/include/cpu-features.h +++ b/sysdeps/x86/include/cpu-features.h @@ -302,6 +302,7 @@ enum /* CPUID_INDEX_7_ECX_1. */ /* EAX. */ +#define bit_cpu_RAO_INT (1u << 3) #define bit_cpu_AVX_VNNI (1u << 4) #define bit_cpu_AVX512_BF16 (1u << 5) #define bit_cpu_FZLRM (1u << 10) @@ -537,6 +538,7 @@ enum /* CPUID_INDEX_7_ECX_1. */ /* EAX. */ +#define index_cpu_RAO_INT CPUID_INDEX_7_ECX_1 #define index_cpu_AVX_VNNI CPUID_INDEX_7_ECX_1 #define index_cpu_AVX512_BF16 CPUID_INDEX_7_ECX_1 #define index_cpu_FZLRM CPUID_INDEX_7_ECX_1 @@ -772,6 +774,7 @@ enum /* CPUID_INDEX_7_ECX_1. */ /* EAX. */ +#define reg_RAO_INT eax #define reg_AVX_VNNI eax #define reg_AVX512_BF16 eax #define reg_FZLRM eax diff --git a/sysdeps/x86/tst-get-cpu-features.c b/sysdeps/x86/tst-get-cpu-features.c index cfc8692392..6a3f29db98 100644 --- a/sysdeps/x86/tst-get-cpu-features.c +++ b/sysdeps/x86/tst-get-cpu-features.c @@ -200,6 +200,7 @@ do_test (void) CHECK_CPU_FEATURE_PRESENT (XFD); CHECK_CPU_FEATURE_PRESENT (INVARIANT_TSC); CHECK_CPU_FEATURE_PRESENT (WBNOINVD); + CHECK_CPU_FEATURE_PRESENT (RAO_INT); CHECK_CPU_FEATURE_PRESENT (AVX_VNNI); CHECK_CPU_FEATURE_PRESENT (AVX512_BF16); CHECK_CPU_FEATURE_PRESENT (FZLRM); @@ -365,6 +366,7 @@ do_test (void) CHECK_CPU_FEATURE_ACTIVE (XFD); CHECK_CPU_FEATURE_ACTIVE (INVARIANT_TSC); CHECK_CPU_FEATURE_ACTIVE (WBNOINVD); + CHECK_CPU_FEATURE_ACTIVE (RAO_INT); CHECK_CPU_FEATURE_ACTIVE (AVX_VNNI); CHECK_CPU_FEATURE_ACTIVE (AVX512_BF16); CHECK_CPU_FEATURE_ACTIVE (FZLRM);