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