diff options
Diffstat (limited to 'libobjc/encoding.c')
-rw-r--r-- | libobjc/encoding.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libobjc/encoding.c b/libobjc/encoding.c index bd8b67e..7e33e73 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 |