aboutsummaryrefslogtreecommitdiff
path: root/gcc/common
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2022-02-11 15:02:44 -0800
committerIan Lance Taylor <iant@golang.org>2022-02-11 15:02:44 -0800
commit9a510fb0970d3d9a4201bce8965cabe67850386b (patch)
tree43d7fd2bbfd7ad8c9625a718a5e8718889351994 /gcc/common
parenta6d3012b274f38b20e2a57162106f625746af6c6 (diff)
parent8dc2499aa62f768c6395c9754b8cabc1ce25c494 (diff)
downloadgcc-9a510fb0970d3d9a4201bce8965cabe67850386b.zip
gcc-9a510fb0970d3d9a4201bce8965cabe67850386b.tar.gz
gcc-9a510fb0970d3d9a4201bce8965cabe67850386b.tar.bz2
Merge from trunk revision 8dc2499aa62f768c6395c9754b8cabc1ce25c494
Diffstat (limited to 'gcc/common')
-rw-r--r--gcc/common/common-target-def.h2
-rw-r--r--gcc/common/common-target.def2
-rw-r--r--gcc/common/common-target.h2
-rw-r--r--gcc/common/common-targhooks.cc (renamed from gcc/common/common-targhooks.c)2
-rw-r--r--gcc/common/common-targhooks.h2
-rw-r--r--gcc/common/config/aarch64/aarch64-common.cc (renamed from gcc/common/config/aarch64/aarch64-common.c)4
-rw-r--r--gcc/common/config/alpha/alpha-common.cc (renamed from gcc/common/config/alpha/alpha-common.c)2
-rw-r--r--gcc/common/config/arc/arc-common.cc (renamed from gcc/common/config/arc/arc-common.c)2
-rw-r--r--gcc/common/config/arm/arm-common.cc (renamed from gcc/common/config/arm/arm-common.c)16
-rw-r--r--gcc/common/config/avr/avr-common.cc (renamed from gcc/common/config/avr/avr-common.c)4
-rw-r--r--gcc/common/config/bfin/bfin-common.cc (renamed from gcc/common/config/bfin/bfin-common.c)2
-rw-r--r--gcc/common/config/bpf/bpf-common.cc (renamed from gcc/common/config/bpf/bpf-common.c)2
-rw-r--r--gcc/common/config/c6x/c6x-common.cc (renamed from gcc/common/config/c6x/c6x-common.c)2
-rw-r--r--gcc/common/config/cr16/cr16-common.cc (renamed from gcc/common/config/cr16/cr16-common.c)2
-rw-r--r--gcc/common/config/cris/cris-common.cc (renamed from gcc/common/config/cris/cris-common.c)2
-rw-r--r--gcc/common/config/csky/csky-common.cc (renamed from gcc/common/config/csky/csky-common.c)2
-rw-r--r--gcc/common/config/default-common.cc (renamed from gcc/common/config/default-common.c)2
-rw-r--r--gcc/common/config/epiphany/epiphany-common.cc (renamed from gcc/common/config/epiphany/epiphany-common.c)2
-rw-r--r--gcc/common/config/fr30/fr30-common.cc (renamed from gcc/common/config/fr30/fr30-common.c)2
-rw-r--r--gcc/common/config/frv/frv-common.cc (renamed from gcc/common/config/frv/frv-common.c)2
-rw-r--r--gcc/common/config/gcn/gcn-common.cc (renamed from gcc/common/config/gcn/gcn-common.c)2
-rw-r--r--gcc/common/config/h8300/h8300-common.cc (renamed from gcc/common/config/h8300/h8300-common.c)2
-rw-r--r--gcc/common/config/i386/cpuinfo.h4
-rw-r--r--gcc/common/config/i386/i386-common.cc (renamed from gcc/common/config/i386/i386-common.c)22
-rw-r--r--gcc/common/config/i386/i386-cpuinfo.h2
-rw-r--r--gcc/common/config/i386/i386-isas.h6
-rw-r--r--gcc/common/config/ia64/ia64-common.cc (renamed from gcc/common/config/ia64/ia64-common.c)2
-rw-r--r--gcc/common/config/iq2000/iq2000-common.cc (renamed from gcc/common/config/iq2000/iq2000-common.c)2
-rw-r--r--gcc/common/config/lm32/lm32-common.cc (renamed from gcc/common/config/lm32/lm32-common.c)2
-rw-r--r--gcc/common/config/m32r/m32r-common.cc (renamed from gcc/common/config/m32r/m32r-common.c)2
-rw-r--r--gcc/common/config/m68k/m68k-common.cc (renamed from gcc/common/config/m68k/m68k-common.c)2
-rw-r--r--gcc/common/config/mcore/mcore-common.cc (renamed from gcc/common/config/mcore/mcore-common.c)2
-rw-r--r--gcc/common/config/microblaze/microblaze-common.cc (renamed from gcc/common/config/microblaze/microblaze-common.c)2
-rw-r--r--gcc/common/config/mips/mips-common.cc (renamed from gcc/common/config/mips/mips-common.c)2
-rw-r--r--gcc/common/config/mmix/mmix-common.cc (renamed from gcc/common/config/mmix/mmix-common.c)2
-rw-r--r--gcc/common/config/mn10300/mn10300-common.cc (renamed from gcc/common/config/mn10300/mn10300-common.c)2
-rw-r--r--gcc/common/config/msp430/msp430-common.cc (renamed from gcc/common/config/msp430/msp430-common.c)2
-rw-r--r--gcc/common/config/nds32/nds32-common.cc (renamed from gcc/common/config/nds32/nds32-common.c)2
-rw-r--r--gcc/common/config/nios2/nios2-common.cc (renamed from gcc/common/config/nios2/nios2-common.c)2
-rw-r--r--gcc/common/config/nvptx/nvptx-common.cc (renamed from gcc/common/config/nvptx/nvptx-common.c)2
-rw-r--r--gcc/common/config/or1k/or1k-common.cc (renamed from gcc/common/config/or1k/or1k-common.c)2
-rw-r--r--gcc/common/config/pa/pa-common.cc (renamed from gcc/common/config/pa/pa-common.c)2
-rw-r--r--gcc/common/config/pdp11/pdp11-common.cc (renamed from gcc/common/config/pdp11/pdp11-common.c)2
-rw-r--r--gcc/common/config/pru/pru-common.cc (renamed from gcc/common/config/pru/pru-common.c)2
-rw-r--r--gcc/common/config/riscv/riscv-common.cc (renamed from gcc/common/config/riscv/riscv-common.c)203
-rw-r--r--gcc/common/config/rs6000/rs6000-common.cc (renamed from gcc/common/config/rs6000/rs6000-common.c)2
-rw-r--r--gcc/common/config/rx/rx-common.cc (renamed from gcc/common/config/rx/rx-common.c)2
-rw-r--r--gcc/common/config/s390/s390-common.cc (renamed from gcc/common/config/s390/s390-common.c)16
-rw-r--r--gcc/common/config/sh/sh-common.cc (renamed from gcc/common/config/sh/sh-common.c)2
-rw-r--r--gcc/common/config/sparc/sparc-common.cc (renamed from gcc/common/config/sparc/sparc-common.c)2
-rw-r--r--gcc/common/config/tilegx/tilegx-common.cc (renamed from gcc/common/config/tilegx/tilegx-common.c)2
-rw-r--r--gcc/common/config/tilepro/tilepro-common.cc (renamed from gcc/common/config/tilepro/tilepro-common.c)2
-rw-r--r--gcc/common/config/v850/v850-common.cc (renamed from gcc/common/config/v850/v850-common.c)2
-rw-r--r--gcc/common/config/vax/vax-common.cc (renamed from gcc/common/config/vax/vax-common.c)2
-rw-r--r--gcc/common/config/visium/visium-common.cc (renamed from gcc/common/config/visium/visium-common.c)2
-rw-r--r--gcc/common/config/xstormy16/xstormy16-common.cc (renamed from gcc/common/config/xstormy16/xstormy16-common.c)2
-rw-r--r--gcc/common/config/xtensa/xtensa-common.cc (renamed from gcc/common/config/xtensa/xtensa-common.c)2
57 files changed, 277 insertions, 96 deletions
diff --git a/gcc/common/common-target-def.h b/gcc/common/common-target-def.h
index 3def227..ab39f30 100644
--- a/gcc/common/common-target-def.h
+++ b/gcc/common/common-target-def.h
@@ -1,5 +1,5 @@
/* Default initializers for common target hooks.
- Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ Copyright (C) 2011-2022 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/gcc/common/common-target.def b/gcc/common/common-target.def
index f54590a..c4d1144 100644
--- a/gcc/common/common-target.def
+++ b/gcc/common/common-target.def
@@ -1,5 +1,5 @@
/* Target hook definitions for common hooks.
- Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ Copyright (C) 2011-2022 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/gcc/common/common-target.h b/gcc/common/common-target.h
index 5a33c9b..e90b02c 100644
--- a/gcc/common/common-target.h
+++ b/gcc/common/common-target.h
@@ -1,5 +1,5 @@
/* Data structure definitions for common hooks.
- Copyright (C) 2010-2021 Free Software Foundation, Inc.
+ Copyright (C) 2010-2022 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
diff --git a/gcc/common/common-targhooks.c b/gcc/common/common-targhooks.cc
index 325f199..46f5c61 100644
--- a/gcc/common/common-targhooks.c
+++ b/gcc/common/common-targhooks.cc
@@ -1,5 +1,5 @@
/* Default common target hook functions.
- Copyright (C) 2003-2021 Free Software Foundation, Inc.
+ Copyright (C) 2003-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/common-targhooks.h b/gcc/common/common-targhooks.h
index 3f00d2f..cd49c7d 100644
--- a/gcc/common/common-targhooks.h
+++ b/gcc/common/common-targhooks.h
@@ -1,5 +1,5 @@
/* Default common target hook functions.
- Copyright (C) 2003-2021 Free Software Foundation, Inc.
+ Copyright (C) 2003-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/aarch64/aarch64-common.c b/gcc/common/config/aarch64/aarch64-common.cc
index 6d200a1..dfda5b8 100644
--- a/gcc/common/config/aarch64/aarch64-common.c
+++ b/gcc/common/config/aarch64/aarch64-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for AArch64.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
+ Copyright (C) 2012-2022 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GCC.
@@ -71,7 +71,7 @@ static const struct default_options aarch_option_optimization_table[] =
-mcpu=CPU is shorthand for -march=ARCH_FOR_CPU, -mtune=CPU.
If either of -march or -mtune is given, they override their
respective component of -mcpu. This logic is implemented
- in config/aarch64/aarch64.c:aarch64_override_options. */
+ in config/aarch64/aarch64.cc:aarch64_override_options. */
bool
aarch64_handle_option (struct gcc_options *opts,
diff --git a/gcc/common/config/alpha/alpha-common.c b/gcc/common/config/alpha/alpha-common.cc
index 3756ad6..72804ee 100644
--- a/gcc/common/config/alpha/alpha-common.c
+++ b/gcc/common/config/alpha/alpha-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for DEC Alpha.
- Copyright (C) 1992-2021 Free Software Foundation, Inc.
+ Copyright (C) 1992-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.cc
index 3b36d09..e69c4a4 100644
--- a/gcc/common/config/arc/arc-common.c
+++ b/gcc/common/config/arc/arc-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Synopsys DesignWare ARC
- Copyright (C) 1994-2021 Free Software Foundation, Inc.
+ Copyright (C) 1994-2022 Free Software Foundation, Inc.
Contributor: Joern Rennecke <joern.rennecke@embecosm.com>
on behalf of Synopsys Inc.
Claudiu Zissulescu <Claudiu.Zissulescu@synopsys.com>
diff --git a/gcc/common/config/arm/arm-common.c b/gcc/common/config/arm/arm-common.cc
index de898a7..c38812f 100644
--- a/gcc/common/config/arm/arm-common.c
+++ b/gcc/common/config/arm/arm-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for ARM.
- Copyright (C) 1991-2021 Free Software Foundation, Inc.
+ Copyright (C) 1991-2022 Free Software Foundation, Inc.
This file is part of GCC.
@@ -286,7 +286,7 @@ arm_target_mode (int argc, const char **argv)
if (argc % 2 != 0)
fatal_error (input_location,
- "%%:target_mode_check takes an even number of parameters");
+ "%%:%<target_mode_check%> takes an even number of parameters");
while (argc)
{
@@ -295,8 +295,8 @@ arm_target_mode (int argc, const char **argv)
else if (strcmp (argv[0], "cpu") == 0)
cpu = argv[1];
else
- fatal_error (input_location,
- "unrecognized option passed to %%:target_mode_check");
+ fatal_error (input_location, "unrecognized option passed to %%:"
+ "%<target_mode_check%>");
argc -= 2;
argv += 2;
}
@@ -662,7 +662,7 @@ arm_canon_arch_option_1 (int argc, const char **argv, bool arch_for_multilib)
if (argc & 1)
fatal_error (input_location,
- "%%:canon_for_mlib takes 1 or more pairs of parameters");
+ "%%:%<canon_for_mlib%> takes 1 or more pairs of parameters");
while (argc)
{
@@ -676,7 +676,7 @@ arm_canon_arch_option_1 (int argc, const char **argv, bool arch_for_multilib)
abi = argv[1];
else
fatal_error (input_location,
- "unrecognized operand to %%:canon_for_mlib");
+ "unrecognized operand to %%:%<canon_for_mlib%>");
argc -= 2;
argv += 2;
@@ -1032,7 +1032,7 @@ arm_asm_auto_mfpu (int argc, const char **argv)
arch = argv[1];
else
fatal_error (input_location,
- "unrecognized operand to %%:asm_auto_mfpu");
+ "unrecognized operand to %%:%<asm_auto_mfpu%>");
argc -= 2;
argv += 2;
}
@@ -1054,7 +1054,7 @@ arm_asm_auto_mfpu (int argc, const char **argv)
bitmap_and (fpubits, fpubits, target_isa);
/* The logic below is essentially identical to that in
- arm.c:arm_identify_fpu_from_isa(), but that only works in the main
+ arm.cc:arm_identify_fpu_from_isa(), but that only works in the main
part of the compiler. */
/* If there are no FPU capability bits, we just pass -mfpu=softvfp. */
diff --git a/gcc/common/config/avr/avr-common.c b/gcc/common/config/avr/avr-common.cc
index a6939ad..f4e3f55 100644
--- a/gcc/common/config/avr/avr-common.c
+++ b/gcc/common/config/avr/avr-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for ATMEL AVR.
- Copyright (C) 1998-2021 Free Software Foundation, Inc.
+ Copyright (C) 1998-2022 Free Software Foundation, Inc.
This file is part of GCC.
@@ -70,7 +70,7 @@ static const struct default_options avr_option_optimization_table[] =
/* Implement `TARGET_HANDLE_OPTION'. */
-/* This is the same logic that driver-avr.c:avr_double_lib() applies
+/* This is the same logic that driver-avr.cc:avr_double_lib() applies
during DRIVER_SELF_SPECS, but this time we complain about -mdouble=
and -mlong-double= that are not provided by --with-double= resp.
--with-long-double= */
diff --git a/gcc/common/config/bfin/bfin-common.c b/gcc/common/config/bfin/bfin-common.cc
index a3ee4b5..ac31c84 100644
--- a/gcc/common/config/bfin/bfin-common.c
+++ b/gcc/common/config/bfin/bfin-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Blackfin.
- Copyright (C) 2005-2021 Free Software Foundation, Inc.
+ Copyright (C) 2005-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/bpf/bpf-common.c b/gcc/common/config/bpf/bpf-common.cc
index 0f9f404..7d5eabe 100644
--- a/gcc/common/config/bpf/bpf-common.c
+++ b/gcc/common/config/bpf/bpf-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for eBPF.
- Copyright (C) 2019-2021 Free Software Foundation, Inc.
+ Copyright (C) 2019-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/c6x/c6x-common.c b/gcc/common/config/c6x/c6x-common.cc
index 83006ce..c160a37 100644
--- a/gcc/common/config/c6x/c6x-common.c
+++ b/gcc/common/config/c6x/c6x-common.cc
@@ -1,5 +1,5 @@
/* TI C6X common hooks.
- Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ Copyright (C) 2011-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/cr16/cr16-common.c b/gcc/common/config/cr16/cr16-common.cc
index 04ebda0..6d0b2be 100644
--- a/gcc/common/config/cr16/cr16-common.c
+++ b/gcc/common/config/cr16/cr16-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for CR16.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
+ Copyright (C) 2012-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/cris/cris-common.c b/gcc/common/config/cris/cris-common.cc
index a3bf952..46cfee3 100644
--- a/gcc/common/config/cris/cris-common.c
+++ b/gcc/common/config/cris/cris-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for CRIS.
- Copyright (C) 1998-2021 Free Software Foundation, Inc.
+ Copyright (C) 1998-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/csky/csky-common.c b/gcc/common/config/csky/csky-common.cc
index 2f510fb..69f4878 100644
--- a/gcc/common/config/csky/csky-common.c
+++ b/gcc/common/config/csky/csky-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for CSKY.
- Copyright (C) 2018-2021 Free Software Foundation, Inc.
+ Copyright (C) 2018-2022 Free Software Foundation, Inc.
Contributed by C-SKY Microsystems and Mentor Graphics.
This file is part of GCC.
diff --git a/gcc/common/config/default-common.c b/gcc/common/config/default-common.cc
index 8ff0e51..1c204c9 100644
--- a/gcc/common/config/default-common.c
+++ b/gcc/common/config/default-common.cc
@@ -1,5 +1,5 @@
/* Default common target hooks initializer.
- Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ Copyright (C) 2011-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/epiphany/epiphany-common.c b/gcc/common/config/epiphany/epiphany-common.cc
index 4af0fd3..175d5a0 100644
--- a/gcc/common/config/epiphany/epiphany-common.c
+++ b/gcc/common/config/epiphany/epiphany-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Adapteva Epiphany
- Copyright (C) 1994-2021 Free Software Foundation, Inc.
+ Copyright (C) 1994-2022 Free Software Foundation, Inc.
Contributed by Embecosm on behalf of Adapteva, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/fr30/fr30-common.c b/gcc/common/config/fr30/fr30-common.cc
index 74b2d02..4df5175 100644
--- a/gcc/common/config/fr30/fr30-common.c
+++ b/gcc/common/config/fr30/fr30-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for FR30.
- Copyright (C) 1998-2021 Free Software Foundation, Inc.
+ Copyright (C) 1998-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/frv/frv-common.c b/gcc/common/config/frv/frv-common.cc
index 3916f15..ab0fdad 100644
--- a/gcc/common/config/frv/frv-common.c
+++ b/gcc/common/config/frv/frv-common.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-2021 Free Software Foundation, Inc.
+/* Copyright (C) 1997-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/gcn/gcn-common.c b/gcc/common/config/gcn/gcn-common.cc
index 695eb46..7c04bd5 100644
--- a/gcc/common/config/gcn/gcn-common.c
+++ b/gcc/common/config/gcn/gcn-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for GCN
- Copyright (C) 2016-2021 Free Software Foundation, Inc.
+ Copyright (C) 2016-2022 Free Software Foundation, Inc.
This file is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
diff --git a/gcc/common/config/h8300/h8300-common.c b/gcc/common/config/h8300/h8300-common.cc
index 4f26ff9..bfbda22 100644
--- a/gcc/common/config/h8300/h8300-common.c
+++ b/gcc/common/config/h8300/h8300-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Renesas H8/300.
- Copyright (C) 1992-2021 Free Software Foundation, Inc.
+ Copyright (C) 1992-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
index bbf29bdb..61b1a0f 100644
--- a/gcc/common/config/i386/cpuinfo.h
+++ b/gcc/common/config/i386/cpuinfo.h
@@ -1,5 +1,5 @@
/* Get CPU type and Features for x86 processors.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
+ Copyright (C) 2012-2022 Free Software Foundation, Inc.
Contributed by Sriraman Tallam (tmsriram@google.com)
This file is part of GCC.
@@ -415,6 +415,7 @@ get_intel_cpu (struct __processor_model *cpu_model,
cpu_model->__cpu_subtype = INTEL_COREI7_SKYLAKE;
break;
case 0xa7:
+ case 0xa8:
/* Rocket Lake. */
cpu = "rocketlake";
CHECK___builtin_cpu_is ("corei7");
@@ -487,6 +488,7 @@ get_intel_cpu (struct __processor_model *cpu_model,
break;
case 0x97:
case 0x9a:
+ case 0xbf:
/* Alder Lake. */
cpu = "alderlake";
CHECK___builtin_cpu_is ("corei7");
diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.cc
index 2c9e1cc..449df63 100644
--- a/gcc/common/config/i386/i386-common.c
+++ b/gcc/common/config/i386/i386-common.cc
@@ -1,5 +1,5 @@
/* IA-32 common hooks.
- Copyright (C) 1988-2021 Free Software Foundation, Inc.
+ Copyright (C) 1988-2022 Free Software Foundation, Inc.
This file is part of GCC.
@@ -206,7 +206,8 @@ along with GCC; see the file COPYING3. If not see
(OPTION_MASK_ISA_XSAVE | OPTION_MASK_ISA_XSAVEOPT_UNSET \
| OPTION_MASK_ISA_XSAVES_UNSET | OPTION_MASK_ISA_XSAVEC_UNSET \
| OPTION_MASK_ISA_AVX_UNSET)
-#define OPTION_MASK_ISA2_XSAVE_UNSET OPTION_MASK_ISA2_AMX_TILE_UNSET
+#define OPTION_MASK_ISA2_XSAVE_UNSET \
+ (OPTION_MASK_ISA2_AVX2_UNSET | OPTION_MASK_ISA2_AMX_TILE_UNSET)
#define OPTION_MASK_ISA_XSAVEOPT_UNSET OPTION_MASK_ISA_XSAVEOPT
#define OPTION_MASK_ISA_AVX2_UNSET \
(OPTION_MASK_ISA_AVX2 | OPTION_MASK_ISA_AVX512F_UNSET)
@@ -1714,16 +1715,21 @@ ix86_option_init_struct (struct gcc_options *opts)
field in the TCB, so they cannot be used together. */
static bool
-ix86_supports_split_stack (bool report ATTRIBUTE_UNUSED,
+ix86_supports_split_stack (bool report,
struct gcc_options *opts ATTRIBUTE_UNUSED)
{
+#if defined(TARGET_THREAD_SPLIT_STACK_OFFSET) && defined(OPTION_GLIBC_P)
+ if (!OPTION_GLIBC_P (opts))
+#endif
+ {
+ if (report)
+ error ("%<-fsplit-stack%> currently only supported on GNU/Linux");
+ return false;
+ }
+
bool ret = true;
-#ifndef TARGET_THREAD_SPLIT_STACK_OFFSET
- if (report)
- error ("%<-fsplit-stack%> currently only supported on GNU/Linux");
- ret = false;
-#else
+#ifdef TARGET_THREAD_SPLIT_STACK_OFFSET
if (!HAVE_GAS_CFI_PERSONALITY_DIRECTIVE)
{
if (report)
diff --git a/gcc/common/config/i386/i386-cpuinfo.h b/gcc/common/config/i386/i386-cpuinfo.h
index dc1a9fa..3f6d201 100644
--- a/gcc/common/config/i386/i386-cpuinfo.h
+++ b/gcc/common/config/i386/i386-cpuinfo.h
@@ -1,5 +1,5 @@
/* Get CPU type and Features for x86 processors.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
+ Copyright (C) 2012-2022 Free Software Foundation, Inc.
Contributed by Sriraman Tallam (tmsriram@google.com)
This file is part of GCC.
diff --git a/gcc/common/config/i386/i386-isas.h b/gcc/common/config/i386/i386-isas.h
index 7784010..2d0646a 100644
--- a/gcc/common/config/i386/i386-isas.h
+++ b/gcc/common/config/i386/i386-isas.h
@@ -1,5 +1,5 @@
/* i386 ISA table.
- Copyright (C) 2020-2021 Free Software Foundation, Inc.
+ Copyright (C) 2020-2022 Free Software Foundation, Inc.
This file is part of GCC.
@@ -27,9 +27,9 @@ struct _isa_names_table
const char *const option;
};
-/* NB: isa_names_table is shared by i386-builtins.c, driver-i386.c and
+/* NB: isa_names_table is shared by i386-builtins.cc, driver-i386.cc and
gcc.target/i386/builtin_target.c. isa_names_table is a static const
- array in i386-builtins.c and driver-i386.c. But it is a list of
+ array in i386-builtins.cc and driver-i386.cc. But it is a list of
assert statements in gcc.target/i386/builtin_target.c. */
#ifndef ISA_NAMES_TABLE_START
diff --git a/gcc/common/config/ia64/ia64-common.c b/gcc/common/config/ia64/ia64-common.cc
index 8cf0cbf..6da01ab 100644
--- a/gcc/common/config/ia64/ia64-common.c
+++ b/gcc/common/config/ia64/ia64-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for IA64.
- Copyright (C) 1999-2021 Free Software Foundation, Inc.
+ Copyright (C) 1999-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/iq2000/iq2000-common.c b/gcc/common/config/iq2000/iq2000-common.cc
index da4fd42..576949d 100644
--- a/gcc/common/config/iq2000/iq2000-common.c
+++ b/gcc/common/config/iq2000/iq2000-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Vitesse IQ2000.
- Copyright (C) 2003-2021 Free Software Foundation, Inc.
+ Copyright (C) 2003-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/lm32/lm32-common.c b/gcc/common/config/lm32/lm32-common.cc
index cb6863b..cdf2d14 100644
--- a/gcc/common/config/lm32/lm32-common.c
+++ b/gcc/common/config/lm32/lm32-common.cc
@@ -1,6 +1,6 @@
/* Common hooks for Lattice Mico32.
- Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ Copyright (C) 2009-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/m32r/m32r-common.c b/gcc/common/config/m32r/m32r-common.cc
index 0527df6..9592097 100644
--- a/gcc/common/config/m32r/m32r-common.c
+++ b/gcc/common/config/m32r/m32r-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Renesas M32R.
- Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ Copyright (C) 1996-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/m68k/m68k-common.c b/gcc/common/config/m68k/m68k-common.cc
index 6a9cd18..f5ea217 100644
--- a/gcc/common/config/m68k/m68k-common.c
+++ b/gcc/common/config/m68k/m68k-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Motorola 68000 family.
- Copyright (C) 1987-2021 Free Software Foundation, Inc.
+ Copyright (C) 1987-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/mcore/mcore-common.c b/gcc/common/config/mcore/mcore-common.cc
index 4eabb55..8c12299 100644
--- a/gcc/common/config/mcore/mcore-common.c
+++ b/gcc/common/config/mcore/mcore-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Motorola MCore.
- Copyright (C) 1993-2021 Free Software Foundation, Inc.
+ Copyright (C) 1993-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/microblaze/microblaze-common.c b/gcc/common/config/microblaze/microblaze-common.cc
index 1e4abb3..21b35f5 100644
--- a/gcc/common/config/microblaze/microblaze-common.c
+++ b/gcc/common/config/microblaze/microblaze-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Xilinx MicroBlaze.
- Copyright (C) 2009-2021 Free Software Foundation, Inc.
+ Copyright (C) 2009-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/mips/mips-common.c b/gcc/common/config/mips/mips-common.cc
index 502dc06..b8ee4f3 100644
--- a/gcc/common/config/mips/mips-common.c
+++ b/gcc/common/config/mips/mips-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for MIPS.
- Copyright (C) 1989-2021 Free Software Foundation, Inc.
+ Copyright (C) 1989-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/mmix/mmix-common.c b/gcc/common/config/mmix/mmix-common.cc
index 3fffc05..fd91ece 100644
--- a/gcc/common/config/mmix/mmix-common.c
+++ b/gcc/common/config/mmix/mmix-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for MMIX.
- Copyright (C) 2000-2021 Free Software Foundation, Inc.
+ Copyright (C) 2000-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/mn10300/mn10300-common.c b/gcc/common/config/mn10300/mn10300-common.cc
index 103b1c8..a0a3a25 100644
--- a/gcc/common/config/mn10300/mn10300-common.c
+++ b/gcc/common/config/mn10300/mn10300-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Matsushita MN10300 series.
- Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ Copyright (C) 1996-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/msp430/msp430-common.c b/gcc/common/config/msp430/msp430-common.cc
index fe40b7d..7da7390 100644
--- a/gcc/common/config/msp430/msp430-common.c
+++ b/gcc/common/config/msp430/msp430-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Texas Instruments MSP430.
- Copyright (C) 2014-2021 Free Software Foundation, Inc.
+ Copyright (C) 2014-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/nds32/nds32-common.c b/gcc/common/config/nds32/nds32-common.cc
index 7c89cc5..a2ce0bb 100644
--- a/gcc/common/config/nds32/nds32-common.c
+++ b/gcc/common/config/nds32/nds32-common.cc
@@ -1,5 +1,5 @@
/* Common hooks of Andes NDS32 cpu for GNU compiler
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
+ Copyright (C) 2012-2022 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GCC.
diff --git a/gcc/common/config/nios2/nios2-common.c b/gcc/common/config/nios2/nios2-common.cc
index 8646bb1..3a2e481 100644
--- a/gcc/common/config/nios2/nios2-common.c
+++ b/gcc/common/config/nios2/nios2-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Altera Nios II.
- Copyright (C) 2012-2021 Free Software Foundation, Inc.
+ Copyright (C) 2012-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/nvptx/nvptx-common.c b/gcc/common/config/nvptx/nvptx-common.cc
index 7dcbed8..6d434b9 100644
--- a/gcc/common/config/nvptx/nvptx-common.c
+++ b/gcc/common/config/nvptx/nvptx-common.cc
@@ -1,5 +1,5 @@
/* NVPTX common hooks.
- Copyright (C) 2014-2021 Free Software Foundation, Inc.
+ Copyright (C) 2014-2022 Free Software Foundation, Inc.
Contributed by Bernd Schmidt <bernds@codesourcery.com>
This file is part of GCC.
diff --git a/gcc/common/config/or1k/or1k-common.c b/gcc/common/config/or1k/or1k-common.cc
index 559eb07..075851e 100644
--- a/gcc/common/config/or1k/or1k-common.c
+++ b/gcc/common/config/or1k/or1k-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for OpenRISC
- Copyright (C) 2018-2021 Free Software Foundation, Inc.
+ Copyright (C) 2018-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/pa/pa-common.c b/gcc/common/config/pa/pa-common.cc
index ad83720..cee2b5b 100644
--- a/gcc/common/config/pa/pa-common.c
+++ b/gcc/common/config/pa/pa-common.cc
@@ -1,5 +1,5 @@
/* HPPA common hooks.
- Copyright (C) 1992-2021 Free Software Foundation, Inc.
+ Copyright (C) 1992-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/pdp11/pdp11-common.c b/gcc/common/config/pdp11/pdp11-common.cc
index 72d7eed..81a57bb 100644
--- a/gcc/common/config/pdp11/pdp11-common.c
+++ b/gcc/common/config/pdp11/pdp11-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for pdp11.
- Copyright (C) 1994-2021 Free Software Foundation, Inc.
+ Copyright (C) 1994-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/pru/pru-common.c b/gcc/common/config/pru/pru-common.cc
index bc80a02..3e37fe8 100644
--- a/gcc/common/config/pru/pru-common.c
+++ b/gcc/common/config/pru/pru-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for TI PRU
- Copyright (C) 2014-2021 Free Software Foundation, Inc.
+ Copyright (C) 2014-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.cc
index 37b6ea8..a904893 100644
--- a/gcc/common/config/riscv/riscv-common.c
+++ b/gcc/common/config/riscv/riscv-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for RISC-V.
- Copyright (C) 2016-2021 Free Software Foundation, Inc.
+ Copyright (C) 2016-2022 Free Software Foundation, Inc.
This file is part of GCC.
@@ -50,6 +50,52 @@ static const riscv_implied_info_t riscv_implied_info[] =
{"d", "f"},
{"f", "zicsr"},
{"d", "zicsr"},
+ {"zk", "zkn"},
+ {"zk", "zkr"},
+ {"zk", "zkt"},
+ {"zkn", "zbkb"},
+ {"zkn", "zbkc"},
+ {"zkn", "zbkx"},
+ {"zkn", "zkne"},
+ {"zkn", "zknd"},
+ {"zkn", "zknh"},
+ {"zks", "zbkb"},
+ {"zks", "zbkc"},
+ {"zks", "zbkx"},
+ {"zks", "zksed"},
+ {"zks", "zksh"},
+
+ {"v", "zvl128b"},
+ {"v", "zve64d"},
+
+ {"zve32f", "f"},
+ {"zve64f", "f"},
+ {"zve64d", "d"},
+
+ {"zve32x", "zvl32b"},
+ {"zve32f", "zve32x"},
+ {"zve32f", "zvl32b"},
+
+ {"zve64x", "zve32x"},
+ {"zve64x", "zvl64b"},
+ {"zve64f", "zve32f"},
+ {"zve64f", "zve64x"},
+ {"zve64f", "zvl64b"},
+ {"zve64d", "zve64f"},
+ {"zve64d", "zvl64b"},
+
+ {"zvl64b", "zvl32b"},
+ {"zvl128b", "zvl64b"},
+ {"zvl256b", "zvl128b"},
+ {"zvl512b", "zvl256b"},
+ {"zvl1024b", "zvl512b"},
+ {"zvl2048b", "zvl1024b"},
+ {"zvl4096b", "zvl2048b"},
+ {"zvl8192b", "zvl4096b"},
+ {"zvl16384b", "zvl8192b"},
+ {"zvl32768b", "zvl16384b"},
+ {"zvl65536b", "zvl32768b"},
+
{NULL, NULL}
};
@@ -95,6 +141,8 @@ static const struct riscv_ext_version riscv_ext_version_table[] =
{"c", ISA_SPEC_CLASS_20190608, 2, 0},
{"c", ISA_SPEC_CLASS_2P2, 2, 0},
+ {"v", ISA_SPEC_CLASS_NONE, 1, 0},
+
{"zicsr", ISA_SPEC_CLASS_20191213, 2, 0},
{"zicsr", ISA_SPEC_CLASS_20190608, 2, 0},
@@ -106,6 +154,37 @@ static const struct riscv_ext_version riscv_ext_version_table[] =
{"zbc", ISA_SPEC_CLASS_NONE, 1, 0},
{"zbs", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zbkb", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zbkc", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zbkx", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zkne", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zknd", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zknh", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zkr", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zksed", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zksh", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zkt", ISA_SPEC_CLASS_NONE, 1, 0},
+
+ {"zve32x", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zve32f", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zve32d", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zve64x", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zve64f", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zve64d", ISA_SPEC_CLASS_NONE, 1, 0},
+
+ {"zvl32b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl64b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl128b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl256b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl512b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl1024b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl2048b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl4096b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl8192b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl16384b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl32768b", ISA_SPEC_CLASS_NONE, 1, 0},
+ {"zvl65536b", ISA_SPEC_CLASS_NONE, 1, 0},
+
/* Terminate the list. */
{NULL, ISA_SPEC_CLASS_NONE, 0, 0}
};
@@ -202,7 +281,6 @@ multi_letter_subset_rank (const std::string &subset)
high_order = 1;
break;
case 'z':
- gcc_assert (subset.length () > 2);
high_order = 2;
break;
case 'x':
@@ -297,7 +375,7 @@ riscv_subset_list::add (const char *subset, int major_version,
else
error_at (
m_loc,
- "%<-march=%s%>: Extension `%s' appear more than one time.",
+ "%<-march=%s%>: extension %qs appear more than one time",
m_arch,
subset);
@@ -410,6 +488,7 @@ riscv_subset_list::to_string (bool version_p) const
bool skip_zifencei = false;
bool skip_zicsr = false;
+ bool i2p0 = false;
/* For RISC-V ISA version 2.2 or earlier version, zicsr and zifencei is
included in the base ISA. */
@@ -419,11 +498,18 @@ riscv_subset_list::to_string (bool version_p) const
skip_zicsr = true;
}
+ for (subset = m_head; subset != NULL; subset = subset->next)
+ if (subset->name == "i")
+ {
+ i2p0 = subset->major_version == 2 && subset->minor_version == 0;
+ break;
+ }
+
#ifndef HAVE_AS_MISA_SPEC
/* Skip since older binutils doesn't recognize zicsr. */
skip_zicsr = true;
#endif
-#ifndef HAVE_AS_MARCH_ZIFENCE
+#ifndef HAVE_AS_MARCH_ZIFENCEI
/* Skip since older binutils doesn't recognize zifencei, we made
a mistake in that binutils 2.35 supports zicsr but not zifencei. */
skip_zifencei = true;
@@ -431,10 +517,12 @@ riscv_subset_list::to_string (bool version_p) const
for (subset = m_head; subset != NULL; subset = subset->next)
{
- if (subset->implied_p && skip_zifencei && subset->name == "zifencei")
+ if (((subset->implied_p && skip_zifencei) || i2p0) &&
+ subset->name == "zifencei")
continue;
- if (subset->implied_p && skip_zicsr && subset->name == "zicsr")
+ if (((subset->implied_p && skip_zicsr) || i2p0) &&
+ subset->name == "zicsr")
continue;
/* For !version_p, we only separate extension with underline for
@@ -492,7 +580,7 @@ riscv_subset_list::lookup (const char *subset, int major_version,
static const char *
riscv_supported_std_ext (void)
{
- return "mafdqlcbjtpvn";
+ return "mafdqlcbjktpvn";
}
/* Parsing subset version.
@@ -535,14 +623,14 @@ riscv_subset_list::parsing_subset_version (const char *ext,
{
if (!ISDIGIT (*(p+1)))
{
- error_at (m_loc, "%<-march=%s%>: Expect number "
- "after %<%dp%>.", m_arch, version);
+ error_at (m_loc, "%<-march=%s%>: expect number "
+ "after %<%dp%>", m_arch, version);
return NULL;
}
if (!major_p)
{
- error_at (m_loc, "%<-march=%s%>: For %<%s%dp%dp?%>, version "
- "number with more than 2 level is not supported.",
+ error_at (m_loc, "%<-march=%s%>: for %<%s%dp%dp?%>, version "
+ "number with more than 2 level is not supported",
m_arch, ext, major, version);
return NULL;
}
@@ -623,8 +711,8 @@ riscv_subset_list::parse_std_ext (const char *p)
/* std_ext_p= */ true, &explicit_version_p);
if (major_version != 0 || minor_version != 0)
{
- warning_at (m_loc, 0, "version of `g` will be omitted, please "
- "specify version for individual extension.");
+ warning_at (m_loc, 0, "version of %<g%> will be omitted, please "
+ "specify version for individual extension");
}
/* We have special rule for G, we disallow rv32gm2p but allow rv32g_zicsr
@@ -761,24 +849,58 @@ riscv_subset_list::parse_multiletter_ext (const char *p,
bool explicit_version_p = false;
char *ext;
char backup;
+ size_t len;
+ size_t end_of_version_pos, i;
+ bool found_any_number = false;
+ bool found_minor_version = false;
- while (*++q != '\0' && *q != '_' && !ISDIGIT (*q))
+ /* Parse until end of this extension including version number. */
+ while (*++q != '\0' && *q != '_')
;
backup = *q;
*q = '\0';
- ext = xstrdup (subset);
+ len = q - subset;
*q = backup;
+ end_of_version_pos = len;
+ /* Find the begin of version string. */
+ for (i = len -1; i > 0; --i)
+ {
+ if (ISDIGIT (subset[i]))
+ {
+ found_any_number = true;
+ continue;
+ }
+ /* Might be version seperator, but need to check one more char,
+ we only allow <major>p<minor>, so we could stop parsing if found
+ any more `p`. */
+ if (subset[i] == 'p' &&
+ !found_minor_version &&
+ found_any_number && ISDIGIT (subset[i-1]))
+ {
+ found_minor_version = true;
+ continue;
+ }
+
+ end_of_version_pos = i + 1;
+ break;
+ }
+
+ backup = subset[end_of_version_pos];
+ subset[end_of_version_pos] = '\0';
+ ext = xstrdup (subset);
+ subset[end_of_version_pos] = backup;
+
end_of_version
- = parsing_subset_version (ext, q, &major_version, &minor_version,
+ = parsing_subset_version (ext, subset + end_of_version_pos, &major_version, &minor_version,
/* std_ext_p= */ false, &explicit_version_p);
free (ext);
if (end_of_version == NULL)
return NULL;
- *q = '\0';
+ subset[end_of_version_pos] = '\0';
if (strlen (subset) == 1)
{
@@ -789,12 +911,12 @@ riscv_subset_list::parse_multiletter_ext (const char *p,
}
add (subset, major_version, minor_version, explicit_version_p, false);
- free (subset);
p += end_of_version - subset;
+ free (subset);
if (*p != '\0' && *p != '_')
{
- error_at (m_loc, "%<-march=%s%>: %s must separate with _",
+ error_at (m_loc, "%<-march=%s%>: %s must separate with %<_%>",
m_arch, ext_type_str);
return NULL;
}
@@ -907,6 +1029,7 @@ static const riscv_ext_flag_table_t riscv_ext_flag_table[] =
{"f", &gcc_options::x_target_flags, MASK_HARD_FLOAT},
{"d", &gcc_options::x_target_flags, MASK_DOUBLE_FLOAT},
{"c", &gcc_options::x_target_flags, MASK_RVC},
+ {"v", &gcc_options::x_target_flags, MASK_VECTOR},
{"zicsr", &gcc_options::x_riscv_zi_subext, MASK_ZICSR},
{"zifencei", &gcc_options::x_riscv_zi_subext, MASK_ZIFENCEI},
@@ -916,6 +1039,48 @@ static const riscv_ext_flag_table_t riscv_ext_flag_table[] =
{"zbc", &gcc_options::x_riscv_zb_subext, MASK_ZBC},
{"zbs", &gcc_options::x_riscv_zb_subext, MASK_ZBS},
+ {"zbkb", &gcc_options::x_riscv_zk_subext, MASK_ZBKB},
+ {"zbkc", &gcc_options::x_riscv_zk_subext, MASK_ZBKC},
+ {"zbkx", &gcc_options::x_riscv_zk_subext, MASK_ZBKX},
+ {"zknd", &gcc_options::x_riscv_zk_subext, MASK_ZKND},
+ {"zkne", &gcc_options::x_riscv_zk_subext, MASK_ZKNE},
+ {"zknh", &gcc_options::x_riscv_zk_subext, MASK_ZKNH},
+ {"zkr", &gcc_options::x_riscv_zk_subext, MASK_ZKR},
+ {"zksed", &gcc_options::x_riscv_zk_subext, MASK_ZKSED},
+ {"zksh", &gcc_options::x_riscv_zk_subext, MASK_ZKSH},
+ {"zkt", &gcc_options::x_riscv_zk_subext, MASK_ZKT},
+
+ {"zve32x", &gcc_options::x_target_flags, MASK_VECTOR},
+ {"zve32f", &gcc_options::x_target_flags, MASK_VECTOR},
+ {"zve64x", &gcc_options::x_target_flags, MASK_VECTOR},
+ {"zve64f", &gcc_options::x_target_flags, MASK_VECTOR},
+ {"zve64d", &gcc_options::x_target_flags, MASK_VECTOR},
+
+ /* We don't need to put complete EEW/EEW_FP info here, due to the
+ implication relation of vector extension.
+ e.g. v -> zve64d ... zve32x, so v has set MASK_VECTOR_EEW_FP_64,
+ MASK_VECTOR_EEW_FP_32, MASK_VECTOR_EEW_64 and MASK_VECTOR_EEW_32
+ due to the extension implication. */
+ {"zve32x", &gcc_options::x_riscv_vector_eew_flags, MASK_VECTOR_EEW_32},
+ {"zve32f", &gcc_options::x_riscv_vector_eew_flags, MASK_VECTOR_EEW_FP_32},
+ {"zve64x", &gcc_options::x_riscv_vector_eew_flags, MASK_VECTOR_EEW_64},
+ {"zve64f", &gcc_options::x_riscv_vector_eew_flags, MASK_VECTOR_EEW_FP_32},
+ {"zve64d", &gcc_options::x_riscv_vector_eew_flags, MASK_VECTOR_EEW_FP_64},
+
+ {"zvl32b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL32B},
+ {"zvl64b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL64B},
+ {"zvl128b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL128B},
+ {"zvl256b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL256B},
+ {"zvl512b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL512B},
+ {"zvl1024b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL1024B},
+ {"zvl2048b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL2048B},
+ {"zvl4096b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL4096B},
+ {"zvl8192b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL8192B},
+ {"zvl16384b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL16384B},
+ {"zvl32768b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL32768B},
+ {"zvl65536b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL65536B},
+
+
{NULL, NULL, 0}
};
diff --git a/gcc/common/config/rs6000/rs6000-common.c b/gcc/common/config/rs6000/rs6000-common.cc
index 80abdf3..97dff3a 100644
--- a/gcc/common/config/rs6000/rs6000-common.c
+++ b/gcc/common/config/rs6000/rs6000-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for IBM RS/6000.
- Copyright (C) 1991-2021 Free Software Foundation, Inc.
+ Copyright (C) 1991-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/rx/rx-common.c b/gcc/common/config/rx/rx-common.cc
index edcc2ce..36ee9d2 100644
--- a/gcc/common/config/rx/rx-common.c
+++ b/gcc/common/config/rx/rx-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Renesas RX.
- Copyright (C) 2008-2021 Free Software Foundation, Inc.
+ Copyright (C) 2008-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/s390/s390-common.c b/gcc/common/config/s390/s390-common.cc
index b6bc850..caec2f1 100644
--- a/gcc/common/config/s390/s390-common.c
+++ b/gcc/common/config/s390/s390-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for IBM S/390 and zSeries.
- Copyright (C) 1999-2021 Free Software Foundation, Inc.
+ Copyright (C) 1999-2022 Free Software Foundation, Inc.
This file is part of GCC.
@@ -116,13 +116,21 @@ s390_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED,
/* -fsplit-stack uses a field in the TCB, available with glibc-2.23.
We don't verify it, since earlier versions just have padding at
- its place, which works just as well. */
+ its place, which works just as well. For other libc implementations
+ we disable the feature entirely to avoid corrupting the TCB. */
static bool
-s390_supports_split_stack (bool report ATTRIBUTE_UNUSED,
+s390_supports_split_stack (bool report,
struct gcc_options *opts ATTRIBUTE_UNUSED)
{
- return true;
+#ifdef OPTION_GLIBC_P
+ if (OPTION_GLIBC_P (opts))
+ return true;
+#endif
+
+ if (report)
+ error ("%<-fsplit-stack%> currently only supported on GNU/Linux");
+ return false;
}
#undef TARGET_DEFAULT_TARGET_FLAGS
diff --git a/gcc/common/config/sh/sh-common.c b/gcc/common/config/sh/sh-common.cc
index 622c623..b6c62f7 100644
--- a/gcc/common/config/sh/sh-common.c
+++ b/gcc/common/config/sh/sh-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Renesas / SuperH SH.
- Copyright (C) 1993-2021 Free Software Foundation, Inc.
+ Copyright (C) 1993-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/sparc/sparc-common.c b/gcc/common/config/sparc/sparc-common.cc
index 491b2db..c075e64 100644
--- a/gcc/common/config/sparc/sparc-common.c
+++ b/gcc/common/config/sparc/sparc-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for SPARC.
- Copyright (C) 1987-2021 Free Software Foundation, Inc.
+ Copyright (C) 1987-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/tilegx/tilegx-common.c b/gcc/common/config/tilegx/tilegx-common.cc
index ef87bd0..3d33b7b 100644
--- a/gcc/common/config/tilegx/tilegx-common.c
+++ b/gcc/common/config/tilegx/tilegx-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for TILE-Gx.
- Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ Copyright (C) 2011-2022 Free Software Foundation, Inc.
Contributed by Walter Lee (walt@tilera.com)
This file is part of GCC.
diff --git a/gcc/common/config/tilepro/tilepro-common.c b/gcc/common/config/tilepro/tilepro-common.cc
index 7a1c5f9..8e09736 100644
--- a/gcc/common/config/tilepro/tilepro-common.c
+++ b/gcc/common/config/tilepro/tilepro-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for TILEPro.
- Copyright (C) 2011-2021 Free Software Foundation, Inc.
+ Copyright (C) 2011-2022 Free Software Foundation, Inc.
Contributed by Walter Lee (walt@tilera.com)
This file is part of GCC.
diff --git a/gcc/common/config/v850/v850-common.c b/gcc/common/config/v850/v850-common.cc
index 33031f4..830bf7f 100644
--- a/gcc/common/config/v850/v850-common.c
+++ b/gcc/common/config/v850/v850-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for NEC V850 series.
- Copyright (C) 1996-2021 Free Software Foundation, Inc.
+ Copyright (C) 1996-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/vax/vax-common.c b/gcc/common/config/vax/vax-common.cc
index 19d024a..58f172e 100644
--- a/gcc/common/config/vax/vax-common.c
+++ b/gcc/common/config/vax/vax-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for VAX.
- Copyright (C) 1987-2021 Free Software Foundation, Inc.
+ Copyright (C) 1987-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/visium/visium-common.c b/gcc/common/config/visium/visium-common.cc
index 92ab88f..28dd1ff 100644
--- a/gcc/common/config/visium/visium-common.c
+++ b/gcc/common/config/visium/visium-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Visium.
- Copyright (C) 2002-2021 Free Software Foundation, Inc.
+ Copyright (C) 2002-2022 Free Software Foundation, Inc.
Contributed by C.Nettleton,J.P.Parkes and P.Garbett.
This file is part of GCC.
diff --git a/gcc/common/config/xstormy16/xstormy16-common.c b/gcc/common/config/xstormy16/xstormy16-common.cc
index a3b2a82..83414d8 100644
--- a/gcc/common/config/xstormy16/xstormy16-common.c
+++ b/gcc/common/config/xstormy16/xstormy16-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Xstormy16.
- Copyright (C) 1997-2021 Free Software Foundation, Inc.
+ Copyright (C) 1997-2022 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/common/config/xtensa/xtensa-common.c b/gcc/common/config/xtensa/xtensa-common.cc
index e0a3596..fbbe9b0 100644
--- a/gcc/common/config/xtensa/xtensa-common.c
+++ b/gcc/common/config/xtensa/xtensa-common.cc
@@ -1,5 +1,5 @@
/* Common hooks for Tensilica's Xtensa architecture.
- Copyright (C) 2001-2021 Free Software Foundation, Inc.
+ Copyright (C) 2001-2022 Free Software Foundation, Inc.
This file is part of GCC.