patches/gcc/4.3.1/340-make-mno-spe-work-as-expected.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:26:53 2011 +0200 (2011-08-02)
changeset 2592 4908eb2b6f17
permissions -rw-r--r--
scripts/functions: cvs retrieval first tries the mirror for tarballs

The cvs download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via cvs.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard cvs retrieval will kick in.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 2008-04-03  Nathan Froyd  <froydnj@codesourcery.com>
     2 	    Nathan Sidwell  <nathan@codesourcery.com>
     3 
     4         * config/rs6000/rs6000.opt (mspe): Remove Var property.
     5 	(misel): Likewise.
     6         * config/rs6000/rs6000.h (rs6000_spe): Declare.
     7 	(rs6000_isel): Likewise.
     8         * config/rs6000/rs6000.c (rs6000_spe): New variable.
     9 	(rs6000_isel): New variable.
    10         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
    11 
    12 Index: gcc/config/rs6000/rs6000.c
    13 ===================================================================
    14 --- a/gcc/config/rs6000/rs6000.c	(revision 134642)
    15 +++ b/gcc/config/rs6000/rs6000.c	(working copy)
    16 @@ -174,9 +174,15 @@ int rs6000_ieeequad;
    17  /* Nonzero to use AltiVec ABI.  */
    18  int rs6000_altivec_abi;
    19  
    20 +/* Nonzero if we want SPE SIMD instructions.  */
    21 +int rs6000_spe;
    22 +
    23  /* Nonzero if we want SPE ABI extensions.  */
    24  int rs6000_spe_abi;
    25  
    26 +/* Nonzero to use isel instructions.  */
    27 +int rs6000_isel;
    28 +
    29  /* Nonzero if floating point operations are done in the GPRs.  */
    30  int rs6000_float_gprs = 0;
    31  
    32 @@ -2177,11 +2183,21 @@ rs6000_handle_option (size_t code, const
    33        rs6000_parse_yes_no_option ("vrsave", arg, &(TARGET_ALTIVEC_VRSAVE));
    34        break;
    35  
    36 +    case OPT_misel:
    37 +      rs6000_explicit_options.isel = true;
    38 +      rs6000_isel = value;
    39 +      break;
    40 +
    41      case OPT_misel_:
    42        rs6000_explicit_options.isel = true;
    43        rs6000_parse_yes_no_option ("isel", arg, &(rs6000_isel));
    44        break;
    45  
    46 +    case OPT_mspe:
    47 +      rs6000_explicit_options.spe = true;
    48 +      rs6000_spe = value;
    49 +      break;
    50 +
    51      case OPT_mspe_:
    52        rs6000_explicit_options.spe = true;
    53        rs6000_parse_yes_no_option ("spe", arg, &(rs6000_spe));
    54 Index: gcc/config/rs6000/rs6000.opt
    55 ===================================================================
    56 --- a/gcc/config/rs6000/rs6000.opt	(revision 134642)
    57 +++ b/gcc/config/rs6000/rs6000.opt	(working copy)
    58 @@ -190,7 +190,7 @@ Target RejectNegative Joined
    59  -mvrsave=yes/no	Deprecated option.  Use -mvrsave/-mno-vrsave instead
    60  
    61  misel
    62 -Target Var(rs6000_isel)
    63 +Target
    64  Generate isel instructions
    65  
    66  misel=
    67 @@ -198,7 +198,7 @@ Target RejectNegative Joined
    68  -misel=yes/no	Deprecated option.  Use -misel/-mno-isel instead
    69  
    70  mspe
    71 -Target Var(rs6000_spe)
    72 +Target
    73  Generate SPE SIMD instructions on E500
    74  
    75  mpaired
    76 Index: gcc/config/rs6000/rs6000.h
    77 ===================================================================
    78 --- a/gcc/config/rs6000/rs6000.h	(revision 134642)
    79 +++ b/gcc/config/rs6000/rs6000.h	(working copy)
    80 @@ -367,6 +367,8 @@ extern int rs6000_long_double_type_size;
    81  extern int rs6000_ieeequad;
    82  extern int rs6000_altivec_abi;
    83  extern int rs6000_spe_abi;
    84 +extern int rs6000_spe;
    85 +extern int rs6000_isel;
    86  extern int rs6000_float_gprs;
    87  extern int rs6000_alignment_flags;
    88  extern const char *rs6000_sched_insert_nops_str;
    89 
    90