summaryrefslogtreecommitdiff
path: root/toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@uclibc-ng.org>2016-08-24 22:24:38 +0200
committerWaldemar Brodkorb <wbx@uclibc-ng.org>2016-08-24 22:25:08 +0200
commit9683c207c75e5bc6513b1e8db6bdc2ed4c3db1f5 (patch)
tree510da161ad9e89032f4df8738ca26ad0a2d6b33d /toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch
parent9c15da431e4f1c8faf9bf747578b2c6b6c4d7d02 (diff)
gcc: update to 6.2.0, cleanup symbol names to simplify minor updates
Remove old versions of gcc no longer used or regulary tested. We concentrate on the latest three major versions for most of the architectures.
Diffstat (limited to 'toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch')
-rw-r--r--toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch100
1 files changed, 0 insertions, 100 deletions
diff --git a/toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch b/toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch
deleted file mode 100644
index dc03a028e..000000000
--- a/toolchain/gcc/patches/arc-2015.12/950-Don-t-allow-mcompact-casesi-for-ARCv2.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 09463827001a7b8094f4b9460514370a1876d908 Mon Sep 17 00:00:00 2001
-From: Claudiu Zissulescu <claziss@synopsys.com>
-Date: Wed, 20 Jan 2016 16:32:40 +0100
-Subject: [PATCH] Don't allow mcompact-casesi for ARCv2
-
-The compact casesi is not working for arcv2 processors family as it
-makes use of the add_s rx,rx,pcl instruction which is only valid for
-arc6xx and arc700 processors. Also not having this instruction makes
-no much sens to change the compact-casesi pattern to use normal add
-instructions as it nullifies the advantage of short instruction use.
-The default casesi pattern betters suits the arcv2 architecture.
-
-The fix is done in development tree: [arc-4.8-dev 0946382]
-and will be a part of the next release of ARC GNU tools.
-Once that new release happens this patch must be removed.
-
-gcc/
-2016-01-20 Claudiu Zissulescu <claziss@synopsys.com>
-
- * common/config/arc/arc-common.c (arc_option_optimization_table):
- Remove mcompact-casesi option.
- * config/arc/arc.c (arc_override_options): Use compact-casesi only
- for arcv1.
- * config/arc/arc.md (casesi_load): Use short instructions.
----
- gcc/common/config/arc/arc-common.c | 1 -
- gcc/config/arc/arc.c | 9 +++++----
- gcc/config/arc/arc.md | 10 ++++++++--
- 3 files changed, 13 insertions(+), 7 deletions(-)
-
- * config/arc/arc.c (arc_legitimize_pic_address): Handle MINUS
-diff --git a/gcc/common/config/arc/arc-common.c b/gcc/common/config/arc/arc-common.c
-index e2e36fa..310bc80 100644
---- a/gcc/common/config/arc/arc-common.c
-+++ b/gcc/common/config/arc/arc-common.c
-@@ -58,7 +58,6 @@ static const struct default_options arc_option_optimization_table[] =
- { OPT_LEVELS_ALL, OPT_mbbit_peephole, NULL, 1 },
- { OPT_LEVELS_SIZE, OPT_mq_class, NULL, 1 },
- { OPT_LEVELS_SIZE, OPT_mcase_vector_pcrel, NULL, 1 },
-- { OPT_LEVELS_SIZE, OPT_mcompact_casesi, NULL, 1 },
- { OPT_LEVELS_NONE, 0, NULL, 0 }
- };
-
-diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
-index 18d88a3..f828398 100644
---- a/gcc/config/arc/arc.c
-+++ b/gcc/config/arc/arc.c
-@@ -1151,6 +1151,11 @@ arc_override_options (void)
- if (arc_size_opt_level == 3)
- optimize_size = 1;
-
-+ if (TARGET_V2)
-+ TARGET_COMPACT_CASESI = 0;
-+ else if (optimize_size == 1)
-+ TARGET_COMPACT_CASESI = 1;
-+
- if (flag_pic)
- target_flags |= MASK_NO_SDATA_SET;
-
-@@ -1163,10 +1168,6 @@ arc_override_options (void)
- if (!TARGET_Q_CLASS)
- TARGET_COMPACT_CASESI = 0;
-
-- /* For the time being don't support COMPACT_CASESI for ARCv2. */
-- if (TARGET_V2)
-- TARGET_COMPACT_CASESI = 0;
--
- if (TARGET_COMPACT_CASESI)
- TARGET_CASE_VECTOR_PC_RELATIVE = 1;
-
-diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md
-index bc4ac38..ba7c8bc 100644
---- a/gcc/config/arc/arc.md
-+++ b/gcc/config/arc/arc.md
-@@ -3837,14 +3837,20 @@
- switch (GET_MODE (diff_vec))
- {
- case SImode:
-- return \"ld.as %0,[%1,%2]%&\";
-+ if ((which_alternative == 0) && TARGET_CODE_DENSITY)
-+ return \"ld_s.as %0,[%1,%2]%&\";
-+ else
-+ return \"ld.as %0,[%1,%2]%&\";
- case HImode:
- if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
- return \"ldw.as %0,[%1,%2]\";
- return \"ldw.x.as %0,[%1,%2]\";
- case QImode:
- if (ADDR_DIFF_VEC_FLAGS (diff_vec).offset_unsigned)
-- return \"ldb%? %0,[%1,%2]%&\";
-+ if (which_alternative == 0)
-+ return \"ldb_s %0,[%1,%2]%&\";
-+ else
-+ return \"ldb %0,[%1,%2]%&\";
- return \"ldb.x %0,[%1,%2]\";
- default:
- gcc_unreachable ();
---
-2.5.0
-