patches/gcc/4.3.1/340-make-mno-spe-work-as-expected.patch
author "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
Mon Apr 16 15:25:36 2012 +0200 (2012-04-16)
changeset 2941 13e40098fffc
permissions -rw-r--r--
cc/gcc: update Linaro GCC revisions to 2012.04

Update Linaro GCC with the latest available revisions.

The 4.7 revision is also released, but the infrastructure is not yet ready for
it in CT-NG.

Signed-off-by: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
     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