Hi,

opth-gen.awk has

print "#define " mask name " (1 << " masknum[vname]++ ")"

and int has 32bits. We should check

if (masknum[var] > 32)

instead of

if (masknum[var] > 31)

Now, I got

#define OPTION_MASK_ISA_X32 (1 << 30)
#define OPTION_MASK_ISA_XOP (1 << 31)

in options.h.  OK for trunk?

Thanks.


H.J.
---
2011-08-07  H.J. Lu  <hongjiu...@intel.com>

        * opth-gen.awk: Properly check numbers of mask bits.

        * config/i386/i386.opt: Add mavx2.

diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt
index f197dd8..3cfc812 100644
--- a/gcc/config/i386/i386.opt
+++ b/gcc/config/i386/i386.opt
@@ -457,6 +457,10 @@ mavx
 Target Report Mask(ISA_AVX) Var(ix86_isa_flags) Save
 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX built-in functions 
and code generation
 
+mavx2
+Target Report Mask(ISA_AVX2) Var(ix86_isa_flags) Save
+Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and AVX2 built-in 
functions and code generation
+
 mfma
 Target Report Mask(ISA_FMA) Var(ix86_isa_flags) Save
 Support MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX and FMA built-in 
functions and code generation
diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk
index 876e0f6..5d156f5 100644
--- a/gcc/opth-gen.awk
+++ b/gcc/opth-gen.awk
@@ -311,7 +311,7 @@ for (i = 0; i < n_extra_masks; i++) {
 }
 
 for (var in masknum) {
-       if (masknum[var] > 31) {
+       if (masknum[var] > 32) {
                if (var == "")
                        print "#error too many target masks"
                else

Reply via email to