aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99412.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99412.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99412.patch316
1 files changed, 0 insertions, 316 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99412.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99412.patch
deleted file mode 100644
index c0aabbeb56..0000000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99412.patch
+++ /dev/null
@@ -1,316 +0,0 @@
-2010-10-09 Jie Zhang <jie@codesourcery.com>
-
- Backport from mainline:
-
- gcc/
- 2010-06-03 Paul Brook <paul@codesourcery.com>
- * config/arm/arm.c (FL_TUNE): Define.
- (arm_default_cpu, arm_cpu_select): Remove.
- (all_cores): Populate core field.
- (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
- (arm_find_cpu): New function.
- (arm_handle_option): Lookup cpu/architecture names.
- (arm_override_options): Cleanup mcpu/march/mtune handling.
- (arm_file_start): Ditto.
-
-=== modified file 'gcc/config/arm/arm.c'
-Index: gcc-4.5/gcc/config/arm/arm.c
-===================================================================
---- gcc-4.5.orig/gcc/config/arm/arm.c
-+++ gcc-4.5/gcc/config/arm/arm.c
-@@ -550,9 +550,6 @@ enum processor_type arm_tune = arm_none;
- /* The current tuning set. */
- const struct tune_params *current_tune;
-
--/* The default processor used if not overridden by commandline. */
--static enum processor_type arm_default_cpu = arm_none;
--
- /* Which floating point hardware to schedule for. */
- int arm_fpu_attr;
-
-@@ -608,6 +605,10 @@ static int thumb_call_reg_needed;
-
- #define FL_IWMMXT (1 << 29) /* XScale v2 or "Intel Wireless MMX technology". */
-
-+/* Flags that only effect tuning, not available instructions. */
-+#define FL_TUNE (FL_WBUF | FL_VFPV2 | FL_STRONG | FL_LDSCHED \
-+ | FL_CO_PROC)
-+
- #define FL_FOR_ARCH2 FL_NOTM
- #define FL_FOR_ARCH3 (FL_FOR_ARCH2 | FL_MODE32)
- #define FL_FOR_ARCH3M (FL_FOR_ARCH3 | FL_ARCH3M)
-@@ -808,7 +809,7 @@ static const struct processors all_cores
- {
- /* ARM Cores */
- #define ARM_CORE(NAME, IDENT, ARCH, FLAGS, COSTS) \
-- {NAME, arm_none, #ARCH, FLAGS | FL_FOR_ARCH##ARCH, &arm_##COSTS##_tune},
-+ {NAME, IDENT, #ARCH, FLAGS | FL_FOR_ARCH##ARCH, &arm_##COSTS##_tune},
- #include "arm-cores.def"
- #undef ARM_CORE
- {NULL, arm_none, NULL, 0, NULL}
-@@ -850,29 +851,12 @@ static const struct processors all_archi
- {NULL, arm_none, NULL, 0 , NULL}
- };
-
--struct arm_cpu_select
--{
-- const char * string;
-- const char * name;
-- const struct processors * processors;
--};
--
--/* This is a magic structure. The 'string' field is magically filled in
-- with a pointer to the value specified by the user on the command line
-- assuming that the user has specified such a value. */
--
--static struct arm_cpu_select arm_select[] =
--{
-- /* string name processors */
-- { NULL, "-mcpu=", all_cores },
-- { NULL, "-march=", all_architectures },
-- { NULL, "-mtune=", all_cores }
--};
-
--/* Defines representing the indexes into the above table. */
--#define ARM_OPT_SET_CPU 0
--#define ARM_OPT_SET_ARCH 1
--#define ARM_OPT_SET_TUNE 2
-+/* These are populated as commandline arguments are processed, or NULL
-+ if not specified. */
-+static const struct processors *arm_selected_arch;
-+static const struct processors *arm_selected_cpu;
-+static const struct processors *arm_selected_tune;
-
- /* The name of the preprocessor macro to define for this architecture. */
-
-@@ -1234,6 +1218,24 @@ arm_gimplify_va_arg_expr (tree valist, t
- return std_gimplify_va_arg_expr (valist, type, pre_p, post_p);
- }
-
-+/* Lookup NAME in SEL. */
-+
-+static const struct processors *
-+arm_find_cpu (const char *name, const struct processors *sel, const char *desc)
-+{
-+ if (!(name && *name))
-+ return NULL;
-+
-+ for (; sel->name != NULL; sel++)
-+ {
-+ if (streq (name, sel->name))
-+ return sel;
-+ }
-+
-+ error ("bad value (%s) for %s switch", name, desc);
-+ return NULL;
-+}
-+
- /* Implement TARGET_HANDLE_OPTION. */
-
- static bool
-@@ -1242,11 +1244,11 @@ arm_handle_option (size_t code, const ch
- switch (code)
- {
- case OPT_march_:
-- arm_select[1].string = arg;
-+ arm_selected_arch = arm_find_cpu(arg, all_architectures, "-march");
- return true;
-
- case OPT_mcpu_:
-- arm_select[0].string = arg;
-+ arm_selected_cpu = arm_find_cpu(arg, all_cores, "-mcpu");
- return true;
-
- case OPT_mhard_float:
-@@ -1258,7 +1260,7 @@ arm_handle_option (size_t code, const ch
- return true;
-
- case OPT_mtune_:
-- arm_select[2].string = arg;
-+ arm_selected_tune = arm_find_cpu(arg, all_cores, "-mtune");
- return true;
-
- default:
-@@ -1358,88 +1360,52 @@ void
- arm_override_options (void)
- {
- unsigned i;
-- enum processor_type target_arch_cpu = arm_none;
-- enum processor_type selected_cpu = arm_none;
-
-- /* Set up the flags based on the cpu/architecture selected by the user. */
-- for (i = ARRAY_SIZE (arm_select); i--;)
-+ if (arm_selected_arch)
- {
-- struct arm_cpu_select * ptr = arm_select + i;
--
-- if (ptr->string != NULL && ptr->string[0] != '\0')
-- {
-- const struct processors * sel;
--
-- for (sel = ptr->processors; sel->name != NULL; sel++)
-- if (streq (ptr->string, sel->name))
-- {
-- /* Set the architecture define. */
-- if (i != ARM_OPT_SET_TUNE)
-- sprintf (arm_arch_name, "__ARM_ARCH_%s__", sel->arch);
--
-- /* Determine the processor core for which we should
-- tune code-generation. */
-- if (/* -mcpu= is a sensible default. */
-- i == ARM_OPT_SET_CPU
-- /* -mtune= overrides -mcpu= and -march=. */
-- || i == ARM_OPT_SET_TUNE)
-- arm_tune = (enum processor_type) (sel - ptr->processors);
--
-- /* Remember the CPU associated with this architecture.
-- If no other option is used to set the CPU type,
-- we'll use this to guess the most suitable tuning
-- options. */
-- if (i == ARM_OPT_SET_ARCH)
-- target_arch_cpu = sel->core;
--
-- if (i == ARM_OPT_SET_CPU)
-- selected_cpu = (enum processor_type) (sel - ptr->processors);
--
-- if (i != ARM_OPT_SET_TUNE)
-- {
-- /* If we have been given an architecture and a processor
-- make sure that they are compatible. We only generate
-- a warning though, and we prefer the CPU over the
-- architecture. */
-- if (insn_flags != 0 && (insn_flags ^ sel->flags))
-- warning (0, "switch -mcpu=%s conflicts with -march= switch",
-- ptr->string);
--
-- insn_flags = sel->flags;
-- }
--
-- break;
-- }
-+ if (arm_selected_cpu)
-+ {
-+ /* Check for conflict between mcpu and march */
-+ if ((arm_selected_cpu->flags ^ arm_selected_arch->flags) & ~FL_TUNE)
-+ {
-+ warning (0, "switch -mcpu=%s conflicts with -march=%s switch",
-+ arm_selected_cpu->name, arm_selected_arch->name);
-+ /* -march wins for code generation.
-+ -mcpu wins for default tuning. */
-+ if (!arm_selected_tune)
-+ arm_selected_tune = arm_selected_cpu;
-
-- if (sel->name == NULL)
-- error ("bad value (%s) for %s switch", ptr->string, ptr->name);
-- }
-+ arm_selected_cpu = arm_selected_arch;
-+ }
-+ else
-+ /* -mcpu wins. */
-+ arm_selected_arch = NULL;
-+ }
-+ else
-+ /* Pick a CPU based on the architecture. */
-+ arm_selected_cpu = arm_selected_arch;
- }
-
-- /* Guess the tuning options from the architecture if necessary. */
-- if (arm_tune == arm_none)
-- arm_tune = target_arch_cpu;
--
- /* If the user did not specify a processor, choose one for them. */
-- if (insn_flags == 0)
-+ if (!arm_selected_cpu)
- {
- const struct processors * sel;
- unsigned int sought;
-
-- selected_cpu = (enum processor_type) TARGET_CPU_DEFAULT;
-- if (selected_cpu == arm_none)
-+ arm_selected_cpu = &all_cores[TARGET_CPU_DEFAULT];
-+ if (!arm_selected_cpu->name)
- {
- #ifdef SUBTARGET_CPU_DEFAULT
- /* Use the subtarget default CPU if none was specified by
- configure. */
-- selected_cpu = (enum processor_type) SUBTARGET_CPU_DEFAULT;
-+ arm_selected_cpu = &all_cores[SUBTARGET_CPU_DEFAULT];
- #endif
- /* Default to ARM6. */
-- if (selected_cpu == arm_none)
-- selected_cpu = arm6;
-+ if (arm_selected_cpu->name)
-+ arm_selected_cpu = &all_cores[arm6];
- }
-- sel = &all_cores[selected_cpu];
-
-+ sel = arm_selected_cpu;
- insn_flags = sel->flags;
-
- /* Now check to see if the user has specified some command line
-@@ -1500,17 +1466,21 @@ arm_override_options (void)
- sel = best_fit;
- }
-
-- insn_flags = sel->flags;
-+ arm_selected_cpu = sel;
- }
-- sprintf (arm_arch_name, "__ARM_ARCH_%s__", sel->arch);
-- arm_default_cpu = (enum processor_type) (sel - all_cores);
-- if (arm_tune == arm_none)
-- arm_tune = arm_default_cpu;
- }
-
-- /* The processor for which we should tune should now have been
-- chosen. */
-- gcc_assert (arm_tune != arm_none);
-+ gcc_assert (arm_selected_cpu);
-+ /* The selected cpu may be an architecture, so lookup tuning by core ID. */
-+ if (!arm_selected_tune)
-+ arm_selected_tune = &all_cores[arm_selected_cpu->core];
-+
-+ sprintf (arm_arch_name, "__ARM_ARCH_%s__", arm_selected_cpu->arch);
-+ insn_flags = arm_selected_cpu->flags;
-+
-+ arm_tune = arm_selected_tune->core;
-+ tune_flags = arm_selected_tune->flags;
-+ current_tune = arm_selected_tune->tune;
-
- if (arm_tune == cortexa8 && optimize >= 3)
- {
-@@ -1522,9 +1492,6 @@ arm_override_options (void)
- align_jumps = 16;
- }
-
-- tune_flags = all_cores[(int)arm_tune].flags;
-- current_tune = all_cores[(int)arm_tune].tune;
--
- if (target_fp16_format_name)
- {
- for (i = 0; i < ARRAY_SIZE (all_fp16_formats); i++)
-@@ -1907,7 +1874,7 @@ arm_override_options (void)
- /* Enable -mfix-cortex-m3-ldrd by default for Cortex-M3 cores. */
- if (fix_cm3_ldrd == 2)
- {
-- if (selected_cpu == cortexm3)
-+ if (arm_selected_cpu->core == cortexm3)
- fix_cm3_ldrd = 1;
- else
- fix_cm3_ldrd = 0;
-@@ -21235,13 +21202,10 @@ arm_file_start (void)
- if (TARGET_BPABI)
- {
- const char *fpu_name;
-- if (arm_select[0].string)
-- asm_fprintf (asm_out_file, "\t.cpu %s\n", arm_select[0].string);
-- else if (arm_select[1].string)
-- asm_fprintf (asm_out_file, "\t.arch %s\n", arm_select[1].string);
-+ if (arm_selected_arch)
-+ asm_fprintf (asm_out_file, "\t.arch %s\n", arm_selected_arch->name);
- else
-- asm_fprintf (asm_out_file, "\t.cpu %s\n",
-- all_cores[arm_default_cpu].name);
-+ asm_fprintf (asm_out_file, "\t.cpu %s\n", arm_selected_cpu->name);
-
- if (TARGET_SOFT_FLOAT)
- {