patches/gcc/4.3.2/340-make-mno-spe-work-as-expected.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Fri Apr 15 00:22:42 2011 +0200 (2011-04-15)
changeset 2544 751c3f735ada
parent 792 da7a34dfa178
permissions -rw-r--r--
scripts/internals: do not remove lib{32,64}/ symlinks after build

During the build, we create lib{32,64}/ symlinks out of the sysroot.
In some cases (eg. mingw32 target), these symlinks are still required
when running the toolchain. For other combinations, the symlinks are
without incidence, so they can be safely kept after the build.

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 diff -durN gcc-4.3.2.orig/gcc/config/rs6000/rs6000.c gcc-4.3.2/gcc/config/rs6000/rs6000.c
    13 --- gcc-4.3.2.orig/gcc/config/rs6000/rs6000.c	2008-06-10 19:13:57.000000000 +0200
    14 +++ gcc-4.3.2/gcc/config/rs6000/rs6000.c	2008-09-23 19:46:45.000000000 +0200
    15 @@ -174,9 +174,15 @@
    16  /* Nonzero to use AltiVec ABI.  */
    17  int rs6000_altivec_abi;
    18  
    19 +/* Nonzero if we want SPE SIMD instructions.  */
    20 +int rs6000_spe;
    21 +
    22  /* Nonzero if we want SPE ABI extensions.  */
    23  int rs6000_spe_abi;
    24  
    25 +/* Nonzero to use isel instructions.  */
    26 +int rs6000_isel;
    27 +
    28  /* Nonzero if floating point operations are done in the GPRs.  */
    29  int rs6000_float_gprs = 0;
    30  
    31 @@ -2144,11 +2150,21 @@
    32        rs6000_parse_yes_no_option ("vrsave", arg, &(TARGET_ALTIVEC_VRSAVE));
    33        break;
    34  
    35 +    case OPT_misel:
    36 +      rs6000_explicit_options.isel = true;
    37 +      rs6000_isel = value;
    38 +      break;
    39 +
    40      case OPT_misel_:
    41        rs6000_explicit_options.isel = true;
    42        rs6000_parse_yes_no_option ("isel", arg, &(rs6000_isel));
    43        break;
    44  
    45 +    case OPT_mspe:
    46 +      rs6000_explicit_options.spe = true;
    47 +      rs6000_spe = value;
    48 +      break;
    49 +
    50      case OPT_mspe_:
    51        rs6000_explicit_options.spe = true;
    52        rs6000_parse_yes_no_option ("spe", arg, &(rs6000_spe));
    53 diff -durN gcc-4.3.2.orig/gcc/config/rs6000/rs6000.opt gcc-4.3.2/gcc/config/rs6000/rs6000.opt
    54 --- gcc-4.3.2.orig/gcc/config/rs6000/rs6000.opt	2007-10-31 08:56:01.000000000 +0100
    55 +++ gcc-4.3.2/gcc/config/rs6000/rs6000.opt	2008-09-23 19:46:45.000000000 +0200
    56 @@ -190,7 +190,7 @@
    57  -mvrsave=yes/no	Deprecated option.  Use -mvrsave/-mno-vrsave instead
    58  
    59  misel
    60 -Target Var(rs6000_isel)
    61 +Target
    62  Generate isel instructions
    63  
    64  misel=
    65 @@ -198,7 +198,7 @@
    66  -misel=yes/no	Deprecated option.  Use -misel/-mno-isel instead
    67  
    68  mspe
    69 -Target Var(rs6000_spe)
    70 +Target
    71  Generate SPE SIMD instructions on E500
    72  
    73  mpaired
    74 diff -durN gcc-4.3.2.orig/gcc/config/rs6000/rs6000.h gcc-4.3.2/gcc/config/rs6000/rs6000.h
    75 --- gcc-4.3.2.orig/gcc/config/rs6000/rs6000.h	2008-01-26 18:18:35.000000000 +0100
    76 +++ gcc-4.3.2/gcc/config/rs6000/rs6000.h	2008-09-23 19:46:45.000000000 +0200
    77 @@ -349,6 +349,8 @@
    78  extern int rs6000_ieeequad;
    79  extern int rs6000_altivec_abi;
    80  extern int rs6000_spe_abi;
    81 +extern int rs6000_spe;
    82 +extern int rs6000_isel;
    83  extern int rs6000_float_gprs;
    84  extern int rs6000_alignment_flags;
    85  extern const char *rs6000_sched_insert_nops_str;