aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/sparc
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2023-03-29 09:01:23 -0700
committerIan Lance Taylor <iant@golang.org>2023-03-29 09:01:23 -0700
commit6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced (patch)
tree1deecdcfbf185c7044bc861d0ace51285c96cb62 /gcc/config/sparc
parent795cffe109e28b248a54b8ee583cbae48368c2a7 (diff)
parentaa8f4242efc99f24de73c59d53996f28db28c13f (diff)
downloadgcc-6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced.zip
gcc-6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced.tar.gz
gcc-6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced.tar.bz2
Merge from trunk revision aa8f4242efc99f24de73c59d53996f28db28c13f.
Diffstat (limited to 'gcc/config/sparc')
-rw-r--r--gcc/config/sparc/biarch64.h2
-rw-r--r--gcc/config/sparc/constraints.md2
-rw-r--r--gcc/config/sparc/cypress.md2
-rw-r--r--gcc/config/sparc/default64.h2
-rw-r--r--gcc/config/sparc/driver-sparc.cc2
-rw-r--r--gcc/config/sparc/freebsd.h4
-rw-r--r--gcc/config/sparc/hypersparc.md2
-rw-r--r--gcc/config/sparc/leon.md2
-rw-r--r--gcc/config/sparc/leon5.md2
-rw-r--r--gcc/config/sparc/linux.h4
-rw-r--r--gcc/config/sparc/linux64.h4
-rw-r--r--gcc/config/sparc/long-double-switch.opt2
-rw-r--r--gcc/config/sparc/m8.md2
-rw-r--r--gcc/config/sparc/netbsd-elf.h2
-rw-r--r--gcc/config/sparc/niagara.md2
-rw-r--r--gcc/config/sparc/niagara2.md2
-rw-r--r--gcc/config/sparc/niagara4.md2
-rw-r--r--gcc/config/sparc/niagara7.md2
-rw-r--r--gcc/config/sparc/openbsd1-64.h2
-rw-r--r--gcc/config/sparc/openbsd64.h2
-rw-r--r--gcc/config/sparc/predicates.md2
-rw-r--r--gcc/config/sparc/rtemself.h2
-rw-r--r--gcc/config/sparc/sol2.h2
-rw-r--r--gcc/config/sparc/sp-elf.h4
-rw-r--r--gcc/config/sparc/sp64-elf.h4
-rw-r--r--gcc/config/sparc/sparc-c.cc2
-rw-r--r--gcc/config/sparc/sparc-d.cc2
-rw-r--r--gcc/config/sparc/sparc-d.h2
-rw-r--r--gcc/config/sparc/sparc-modes.def2
-rw-r--r--gcc/config/sparc/sparc-opts.h2
-rw-r--r--gcc/config/sparc/sparc-passes.def2
-rw-r--r--gcc/config/sparc/sparc-protos.h2
-rw-r--r--gcc/config/sparc/sparc.cc32
-rw-r--r--gcc/config/sparc/sparc.h2
-rw-r--r--gcc/config/sparc/sparc.md64
-rw-r--r--gcc/config/sparc/sparc.opt2
-rw-r--r--gcc/config/sparc/sparclet.md2
-rw-r--r--gcc/config/sparc/supersparc.md2
-rw-r--r--gcc/config/sparc/sync.md2
-rw-r--r--gcc/config/sparc/sysv4.h2
-rw-r--r--gcc/config/sparc/t-elf2
-rw-r--r--gcc/config/sparc/t-leon2
-rw-r--r--gcc/config/sparc/t-leon32
-rw-r--r--gcc/config/sparc/t-linux642
-rw-r--r--gcc/config/sparc/t-rtems2
-rw-r--r--gcc/config/sparc/t-rtems-642
-rw-r--r--gcc/config/sparc/t-sparc2
-rw-r--r--gcc/config/sparc/tso.h2
-rw-r--r--gcc/config/sparc/ultra1_2.md2
-rw-r--r--gcc/config/sparc/ultra3.md2
-rw-r--r--gcc/config/sparc/visintrin.h2
-rw-r--r--gcc/config/sparc/vxworks.h2
52 files changed, 115 insertions, 91 deletions
diff --git a/gcc/config/sparc/biarch64.h b/gcc/config/sparc/biarch64.h
index 242b79d..c0a0934 100644
--- a/gcc/config/sparc/biarch64.h
+++ b/gcc/config/sparc/biarch64.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GCC, for Sun SPARC.
- Copyright (C) 2001-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2023 Free Software Foundation, Inc.
Contributed by David E. O'Brien <obrien@FreeBSD.org>.
This file is part of GCC.
diff --git a/gcc/config/sparc/constraints.md b/gcc/config/sparc/constraints.md
index fc452b6..050cdb1 100644
--- a/gcc/config/sparc/constraints.md
+++ b/gcc/config/sparc/constraints.md
@@ -1,5 +1,5 @@
;; Constraint definitions for SPARC.
-;; Copyright (C) 2008-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/cypress.md b/gcc/config/sparc/cypress.md
index c0eed00..435aea3 100644
--- a/gcc/config/sparc/cypress.md
+++ b/gcc/config/sparc/cypress.md
@@ -1,5 +1,5 @@
;; Scheduling description for SPARC Cypress.
-;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/default64.h b/gcc/config/sparc/default64.h
index 3c6ad56..e42057e 100644
--- a/gcc/config/sparc/default64.h
+++ b/gcc/config/sparc/default64.h
@@ -1,7 +1,7 @@
/* Definitions of target machine for GCC, for bi-arch SPARC,
defaulting to 64-bit code generation.
- Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ Copyright (C) 1999-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/driver-sparc.cc b/gcc/config/sparc/driver-sparc.cc
index 73088e9..bd3e763 100644
--- a/gcc/config/sparc/driver-sparc.cc
+++ b/gcc/config/sparc/driver-sparc.cc
@@ -1,5 +1,5 @@
/* Subroutines for the gcc driver.
- Copyright (C) 2011-2022 Free Software Foundation, Inc.
+ Copyright (C) 2011-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/freebsd.h b/gcc/config/sparc/freebsd.h
index 73850a3..f77203c 100644
--- a/gcc/config/sparc/freebsd.h
+++ b/gcc/config/sparc/freebsd.h
@@ -1,5 +1,5 @@
/* Definitions for Sun SPARC64 running FreeBSD using the ELF format
- Copyright (C) 2001-2022 Free Software Foundation, Inc.
+ Copyright (C) 2001-2023 Free Software Foundation, Inc.
Contributed by David E. O'Brien <obrien@FreeBSD.org> and BSDi.
This file is part of GCC.
@@ -127,7 +127,7 @@ along with GCC; see the file COPYING3. If not see
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
- "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} " \
+ "%{Ofast|ffast-math|funsafe-math-optimizations:%{!shared:crtfastmath.o%s}} " \
FBSD_ENDFILE_SPEC
/* We use GNU ld so undefine this so that attribute((init_priority)) works. */
diff --git a/gcc/config/sparc/hypersparc.md b/gcc/config/sparc/hypersparc.md
index c423026..02b2a60 100644
--- a/gcc/config/sparc/hypersparc.md
+++ b/gcc/config/sparc/hypersparc.md
@@ -1,5 +1,5 @@
;; Scheduling description for HyperSPARC.
-;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/leon.md b/gcc/config/sparc/leon.md
index 9bb7b19..737cb93 100644
--- a/gcc/config/sparc/leon.md
+++ b/gcc/config/sparc/leon.md
@@ -1,5 +1,5 @@
;; Scheduling description for LEON.
-;; Copyright (C) 2010-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/leon5.md b/gcc/config/sparc/leon5.md
index 0945fae..e61e267 100644
--- a/gcc/config/sparc/leon5.md
+++ b/gcc/config/sparc/leon5.md
@@ -1,5 +1,5 @@
;; Scheduling description for LEON5.
-;; Copyright (C) 2021-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2021-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
index 6a809e9..0e33b3c 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -1,5 +1,5 @@
/* Definitions for SPARC running Linux-based GNU systems with ELF.
- Copyright (C) 1996-2022 Free Software Foundation, Inc.
+ Copyright (C) 1996-2023 Free Software Foundation, Inc.
Contributed by Eddie C. Dost (ecd@skynet.be)
This file is part of GCC.
@@ -30,7 +30,7 @@ along with GCC; see the file COPYING3. If not see
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
GNU_USER_TARGET_ENDFILE_SPEC \
- "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
+ "%{Ofast|ffast-math|funsafe-math-optimizations:%{!shared:crtfastmath.o%s}}"
/* -mcpu=native handling only makes sense with compiler running on
a SPARC chip. */
diff --git a/gcc/config/sparc/linux64.h b/gcc/config/sparc/linux64.h
index d08a2ef..f1cc0a1 100644
--- a/gcc/config/sparc/linux64.h
+++ b/gcc/config/sparc/linux64.h
@@ -1,5 +1,5 @@
/* Definitions for 64-bit SPARC running Linux-based GNU systems with ELF.
- Copyright (C) 1996-2022 Free Software Foundation, Inc.
+ Copyright (C) 1996-2023 Free Software Foundation, Inc.
Contributed by David S. Miller (davem@caip.rutgers.edu)
This file is part of GCC.
@@ -47,7 +47,7 @@ along with GCC; see the file COPYING3. If not see
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
GNU_USER_TARGET_ENDFILE_SPEC \
- "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}"
+ "%{Ofast|ffast-math|funsafe-math-optimizations:%{!shared:crtfastmath.o%s}}"
/* The default code model. */
#undef SPARC_DEFAULT_CMODEL
diff --git a/gcc/config/sparc/long-double-switch.opt b/gcc/config/sparc/long-double-switch.opt
index ba3ca9a..77338e0 100644
--- a/gcc/config/sparc/long-double-switch.opt
+++ b/gcc/config/sparc/long-double-switch.opt
@@ -1,6 +1,6 @@
; Options for the SPARC port of the compiler
;
-; Copyright (C) 2005-2022 Free Software Foundation, Inc.
+; Copyright (C) 2005-2023 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
diff --git a/gcc/config/sparc/m8.md b/gcc/config/sparc/m8.md
index 677b42e..7c0e17c 100644
--- a/gcc/config/sparc/m8.md
+++ b/gcc/config/sparc/m8.md
@@ -1,5 +1,5 @@
;; Scheduling description for the SPARC M8.
-;; Copyright (C) 2017-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2017-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/netbsd-elf.h b/gcc/config/sparc/netbsd-elf.h
index bee71fc..bfee910 100644
--- a/gcc/config/sparc/netbsd-elf.h
+++ b/gcc/config/sparc/netbsd-elf.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GCC, for ELF on NetBSD/sparc
and NetBSD/sparc64.
- Copyright (C) 2002-2022 Free Software Foundation, Inc.
+ Copyright (C) 2002-2023 Free Software Foundation, Inc.
Contributed by Matthew Green (mrg@eterna.com.au).
This file is part of GCC.
diff --git a/gcc/config/sparc/niagara.md b/gcc/config/sparc/niagara.md
index a051635..fbdfe90 100644
--- a/gcc/config/sparc/niagara.md
+++ b/gcc/config/sparc/niagara.md
@@ -1,5 +1,5 @@
;; Scheduling description for Niagara.
-;; Copyright (C) 2006-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/niagara2.md b/gcc/config/sparc/niagara2.md
index 3047989..13e24b7 100644
--- a/gcc/config/sparc/niagara2.md
+++ b/gcc/config/sparc/niagara2.md
@@ -1,5 +1,5 @@
;; Scheduling description for Niagara-2 and Niagara-3.
-;; Copyright (C) 2007-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/niagara4.md b/gcc/config/sparc/niagara4.md
index 316ea4d..8416928 100644
--- a/gcc/config/sparc/niagara4.md
+++ b/gcc/config/sparc/niagara4.md
@@ -1,5 +1,5 @@
;; Scheduling description for Niagara-4
-;; Copyright (C) 2012-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/niagara7.md b/gcc/config/sparc/niagara7.md
index ac6fdef..befdb65e 100644
--- a/gcc/config/sparc/niagara7.md
+++ b/gcc/config/sparc/niagara7.md
@@ -1,5 +1,5 @@
;; Scheduling description for Niagara-7
-;; Copyright (C) 2016-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/openbsd1-64.h b/gcc/config/sparc/openbsd1-64.h
index ea6815f..e52a9e0 100644
--- a/gcc/config/sparc/openbsd1-64.h
+++ b/gcc/config/sparc/openbsd1-64.h
@@ -1,5 +1,5 @@
/* Configuration file for sparc64 OpenBSD target.
- Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ Copyright (C) 1999-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/openbsd64.h b/gcc/config/sparc/openbsd64.h
index 3ca1e0a..7e28e02 100644
--- a/gcc/config/sparc/openbsd64.h
+++ b/gcc/config/sparc/openbsd64.h
@@ -1,5 +1,5 @@
/* Configuration file for sparc64 OpenBSD target.
- Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ Copyright (C) 1999-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/predicates.md b/gcc/config/sparc/predicates.md
index 24fe51d..dab8b51 100644
--- a/gcc/config/sparc/predicates.md
+++ b/gcc/config/sparc/predicates.md
@@ -1,5 +1,5 @@
;; Predicate definitions for SPARC.
-;; Copyright (C) 2005-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/rtemself.h b/gcc/config/sparc/rtemself.h
index b40baf2..bf46822 100644
--- a/gcc/config/sparc/rtemself.h
+++ b/gcc/config/sparc/rtemself.h
@@ -1,5 +1,5 @@
/* Definitions for rtems targeting a SPARC using ELF.
- Copyright (C) 1996-2022 Free Software Foundation, Inc.
+ Copyright (C) 1996-2023 Free Software Foundation, Inc.
Contributed by Joel Sherrill (joel@OARcorp.com).
This file is part of GCC.
diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h
index a91f64c..8f78c0d8 100644
--- a/gcc/config/sparc/sol2.h
+++ b/gcc/config/sparc/sol2.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GCC, for SPARC running Solaris 2
- Copyright (C) 1992-2022 Free Software Foundation, Inc.
+ Copyright (C) 1992-2023 Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@netcom.com).
Additional changes by David V. Henkel-Wallace (gumby@cygnus.com).
diff --git a/gcc/config/sparc/sp-elf.h b/gcc/config/sparc/sp-elf.h
index 53f03b9..0d6a9af 100644
--- a/gcc/config/sparc/sp-elf.h
+++ b/gcc/config/sparc/sp-elf.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GCC,
for SPARC running in an embedded environment using the ELF file format.
- Copyright (C) 2005-2022 Free Software Foundation, Inc.
+ Copyright (C) 2005-2023 Free Software Foundation, Inc.
This file is part of GCC.
@@ -32,7 +32,7 @@ along with GCC; see the file COPYING3. If not see
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
- "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
+ "%{Ofast|ffast-math|funsafe-math-optimizations:%{!shared:crtfastmath.o%s}} \
crtend.o%s crtn.o%s"
/* Don't set the target flags, this is done by the linker script */
diff --git a/gcc/config/sparc/sp64-elf.h b/gcc/config/sparc/sp64-elf.h
index dc918c6..11c9504 100644
--- a/gcc/config/sparc/sp64-elf.h
+++ b/gcc/config/sparc/sp64-elf.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GCC, for SPARC64, ELF.
- Copyright (C) 1994-2022 Free Software Foundation, Inc.
+ Copyright (C) 1994-2023 Free Software Foundation, Inc.
Contributed by Doug Evans, dje@cygnus.com.
This file is part of GCC.
@@ -44,7 +44,7 @@ along with GCC; see the file COPYING3. If not see
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
- "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
+ "%{Ofast|ffast-math|funsafe-math-optimizations:%{!shared:crtfastmath.o%s}} \
crtend.o%s crtn.o%s"
/* Use the default (for now). */
diff --git a/gcc/config/sparc/sparc-c.cc b/gcc/config/sparc/sparc-c.cc
index a8fb1ea..fa6ade5 100644
--- a/gcc/config/sparc/sparc-c.cc
+++ b/gcc/config/sparc/sparc-c.cc
@@ -1,5 +1,5 @@
/* Subroutines used for macro/preprocessor support on SPARC.
- Copyright (C) 2011-2022 Free Software Foundation, Inc.
+ Copyright (C) 2011-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/sparc-d.cc b/gcc/config/sparc/sparc-d.cc
index f8a3cf3..37692b0 100644
--- a/gcc/config/sparc/sparc-d.cc
+++ b/gcc/config/sparc/sparc-d.cc
@@ -1,5 +1,5 @@
/* Subroutines for the D front end on the SPARC architecture.
- Copyright (C) 2017-2022 Free Software Foundation, Inc.
+ Copyright (C) 2017-2023 Free Software Foundation, Inc.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gcc/config/sparc/sparc-d.h b/gcc/config/sparc/sparc-d.h
index b9d8ccf..0cd734c 100644
--- a/gcc/config/sparc/sparc-d.h
+++ b/gcc/config/sparc/sparc-d.h
@@ -1,5 +1,5 @@
/* Definitions for the D front end on the SPARC architecture.
- Copyright (C) 2022 Free Software Foundation, Inc.
+ Copyright (C) 2022-2023 Free Software Foundation, Inc.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gcc/config/sparc/sparc-modes.def b/gcc/config/sparc/sparc-modes.def
index b622f59..b22756f 100644
--- a/gcc/config/sparc/sparc-modes.def
+++ b/gcc/config/sparc/sparc-modes.def
@@ -1,5 +1,5 @@
/* Definitions of target machine for GCC, for Sun SPARC.
- Copyright (C) 2002-2022 Free Software Foundation, Inc.
+ Copyright (C) 2002-2023 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com).
64-bit SPARC V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
at Cygnus Support.
diff --git a/gcc/config/sparc/sparc-opts.h b/gcc/config/sparc/sparc-opts.h
index 9119162..6d971af 100644
--- a/gcc/config/sparc/sparc-opts.h
+++ b/gcc/config/sparc/sparc-opts.h
@@ -1,5 +1,5 @@
/* Definitions for option handling for SPARC.
- Copyright (C) 1996-2022 Free Software Foundation, Inc.
+ Copyright (C) 1996-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/sparc-passes.def b/gcc/config/sparc/sparc-passes.def
index 5d8432e..31643ce 100644
--- a/gcc/config/sparc/sparc-passes.def
+++ b/gcc/config/sparc/sparc-passes.def
@@ -1,5 +1,5 @@
/* Description of target passes for SPARC.
- Copyright (C) 2016-2022 Free Software Foundation, Inc.
+ Copyright (C) 2016-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h
index 4ddd00c..2a317b0 100644
--- a/gcc/config/sparc/sparc-protos.h
+++ b/gcc/config/sparc/sparc-protos.h
@@ -1,5 +1,5 @@
/* Prototypes of target machine for SPARC.
- Copyright (C) 1999-2022 Free Software Foundation, Inc.
+ Copyright (C) 1999-2023 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com).
64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
at Cygnus Support.
diff --git a/gcc/config/sparc/sparc.cc b/gcc/config/sparc/sparc.cc
index c72c38e..8c0c9dc 100644
--- a/gcc/config/sparc/sparc.cc
+++ b/gcc/config/sparc/sparc.cc
@@ -1,5 +1,5 @@
/* Subroutines for insn-output.cc for SPARC.
- Copyright (C) 1987-2022 Free Software Foundation, Inc.
+ Copyright (C) 1987-2023 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com)
64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
at Cygnus Support.
@@ -6051,6 +6051,9 @@ sparc_expand_prologue (void)
}
RTX_FRAME_RELATED_P (insn) = 1;
+
+ /* Ensure no memory access is done before the frame is established. */
+ emit_insn (gen_frame_blockage ());
}
else
{
@@ -6065,13 +6068,7 @@ sparc_expand_prologue (void)
/* %sp is not the CFA register anymore. */
emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size)));
- /* Make sure no %fp-based store is issued until after the frame is
- established. The offset between the frame pointer and the stack
- pointer is calculated relative to the value of the stack pointer
- at the end of the function prologue, and moving instructions that
- access the stack via the frame pointer between the instructions
- that decrement the stack pointer could result in accessing the
- register window save area, which is volatile. */
+ /* Likewise. */
emit_insn (gen_frame_blockage ());
}
else
@@ -6167,8 +6164,8 @@ sparc_flat_expand_prologue (void)
}
RTX_FRAME_RELATED_P (insn) = 1;
- /* Ensure nothing is scheduled until after the frame is established. */
- emit_insn (gen_blockage ());
+ /* Ensure no memory access is done before the frame is established. */
+ emit_insn (gen_frame_blockage ());
if (frame_pointer_needed)
{
@@ -6255,6 +6252,9 @@ sparc_expand_epilogue (bool for_eh)
; /* do nothing. */
else if (sparc_leaf_function_p)
{
+ /* Ensure no memory access is done after the frame is destroyed. */
+ emit_insn (gen_frame_blockage ());
+
if (size <= 4096)
emit_insn (gen_stack_pointer_inc (GEN_INT (size)));
else if (size <= 8192)
@@ -6305,15 +6305,15 @@ sparc_flat_expand_epilogue (bool for_eh)
; /* do nothing. */
else if (frame_pointer_needed)
{
- /* Make sure the frame is destroyed after everything else is done. */
- emit_insn (gen_blockage ());
+ /* Ensure no memory access is done after the frame is destroyed. */
+ emit_insn (gen_frame_blockage ());
emit_move_insn (stack_pointer_rtx, gen_rtx_REG (Pmode, 1));
}
else
{
/* Likewise. */
- emit_insn (gen_blockage ());
+ emit_insn (gen_frame_blockage ());
if (size <= 4096)
emit_insn (gen_stack_pointer_inc (GEN_INT (size)));
@@ -13662,18 +13662,16 @@ sparc_expand_conditional_move (machine_mode mode, rtx *operands)
void
sparc_expand_vcond (machine_mode mode, rtx *operands, int ccode, int fcode)
{
+ enum rtx_code code = signed_condition (GET_CODE (operands[3]));
rtx mask, cop0, cop1, fcmp, cmask, bshuf, gsr;
- enum rtx_code code = GET_CODE (operands[3]);
mask = gen_reg_rtx (Pmode);
cop0 = operands[4];
cop1 = operands[5];
if (code == LT || code == GE)
{
- rtx t;
-
code = swap_condition (code);
- t = cop0; cop0 = cop1; cop1 = t;
+ std::swap (cop0, cop1);
}
gsr = gen_rtx_REG (DImode, SPARC_GSR_REG);
diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h
index 155e1da..c34f2f53 100644
--- a/gcc/config/sparc/sparc.h
+++ b/gcc/config/sparc/sparc.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler, for Sun SPARC.
- Copyright (C) 1987-2022 Free Software Foundation, Inc.
+ Copyright (C) 1987-2023 Free Software Foundation, Inc.
Contributed by Michael Tiemann (tiemann@cygnus.com).
64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
at Cygnus Support.
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md
index 691e707..94779c1 100644
--- a/gcc/config/sparc/sparc.md
+++ b/gcc/config/sparc/sparc.md
@@ -1,5 +1,5 @@
;; Machine description for SPARC.
-;; Copyright (C) 1987-2022 Free Software Foundation, Inc.
+;; Copyright (C) 1987-2023 Free Software Foundation, Inc.
;; Contributed by Michael Tiemann (tiemann@cygnus.com)
;; 64-bit SPARC-V9 support by Michael Tiemann, Jim Wilson, and Doug Evans,
;; at Cygnus Support.
@@ -9033,6 +9033,50 @@ visl")
DONE;
})
+(define_expand "vcondv8qiv8qi"
+ [(match_operand:V8QI 0 "register_operand" "")
+ (match_operand:V8QI 1 "register_operand" "")
+ (match_operand:V8QI 2 "register_operand" "")
+ (match_operator 3 ""
+ [(match_operand:V8QI 4 "register_operand" "")
+ (match_operand:V8QI 5 "register_operand" "")])]
+ "TARGET_VIS4"
+{
+ sparc_expand_vcond (V8QImode, operands, UNSPEC_CMASK8, UNSPEC_FCMP);
+ DONE;
+})
+
+(define_insn "fucmp<gcond:code>8<P:mode>_vis"
+ [(set (match_operand:P 0 "register_operand" "=r")
+ (unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e")
+ (match_operand:V8QI 2 "register_operand" "e"))]
+ UNSPEC_FUCMP))]
+ "TARGET_VIS3"
+ "fucmp<gcond:code>8\t%1, %2, %0"
+ [(set_attr "type" "viscmp")])
+
+(define_insn "fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"
+ [(set (match_operand:P 0 "register_operand" "=r")
+ (unspec:P [(gcond:GCM (match_operand:GCM 1 "register_operand" "e")
+ (match_operand:GCM 2 "register_operand" "e"))]
+ UNSPEC_FUCMP))]
+ "TARGET_VIS4"
+ "fpcmpu<gcond:code><GCM:gcm_name>\t%1, %2, %0"
+ [(set_attr "type" "viscmp")])
+
+(define_expand "vcondu<GCM:mode><GCM:mode>"
+ [(match_operand:GCM 0 "register_operand" "")
+ (match_operand:GCM 1 "register_operand" "")
+ (match_operand:GCM 2 "register_operand" "")
+ (match_operator 3 ""
+ [(match_operand:GCM 4 "register_operand" "")
+ (match_operand:GCM 5 "register_operand" "")])]
+ "TARGET_VIS4"
+{
+ sparc_expand_vcond (<MODE>mode, operands, UNSPEC_CMASK<gcm_name>, UNSPEC_FUCMP);
+ DONE;
+})
+
(define_expand "vconduv8qiv8qi"
[(match_operand:V8QI 0 "register_operand" "")
(match_operand:V8QI 1 "register_operand" "")
@@ -9351,24 +9395,6 @@ visl")
[(set_attr "type" "fga")
(set_attr "subtype" "other")])
-(define_insn "fucmp<gcond:code>8<P:mode>_vis"
- [(set (match_operand:P 0 "register_operand" "=r")
- (unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e")
- (match_operand:V8QI 2 "register_operand" "e"))]
- UNSPEC_FUCMP))]
- "TARGET_VIS3"
- "fucmp<gcond:code>8\t%1, %2, %0"
- [(set_attr "type" "viscmp")])
-
-(define_insn "fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"
- [(set (match_operand:P 0 "register_operand" "=r")
- (unspec:P [(gcond:GCM (match_operand:GCM 1 "register_operand" "e")
- (match_operand:GCM 2 "register_operand" "e"))]
- UNSPEC_FUCMP))]
- "TARGET_VIS4"
- "fpcmpu<gcond:code><GCM:gcm_name>\t%1, %2, %0"
- [(set_attr "type" "viscmp")])
-
(define_insn "*naddsf3"
[(set (match_operand:SF 0 "register_operand" "=f")
(neg:SF (plus:SF (match_operand:SF 1 "register_operand" "f")
diff --git a/gcc/config/sparc/sparc.opt b/gcc/config/sparc/sparc.opt
index 6d527ce..a5736f0 100644
--- a/gcc/config/sparc/sparc.opt
+++ b/gcc/config/sparc/sparc.opt
@@ -1,6 +1,6 @@
; Options for the SPARC port of the compiler
;
-; Copyright (C) 2005-2022 Free Software Foundation, Inc.
+; Copyright (C) 2005-2023 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
diff --git a/gcc/config/sparc/sparclet.md b/gcc/config/sparc/sparclet.md
index 8327753..321e2a1 100644
--- a/gcc/config/sparc/sparclet.md
+++ b/gcc/config/sparc/sparclet.md
@@ -1,5 +1,5 @@
;; Scheduling description for SPARClet.
-;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/supersparc.md b/gcc/config/sparc/supersparc.md
index 6ea5ec9..964e04b 100644
--- a/gcc/config/sparc/supersparc.md
+++ b/gcc/config/sparc/supersparc.md
@@ -1,5 +1,5 @@
;; Scheduling description for SuperSPARC.
-;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/sync.md b/gcc/config/sparc/sync.md
index 264e17f..c34b943 100644
--- a/gcc/config/sparc/sync.md
+++ b/gcc/config/sparc/sync.md
@@ -1,5 +1,5 @@
;; GCC machine description for SPARC synchronization instructions.
-;; Copyright (C) 2005-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/sysv4.h b/gcc/config/sparc/sysv4.h
index e70a078..5249e90 100644
--- a/gcc/config/sparc/sysv4.h
+++ b/gcc/config/sparc/sysv4.h
@@ -1,5 +1,5 @@
/* Target definitions for GNU compiler for SPARC running System V.4
- Copyright (C) 1991-2022 Free Software Foundation, Inc.
+ Copyright (C) 1991-2023 Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com).
This file is part of GCC.
diff --git a/gcc/config/sparc/t-elf b/gcc/config/sparc/t-elf
index fed6eb3..a9c6ac7 100644
--- a/gcc/config/sparc/t-elf
+++ b/gcc/config/sparc/t-elf
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2022 Free Software Foundation, Inc.
+# Copyright (C) 1997-2023 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/gcc/config/sparc/t-leon b/gcc/config/sparc/t-leon
index 1033431..7e29888 100644
--- a/gcc/config/sparc/t-leon
+++ b/gcc/config/sparc/t-leon
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2022 Free Software Foundation, Inc.
+# Copyright (C) 2010-2023 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/gcc/config/sparc/t-leon3 b/gcc/config/sparc/t-leon3
index 0116054..c8ba87f 100644
--- a/gcc/config/sparc/t-leon3
+++ b/gcc/config/sparc/t-leon3
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2022 Free Software Foundation, Inc.
+# Copyright (C) 2010-2023 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/gcc/config/sparc/t-linux64 b/gcc/config/sparc/t-linux64
index 3cb9dbe..629f1fa 100644
--- a/gcc/config/sparc/t-linux64
+++ b/gcc/config/sparc/t-linux64
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2022 Free Software Foundation, Inc.
+# Copyright (C) 1998-2023 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/gcc/config/sparc/t-rtems b/gcc/config/sparc/t-rtems
index c58836c..21490d1 100644
--- a/gcc/config/sparc/t-rtems
+++ b/gcc/config/sparc/t-rtems
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022 Free Software Foundation, Inc.
+# Copyright (C) 2012-2023 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/gcc/config/sparc/t-rtems-64 b/gcc/config/sparc/t-rtems-64
index d625150..26aa2aa 100644
--- a/gcc/config/sparc/t-rtems-64
+++ b/gcc/config/sparc/t-rtems-64
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2022 Free Software Foundation, Inc.
+# Copyright (C) 2012-2023 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/gcc/config/sparc/t-sparc b/gcc/config/sparc/t-sparc
index 2dd06c9..e1287fc 100644
--- a/gcc/config/sparc/t-sparc
+++ b/gcc/config/sparc/t-sparc
@@ -1,6 +1,6 @@
# General rules that all sparc/ targets must have.
#
-# Copyright (C) 2011-2022 Free Software Foundation, Inc.
+# Copyright (C) 2011-2023 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
diff --git a/gcc/config/sparc/tso.h b/gcc/config/sparc/tso.h
index 3b965a3..4baf474 100644
--- a/gcc/config/sparc/tso.h
+++ b/gcc/config/sparc/tso.h
@@ -1,5 +1,5 @@
/* Include fragment for Sparc TSO operating systems.
- Copyright (C) 2011-2022 Free Software Foundation, Inc.
+ Copyright (C) 2011-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/ultra1_2.md b/gcc/config/sparc/ultra1_2.md
index 71ba608..3eceb01 100644
--- a/gcc/config/sparc/ultra1_2.md
+++ b/gcc/config/sparc/ultra1_2.md
@@ -1,5 +1,5 @@
;; Scheduling description for UltraSPARC-I/II.
-;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/ultra3.md b/gcc/config/sparc/ultra3.md
index b6686c2..4c3a03d 100644
--- a/gcc/config/sparc/ultra3.md
+++ b/gcc/config/sparc/ultra3.md
@@ -1,5 +1,5 @@
;; Scheduling description for UltraSPARC-III.
-;; Copyright (C) 2002-2022 Free Software Foundation, Inc.
+;; Copyright (C) 2002-2023 Free Software Foundation, Inc.
;;
;; This file is part of GCC.
;;
diff --git a/gcc/config/sparc/visintrin.h b/gcc/config/sparc/visintrin.h
index 5dc797b..7b5963d 100644
--- a/gcc/config/sparc/visintrin.h
+++ b/gcc/config/sparc/visintrin.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2022 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2023 Free Software Foundation, Inc.
This file is part of GCC.
diff --git a/gcc/config/sparc/vxworks.h b/gcc/config/sparc/vxworks.h
index c9ce2d2..1d1c50c 100644
--- a/gcc/config/sparc/vxworks.h
+++ b/gcc/config/sparc/vxworks.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for SPARC targeting the VxWorks run time environment.
- Copyright (C) 2007-2022 Free Software Foundation, Inc.
+ Copyright (C) 2007-2023 Free Software Foundation, Inc.
This file is part of GCC.