diff options
author | Ian Lance Taylor <iant@golang.org> | 2023-03-29 09:01:23 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2023-03-29 09:01:23 -0700 |
commit | 6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced (patch) | |
tree | 1deecdcfbf185c7044bc861d0ace51285c96cb62 /gcc/config/sparc | |
parent | 795cffe109e28b248a54b8ee583cbae48368c2a7 (diff) | |
parent | aa8f4242efc99f24de73c59d53996f28db28c13f (diff) | |
download | gcc-6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced.zip gcc-6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced.tar.gz gcc-6612f4f8cb9b0d5af18ec69ad04e56debc3e6ced.tar.bz2 |
Merge from trunk revision aa8f4242efc99f24de73c59d53996f28db28c13f.
Diffstat (limited to 'gcc/config/sparc')
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. |