public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Martin Liska <marxin@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc(refs/users/marxin/heads/slp-function-v2)] PowerPC: Add future hwcap2 bits
Date: Thu, 11 Jun 2020 10:08:55 +0000 (GMT)	[thread overview]
Message-ID: <20200611100855.76E513939C3A@sourceware.org> (raw)

https://gcc.gnu.org/g:7ba33e898fa4a097c0f2b4d9cae35041a5933f9c

commit 7ba33e898fa4a097c0f2b4d9cae35041a5933f9c
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Tue Jun 9 15:32:02 2020 -0500

    PowerPC: Add future hwcap2 bits
    
    This patch adds support for the two new HWCAP2 fields used by the
    __builtin_cpu_supports function.  It adds support in the target_clones
    attribute for -mcpu=future.
    
    The two new __builtin_cpu_supports tests are:
            __builtin_cpu_supports ("isa_3_1")
            __builtin_cpu_supports ("mma")
    
    The bits used are the bits that the Linux kernel engineers will be using for
    these new features.
    
    gcc/
    2020-06-05  Michael Meissner  <meissner@linux.ibm.com>
    
            * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate
            'future' PowerPC platform.
            (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1.
            (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA.
            * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and
            MMA HWCAP2 bits.
            * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support.
            (rs6000_clone_map): Add 'future' system target_clones support.

Diff:
---
 gcc/config/rs6000/ppc-auxv.h    | 6 ++++++
 gcc/config/rs6000/rs6000-call.c | 4 +++-
 gcc/config/rs6000/rs6000.c      | 2 ++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/ppc-auxv.h b/gcc/config/rs6000/ppc-auxv.h
index 323293178e7..e51d0393e5f 100644
--- a/gcc/config/rs6000/ppc-auxv.h
+++ b/gcc/config/rs6000/ppc-auxv.h
@@ -48,6 +48,9 @@
 #define PPC_PLATFORM_POWER8            13
 #define PPC_PLATFORM_POWER9            14
 
+/* This is not yet official.  */
+#define PPC_PLATFORM_FUTURE            15
+
 /* AT_HWCAP bits.  These must match the values defined in the Linux kernel.  */
 #define PPC_FEATURE_32              0x80000000
 #define PPC_FEATURE_64              0x40000000
@@ -93,6 +96,9 @@
 #define PPC_FEATURE2_SCV            0x00100000
 #define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000
 
+/* These are not yet official.  */
+#define PPC_FEATURE2_ARCH_3_1       0x00040000
+#define PPC_FEATURE2_MMA            0x00020000
 
 /* Thread Control Block (TCB) offsets of the AT_PLATFORM, AT_HWCAP and
    AT_HWCAP2 values.  These must match the values defined in GLIBC.  */
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 0ac8054d030..817a14c9c0d 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -172,7 +172,9 @@ static const struct
   { "arch_3_00",	PPC_FEATURE2_ARCH_3_00,		1 },
   { "ieee128",		PPC_FEATURE2_HAS_IEEE128,	1 },
   { "darn",		PPC_FEATURE2_DARN,		1 },
-  { "scv",		PPC_FEATURE2_SCV,		1 }
+  { "scv",		PPC_FEATURE2_SCV,		1 },
+  { "arch_3_1",		PPC_FEATURE2_ARCH_3_1,		1 },
+  { "mma",		PPC_FEATURE2_MMA,		1 },
 };
 
 static void altivec_init_builtins (void);
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index ff09e9378ef..0bbd06ad1de 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -260,6 +260,7 @@ enum {
   CLONE_ISA_2_06,			/* ISA 2.06 (power7).  */
   CLONE_ISA_2_07,			/* ISA 2.07 (power8).  */
   CLONE_ISA_3_00,			/* ISA 3.00 (power9).  */
+  CLONE_ISA_3_1,			/* ISA 3.1 (future).  */
   CLONE_MAX
 };
 
@@ -275,6 +276,7 @@ static const struct clone_map rs6000_clone_map[CLONE_MAX] = {
   { OPTION_MASK_POPCNTD,	"arch_2_06" },	/* ISA 2.06 (power7).  */
   { OPTION_MASK_P8_VECTOR,	"arch_2_07" },	/* ISA 2.07 (power8).  */
   { OPTION_MASK_P9_VECTOR,	"arch_3_00" },	/* ISA 3.00 (power9).  */
+  { OPTION_MASK_FUTURE,		"arch_3_1" },	/* ISA 3.1 (future).  */
 };


             reply	other threads:[~2020-06-11 10:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-11 10:08 Martin Liska [this message]
2020-06-11 10:09 Martin Liska
2020-06-11 10:09 Martin Liska

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200611100855.76E513939C3A@sourceware.org \
    --to=marxin@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).