summaryrefslogtreecommitdiff
path: root/libobjc
diff options
context:
space:
mode:
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-19 19:10:03 +0000
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-19 19:10:03 +0000
commit4df09c64219da093dcf4ac0459a2732f7f510393 (patch)
treeb1169cdb2e369d59a4fdc2661831f4a810066dbe /libobjc
parentaed2dee8de2adc0ba5edc46b369c234b88ea688e (diff)
downloadgcc-4df09c64219da093dcf4ac0459a2732f7f510393.tar.gz
[gcc]
2012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com> Dominique Dhumieres <dominiq@lps.ens.fr> * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Don't assume OPTION_MASK_STRICT_ALIGN is defined. (MASK_STRICT_ALIGN): If OPTION_MASK_STRICT_ALIGN is not defined, define this to 0 for the 3 ports that use it. * config/rs6000/rs6000.c (OPTION_MASK_STRICT_ALIGN): Don't do check for ports not having -mstrict-align here, move test to rs6000-cpus.def. (MASK_STRICT_ALIGN): Likewise. (rs6000_debug_reg_global): Print out correct target flag words if -mdebug=reg. [libobjc] 2012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com> * encoding.c (TARGET_VSX): Provide definitions based on the current compilation options, and not based off the target options structure. (TARGET_ALTIVEC): Likewise. (TARGET_64BIT): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192623 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libobjc')
-rw-r--r--libobjc/ChangeLog8
-rw-r--r--libobjc/encoding.c26
2 files changed, 34 insertions, 0 deletions
diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog
index 9bccceaab89..53ceee35fcc 100644
--- a/libobjc/ChangeLog
+++ b/libobjc/ChangeLog
@@ -1,3 +1,11 @@
+2012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com>
+
+ * encoding.c (TARGET_VSX): Provide definitions based on the
+ current compilation options, and not based off the target options
+ structure.
+ (TARGET_ALTIVEC): Likewise.
+ (TARGET_64BIT): Likewise.
+
2012-09-14 David Edelsohn <dje.gcc@gmail.com>
* configure: Regenerated.
diff --git a/libobjc/encoding.c b/libobjc/encoding.c
index bd8b67e0e8b..7e33e738bb9 100644
--- a/libobjc/encoding.c
+++ b/libobjc/encoding.c
@@ -112,6 +112,32 @@ static int __attribute__ ((__unused__)) not_target_flags = 0;
#undef ALTIVEC_VECTOR_MODE
#define ALTIVEC_VECTOR_MODE(MODE) (0)
+/* Replace TARGET_VSX, TARGET_ALTIVEC, and TARGET_64BIT with constants based on
+ the current switches, rather than looking in the options structure. */
+#ifdef _ARCH_PPC
+#undef TARGET_VSX
+#undef TARGET_ALTIVEC
+#undef TARGET_64BIT
+
+#ifdef __VSX__
+#define TARGET_VSX 1
+#else
+#define TARGET_VSX 0
+#endif
+
+#ifdef __ALTIVEC__
+#define TARGET_ALTIVEC 1
+#else
+#define TARGET_ALTIVEC 0
+#endif
+
+#ifdef _ARCH_PPC64
+#define TARGET_64BIT 1
+#else
+#define TARGET_64BIT 0
+#endif
+#endif
+
/* Furthermore, some (powerpc) targets also use TARGET_ALIGN_NATURAL
in their alignment macros. Currently[4.5/6], rs6000.h points this
to a static variable, initialized by target overrides. This is reset