Check if MASK_/TARGET_ macros defined for extra_masks
authorH.J. Lu <hongjiu.lu@intel.com>
Mon, 23 Apr 2012 23:32:54 +0000 (23:32 +0000)
committerH.J. Lu <hjl@gcc.gnu.org>
Mon, 23 Apr 2012 23:32:54 +0000 (16:32 -0700)
2012-04-23  H.J. Lu  <hongjiu.lu@intel.com>

PR bootstrap/52878
* opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
extra_masks.

From-SVN: r186729

gcc/ChangeLog
gcc/opth-gen.awk

index 6334c59b7d73f0a9ad2cad337080f3b5d73ee0b4..e1daace31c75530f1a5f83ffaa04d5c10c655082 100644 (file)
@@ -1,3 +1,9 @@
+2012-04-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR bootstrap/52878
+       * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
+       extra_masks.
+
 2012-04-23  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
index 9a7b6c385f80d197d81545912401b6e7380f6f82..a600b30502b405e5fc66eee095d91600534e5875 100644 (file)
@@ -314,12 +314,14 @@ for (i = 0; i < n_opts; i++) {
                        mask = "OPTION_MASK_"
                        if (host_wide_int[vname] == "yes")
                                mask_1 = "HOST_WIDE_INT_1"
-               }
+               } else
+                       extra_mask_bits[name] = 1
                print "#define " mask name " (" mask_1 " << " masknum[vname]++ ")"
        }
 }
 for (i = 0; i < n_extra_masks; i++) {
-       print "#define MASK_" extra_masks[i] " (1 << " masknum[""]++ ")"
+       if (extra_mask_bits[extra_masks[i]] == 0)
+               print "#define MASK_" extra_masks[i] " (1 << " masknum[""]++ ")"
 }
 
 for (var in masknum) {
@@ -355,14 +357,16 @@ for (i = 0; i < n_opts; i++) {
                        vname = "target_flags"
                        macro = "TARGET_"
                        mask = "MASK_"
+                       extra_mask_macros[name] = 1
                }
                print "#define " macro name \
                      " ((" vname " & " mask name ") != 0)"
        }
 }
 for (i = 0; i < n_extra_masks; i++) {
-       print "#define TARGET_" extra_masks[i] \
-             " ((target_flags & MASK_" extra_masks[i] ") != 0)"
+       if (extra_mask_macros[extra_masks[i]] == 0)
+               print "#define TARGET_" extra_masks[i] \
+                     " ((target_flags & MASK_" extra_masks[i] ") != 0)"
 }
 print ""