diff options
author | Chris Packham <judge.packham@gmail.com> | 2025-05-25 10:28:35 +1200 |
---|---|---|
committer | Chris Packham <judge.packham@gmail.com> | 2025-05-27 09:08:17 +1200 |
commit | 9a4a376bfb34e542003ca87008fc13f92fd9ead8 (patch) | |
tree | 30e6d5fc33125a724a2a37490100f0c9c23232b9 /packages/gcc/14.2.0/0012-aarch64-Use-force_subreg-in-more-places.patch | |
parent | d46ae2bc929fe8da2c26f8444c5f8aeb4f466e62 (diff) | |
download | crosstool-ng-9a4a376bfb34e542003ca87008fc13f92fd9ead8.tar.gz crosstool-ng-9a4a376bfb34e542003ca87008fc13f92fd9ead8.tar.bz2 crosstool-ng-9a4a376bfb34e542003ca87008fc13f92fd9ead8.zip |
gcc: Update GCC 14.2.0 -> 14.3.0
https://gcc.gnu.org/pipermail/gcc-announce/2025/000186.html
Add the new version. Drop the patches that have been added upstream and
regenerate the rest.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Diffstat (limited to 'packages/gcc/14.2.0/0012-aarch64-Use-force_subreg-in-more-places.patch')
-rw-r--r-- | packages/gcc/14.2.0/0012-aarch64-Use-force_subreg-in-more-places.patch | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/packages/gcc/14.2.0/0012-aarch64-Use-force_subreg-in-more-places.patch b/packages/gcc/14.2.0/0012-aarch64-Use-force_subreg-in-more-places.patch deleted file mode 100644 index bddf3977..00000000 --- a/packages/gcc/14.2.0/0012-aarch64-Use-force_subreg-in-more-places.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 12d860b5b700b5218461a0b9e4a1a3ddb55eb211 Mon Sep 17 00:00:00 2001 -From: Richard Sandiford <richard.sandiford@arm.com> -Date: Tue, 18 Jun 2024 12:22:30 +0100 -Subject: [PATCH 12/16] aarch64: Use force_subreg in more places - -This patch makes the aarch64 code use force_subreg instead of -simplify_gen_subreg in more places. The criteria were: - -(1) The code is obviously specific to expand (where new pseudos - can be created). - -(2) The value is obviously an rvalue rather than an lvalue. - -(3) The offset wasn't a simple lowpart or highpart calculation; - a later patch will deal with those. - -gcc/ - * config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin): - Use force_subreg instead of simplify_gen_subreg. - * config/aarch64/aarch64-simd.md (ctz<mode>2): Likewise. - * config/aarch64/aarch64-sve-builtins-base.cc - (svget_impl::expand): Likewise. - (svget_neonq_impl::expand): Likewise. - * config/aarch64/aarch64-sve-builtins-functions.h - (multireg_permute::expand): Likewise. - -(cherry picked from commit 1474a8eead4ab390e59ee014befa8c40346679f4) ---- - gcc/config/aarch64/aarch64-builtins.cc | 4 ++-- - gcc/config/aarch64/aarch64-simd.md | 4 ++-- - gcc/config/aarch64/aarch64-sve-builtins-base.cc | 8 +++----- - gcc/config/aarch64/aarch64-sve-builtins-functions.h | 6 +++--- - 4 files changed, 10 insertions(+), 12 deletions(-) - -diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc -index 75d21de1401..b2e46a073a8 100644 ---- a/gcc/config/aarch64/aarch64-builtins.cc -+++ b/gcc/config/aarch64/aarch64-builtins.cc -@@ -2510,12 +2510,12 @@ aarch64_expand_fcmla_builtin (tree exp, rtx target, int fcode) - rtx temp2 = gen_reg_rtx (DImode); - temp1 = simplify_gen_subreg (d->mode, op2, quadmode, - subreg_lowpart_offset (d->mode, quadmode)); -- temp1 = simplify_gen_subreg (V2DImode, temp1, d->mode, 0); -+ temp1 = force_subreg (V2DImode, temp1, d->mode, 0); - if (BYTES_BIG_ENDIAN) - emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const0_rtx)); - else - emit_insn (gen_aarch64_get_lanev2di (temp2, temp1, const1_rtx)); -- op2 = simplify_gen_subreg (d->mode, temp2, GET_MODE (temp2), 0); -+ op2 = force_subreg (d->mode, temp2, GET_MODE (temp2), 0); - - /* And recalculate the index. */ - lane -= nunits / 4; -diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md -index 33ab0741e87..5b9efe0b165 100644 ---- a/gcc/config/aarch64/aarch64-simd.md -+++ b/gcc/config/aarch64/aarch64-simd.md -@@ -412,8 +412,8 @@ - "TARGET_SIMD" - { - emit_insn (gen_bswap<mode>2 (operands[0], operands[1])); -- rtx op0_castsi2qi = simplify_gen_subreg(<VS:VSI2QI>mode, operands[0], -- <MODE>mode, 0); -+ rtx op0_castsi2qi = force_subreg (<VS:VSI2QI>mode, operands[0], -+ <MODE>mode, 0); - emit_insn (gen_aarch64_rbit<VS:vsi2qi> (op0_castsi2qi, op0_castsi2qi)); - emit_insn (gen_clz<mode>2 (operands[0], operands[0])); - DONE; -diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc -index c9182594bc1..2c95da79572 100644 ---- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc -+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc -@@ -1121,9 +1121,8 @@ public: - expand (function_expander &e) const override - { - /* Fold the access into a subreg rvalue. */ -- return simplify_gen_subreg (e.vector_mode (0), e.args[0], -- GET_MODE (e.args[0]), -- INTVAL (e.args[1]) * BYTES_PER_SVE_VECTOR); -+ return force_subreg (e.vector_mode (0), e.args[0], GET_MODE (e.args[0]), -+ INTVAL (e.args[1]) * BYTES_PER_SVE_VECTOR); - } - }; - -@@ -1157,8 +1156,7 @@ public: - e.add_fixed_operand (indices); - return e.generate_insn (icode); - } -- return simplify_gen_subreg (e.result_mode (), e.args[0], -- GET_MODE (e.args[0]), 0); -+ return force_subreg (e.result_mode (), e.args[0], GET_MODE (e.args[0]), 0); - } - }; - -diff --git a/gcc/config/aarch64/aarch64-sve-builtins-functions.h b/gcc/config/aarch64/aarch64-sve-builtins-functions.h -index 3b8e575e98e..7d06a57ff83 100644 ---- a/gcc/config/aarch64/aarch64-sve-builtins-functions.h -+++ b/gcc/config/aarch64/aarch64-sve-builtins-functions.h -@@ -639,9 +639,9 @@ public: - { - machine_mode elt_mode = e.vector_mode (0); - rtx arg = e.args[0]; -- e.args[0] = simplify_gen_subreg (elt_mode, arg, GET_MODE (arg), 0); -- e.args.safe_push (simplify_gen_subreg (elt_mode, arg, GET_MODE (arg), -- GET_MODE_SIZE (elt_mode))); -+ e.args[0] = force_subreg (elt_mode, arg, GET_MODE (arg), 0); -+ e.args.safe_push (force_subreg (elt_mode, arg, GET_MODE (arg), -+ GET_MODE_SIZE (elt_mode))); - } - return e.use_exact_insn (icode); - } --- -2.44.2 - |