patches/gcc/4.3.3/340-make-mno-spe-work-as-expected.patch
author Cody Schafer <dev@codyps.com>
Fri May 09 19:13:49 2014 -0700 (2014-05-09)
changeset 3312 4876ff97e039
permissions -rw-r--r--
cc/gcc: allow CC_EXTRA_CONFIG_ARRAY on baremetal

The final bare-metal compiler is built using the core backend.
Currently the core uses the CC_CORE_EXTRA_CONFIG_ARRAY variable.

While this works as supposed to, this can leave the user puzzled
in the menuconfig, since all he can see is the core options, not
the final options.

Only show the core options if any of the core passes are needed,
and use the final options in the core-backend if we're issuing
the bare-metal compiler.

Signed-off-by: Cody P Schafer <dev@codyps.com>
[yann.morin.1998@free.fr: hide core options if no core pass needed;
use final option in core backend if issuing the bare-metal compiler]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Message-Id: <22181e546ba746202489.1399688067@localhost>
Patchwork-Id: 347586
     1 Original patch from: ../4.3.2/340-make-mno-spe-work-as-expected.patch
     2 
     3 -= BEGIN original header =-
     4 2008-04-03  Nathan Froyd  <froydnj@codesourcery.com>
     5             Nathan Sidwell  <nathan@codesourcery.com>
     6 
     7         * config/rs6000/rs6000.opt (mspe): Remove Var property.
     8         (misel): Likewise.
     9         * config/rs6000/rs6000.h (rs6000_spe): Declare.
    10         (rs6000_isel): Likewise.
    11         * config/rs6000/rs6000.c (rs6000_spe): New variable.
    12         (rs6000_isel): New variable.
    13         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.                                                                                         
    14 
    15 -= END original header =-
    16 
    17 diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.c gcc-4.3.3/gcc/config/rs6000/rs6000.c
    18 --- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.c	2008-11-18 23:07:58.000000000 +0100
    19 +++ gcc-4.3.3/gcc/config/rs6000/rs6000.c	2009-01-27 22:28:55.000000000 +0100
    20 @@ -174,9 +174,15 @@
    21  /* Nonzero to use AltiVec ABI.  */
    22  int rs6000_altivec_abi;
    23  
    24 +/* Nonzero if we want SPE SIMD instructions.  */
    25 +int rs6000_spe;
    26 +
    27  /* Nonzero if we want SPE ABI extensions.  */
    28  int rs6000_spe_abi;
    29  
    30 +/* Nonzero to use isel instructions.  */
    31 +int rs6000_isel;
    32 +
    33  /* Nonzero if floating point operations are done in the GPRs.  */
    34  int rs6000_float_gprs = 0;
    35  
    36 @@ -2144,11 +2150,21 @@
    37        rs6000_parse_yes_no_option ("vrsave", arg, &(TARGET_ALTIVEC_VRSAVE));
    38        break;
    39  
    40 +    case OPT_misel:
    41 +      rs6000_explicit_options.isel = true;
    42 +      rs6000_isel = value;
    43 +      break;
    44 +
    45      case OPT_misel_:
    46        rs6000_explicit_options.isel = true;
    47        rs6000_parse_yes_no_option ("isel", arg, &(rs6000_isel));
    48        break;
    49  
    50 +    case OPT_mspe:
    51 +      rs6000_explicit_options.spe = true;
    52 +      rs6000_spe = value;
    53 +      break;
    54 +
    55      case OPT_mspe_:
    56        rs6000_explicit_options.spe = true;
    57        rs6000_parse_yes_no_option ("spe", arg, &(rs6000_spe));
    58 diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.h gcc-4.3.3/gcc/config/rs6000/rs6000.h
    59 --- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.h	2008-01-26 18:18:35.000000000 +0100
    60 +++ gcc-4.3.3/gcc/config/rs6000/rs6000.h	2009-01-27 22:28:55.000000000 +0100
    61 @@ -349,6 +349,8 @@
    62  extern int rs6000_ieeequad;
    63  extern int rs6000_altivec_abi;
    64  extern int rs6000_spe_abi;
    65 +extern int rs6000_spe;
    66 +extern int rs6000_isel;
    67  extern int rs6000_float_gprs;
    68  extern int rs6000_alignment_flags;
    69  extern const char *rs6000_sched_insert_nops_str;
    70 diff -durN gcc-4.3.3.orig/gcc/config/rs6000/rs6000.opt gcc-4.3.3/gcc/config/rs6000/rs6000.opt
    71 --- gcc-4.3.3.orig/gcc/config/rs6000/rs6000.opt	2007-10-31 08:56:01.000000000 +0100
    72 +++ gcc-4.3.3/gcc/config/rs6000/rs6000.opt	2009-01-27 22:28:55.000000000 +0100
    73 @@ -190,7 +190,7 @@
    74  -mvrsave=yes/no	Deprecated option.  Use -mvrsave/-mno-vrsave instead
    75  
    76  misel
    77 -Target Var(rs6000_isel)
    78 +Target
    79  Generate isel instructions
    80  
    81  misel=
    82 @@ -198,7 +198,7 @@
    83  -misel=yes/no	Deprecated option.  Use -misel/-mno-isel instead
    84  
    85  mspe
    86 -Target Var(rs6000_spe)
    87 +Target
    88  Generate SPE SIMD instructions on E500
    89  
    90  mpaired