The -mcpu=XXX options enable processor features, including Altivec and
VSX. Some OS releases do not have support for that feature. GCC
included code to clear those features for Altivec, but it had not been
updated when VSX was added. This was fixed on mainline as part of the
general masks cleanup, but had not been backported to GCC 4.7 and GCC
4.6.
Thanks, David
* config/rs6000/rs6000.c (rs6000_option_override_internal): Clear
MASK_VSX from set_masks if OS_MISSING_ALTIVEC.
Index: rs6000.c
===================================================================
--- rs6000.c (revision 195886)
+++ rs6000.c (working copy)
@@ -1,7 +1,7 @@
/* Subroutines used for code generation on IBM RS/6000.
Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
- 2012
+ 2012, 2013
Free Software Foundation, Inc.
Contributed by Richard Kenner ([email protected])
@@ -2646,7 +2646,7 @@
#endif
#ifdef OS_MISSING_ALTIVEC
if (OS_MISSING_ALTIVEC)
- set_masks &= ~MASK_ALTIVEC;
+ set_masks &= ~(MASK_ALTIVEC | MASK_VSX);
#endif
/* Don't override by the processor default if given explicitly. */